diff --git a/.github/workflows/code_quality.yml b/.github/workflows/code_quality.yml new file mode 100644 index 00000000000..e5351acaf78 --- /dev/null +++ b/.github/workflows/code_quality.yml @@ -0,0 +1,25 @@ +name: Qodana +on: + schedule: + - cron: "0 20 * * *" + workflow_dispatch: + branches: + - develop +# push: +# branches: +# - develop + +jobs: + qodana: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 1 + #php-version: '7.1' + - name: 'Qodana Scan' + uses: JetBrains/qodana-action@v2022.3.2 + #with: + # php-version: '7.1' + env: + QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/doxygen-gh-pages.yml.disabled b/.github/workflows/doxygen-gh-pages.yml.disabled new file mode 100644 index 00000000000..33dd47aa6e6 --- /dev/null +++ b/.github/workflows/doxygen-gh-pages.yml.disabled @@ -0,0 +1,38 @@ +# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions +name: Doxygen +on: + schedule: + - cron: "0 15 * * *" + workflow_dispatch: + branches: + - develop +permissions: + contents: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Build + uses: DenverCoder1/doxygen-github-pages-action@v1.2.0 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: gh-pages + folder: build/html + config_file: build/doxygen/dolibarr-doxygen.doxyfile + +# - name: Deploy +# uses: JamesIves/github-pages-deploy-action@v4 +# with: +# branch: gh-pages +# folder: build/html # The folder the action should deploy. +# target-folder: docs/html2 + +#jobs: +# doxygen: +# runs-on: ubuntu-latest +# steps: +# - name: 'Doxygen' +# uses: mattnotmitt/doxygen-action@1.9.5 +# with: +# doxyfile-path: build/doxygen diff --git a/.github/workflows/exakat.yml b/.github/workflows/exakat.yml.disabled similarity index 93% rename from .github/workflows/exakat.yml rename to .github/workflows/exakat.yml.disabled index 528626e0308..1e9121a0e00 100644 --- a/.github/workflows/exakat.yml +++ b/.github/workflows/exakat.yml.disabled @@ -4,6 +4,9 @@ name: "Exakat analysis" on: schedule: - cron: "0 20 * * *" + workflow_dispatch: + branches: + - develop permissions: contents: read @@ -13,6 +16,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + with: + fetch-depth: 1 - name: Exakat uses: docker://exakat/exakat-ga with: diff --git a/.github/workflows/stale-issues-safe.yml b/.github/workflows/stale-issues-safe.yml index 4ac9fa8f5b9..af04675d48d 100644 --- a/.github/workflows/stale-issues-safe.yml +++ b/.github/workflows/stale-issues-safe.yml @@ -6,7 +6,8 @@ on: - cron: "0 21 * * *" issue_comment: types: [created] - + workflow_dispatch: + permissions: {} # none jobs: diff --git a/.gitignore b/.gitignore index e935ec1bd59..e9603bd2d8f 100644 --- a/.gitignore +++ b/.gitignore @@ -14,11 +14,11 @@ default.properties /.pydevproject /.vscode .DS_Store -.idea *.iml *.orig Thumbs.db /dolibarr_genesis.mp4 +.phpunit.result.cache # Log files dolibarr_install.log upgrade.log diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 00000000000..52e0bf0ae03 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/.scrutinizer.yml b/.scrutinizer.yml index c1cb2e853f1..058a0ba8b48 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -8,21 +8,24 @@ build: override: - command: php-scrutinizer-run idle_timeout: 8000 + #- php-scrutinizer-run --sub-project-dir=htdocs/admin imports: - - javascript - php filter: excluded_paths: - - build/* - - dev/* - - doc/* - - documents/* - - node_modules/* - - test/* - dependency_paths: - - htdocs/includes/* + - build/ + - dev/ + - doc/ + - documents/ + - node_modules/ + - test/ + - htdocs/custom/ + - htdocs/includes/ + - htdocs/install/doctemplates/ + #dependency_paths: + # - htdocs/includes/ paths: - htdocs/* - scripts/* @@ -33,21 +36,23 @@ tools: enabled: true extensions: - php - dependency_paths: - - htdocs/includes/ + #dependency_paths: + # - htdocs/includes/ filter: excluded_paths: - - build/* - - dev/* - - doc/* - - documents/* - - htdocs/includes/* + - build/ + - dev/ + - doc/ + - documents/ + - htdocs/custom/ + - htdocs/includes/ + - htdocs/install/doctemplates/ - htdocs/core/class/lessc.class.php - - node_modules/* - - test/* + - node_modules/ + - test/ paths: - - htdocs/ - - scripts/ + - htdocs/* + - scripts/* config: parameter_reference_check: enabled: true @@ -156,73 +161,73 @@ tools: # To use specific config for a specific path, use path_configs: (see example on page https://scrutinizer-ci.com/docs/configuration/tool_config_structure) # php_depend - php_pdepend: - enabled: false - configuration_file: null - suffixes: - - php - excluded_dirs: { } - filter: - excluded_paths: - - 'build/*' - - 'dev/*' - - 'doc/*' - - 'test/*' - - 'htdocs/includes/*' - paths: { } + #php_pdepend: + # enabled: false + # configuration_file: null + # suffixes: + # - php + # excluded_dirs: { } + # filter: + # excluded_paths: + # - 'build/*' + # - 'dev/*' + # - 'doc/*' + # - 'test/*' + # - 'htdocs/includes/*' + # paths: { } # change tracking - php_changetracking: - enabled: false - bug_patterns: - - '\bfix(?:es|ed)?\b' - feature_patterns: - - '\badd(?:s|ed)?\b' - - '\bimplement(?:s|ed)?\b' - filter: - excluded_paths: - - 'build/*' - - 'dev/*' - - 'doc/*' - - 'documents/*' - - 'htdocs/includes/*' - - 'node_modules/*' - - 'test/*' - paths: { } + #php_changetracking: + # enabled: false + # bug_patterns: + # - '\bfix(?:es|ed)?\b' + # feature_patterns: + # - '\badd(?:s|ed)?\b' + # - '\bimplement(?:s|ed)?\b' + # filter: + # excluded_paths: + # - 'build/*' + # - 'dev/*' + # - 'doc/*' + # - 'documents/*' + # - 'htdocs/includes/*' + # - 'node_modules/*' + # - 'test/*' + # paths: { } # Similar code detection - php_sim: - enabled: false - min_mass: 30 - filter: - excluded_paths: - - 'build/*' - - 'dev/*' - - 'doc/*' - - 'documents/*' - - 'htdocs/includes/*' - - 'node_modules/*' - - 'test/*' - paths: { } + #php_sim: + # enabled: false + # min_mass: 30 + # filter: + # excluded_paths: + # - 'build/*' + # - 'dev/*' + # - 'doc/*' + # - 'documents/*' + # - 'htdocs/includes/*' + # - 'node_modules/*' + # - 'test/*' + # paths: { } # Coding-Style / Bug Detection - js_hint: - enabled: false - use_native_config: true - extensions: - - js - filter: - excluded_paths: - - 'build/*' - - 'dev/*' - - 'doc/*' - - 'documents/*' - - 'htdocs/includes/*' - - 'node_modules/*' - - 'test/*' - paths: { } - config: { } - path_configs: { } + #js_hint: + # enabled: false + # use_native_config: true + # extensions: + # - js + # filter: + # excluded_paths: + # - 'build/*' + # - 'dev/*' + # - 'doc/*' + # - 'documents/*' + # - 'htdocs/includes/*' + # - 'node_modules/*' + # - 'test/*' + # paths: { } + # config: { } + # path_configs: { } before_commands: { } diff --git a/.travis.yml b/.travis.yml index 6422e33a7e9..5380ef54d3d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -95,19 +95,20 @@ notifications: install: - | - echo "Updating Composer" - rm $TRAVIS_BUILD_DIR/composer.json - rm $TRAVIS_BUILD_DIR/composer.lock + echo "Updating Composer config" composer -V - composer self-update - composer -n init - composer -n config vendor-dir htdocs/includes + #rm $TRAVIS_BUILD_DIR/composer.json + #rm $TRAVIS_BUILD_DIR/composer.lock + #composer -n init + #composer -n config vendor-dir htdocs/includes composer -n config -g vendor-dir htdocs/includes echo - | - echo "Installing Composer dependencies - PHP Unit, Parallel Lint, PHP CodeSniffer, PHP Vardump check - for $TRAVIS_PHP_VERSION" + echo "Update Composer version and Install tools - PHP Unit, Parallel Lint, PHP CodeSniffer, PHP Vardump check - for $TRAVIS_PHP_VERSION" + echo "(version 2.5 is bugged and generate phpunit error Exception: Serialization of 'Closure' is not allowed)" if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then + composer self-update 2.2.18 composer -n require phpunit/phpunit ^6 \ php-parallel-lint/php-parallel-lint ^1 \ php-parallel-lint/php-console-highlighter ^0 \ @@ -115,6 +116,7 @@ install: squizlabs/php_codesniffer ^3 fi if [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ]; then + composer self-update 2.2.18 composer -n require phpunit/phpunit ^7 \ php-parallel-lint/php-parallel-lint ^1.2 \ php-parallel-lint/php-console-highlighter ^0 \ @@ -123,12 +125,15 @@ install: fi # phpunit 9 is required for php 8 if [ "$TRAVIS_PHP_VERSION" = '8.0' ] || [ "$TRAVIS_PHP_VERSION" = '8.1' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then + composer self-update 2.4.4 composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \ php-parallel-lint/php-parallel-lint ^1.2 \ php-parallel-lint/php-console-highlighter ^0 \ php-parallel-lint/php-var-dump-check ~0.4 \ squizlabs/php_codesniffer ^3 fi + # Remove non expected files + rm -fr /home/travis/build/Dolibarr/dolibarr/htdocs/includes/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js echo - | @@ -450,6 +455,9 @@ script: php upgrade.php 16.0.0 17.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade16001700.log php upgrade2.php 16.0.0 17.0.0 > $TRAVIS_BUILD_DIR/upgrade16001700-2.log php step5.php 16.0.0 17.0.0 > $TRAVIS_BUILD_DIR/upgrade16001700-3.log + php upgrade.php 17.0.0 18.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade17001800.log + php upgrade2.php 17.0.0 18.0.0 > $TRAVIS_BUILD_DIR/upgrade17001800-2.log + php step5.php 17.0.0 18.0.0 > $TRAVIS_BUILD_DIR/upgrade17001800-3.log ls -alrt $TRAVIS_BUILD_DIR/ - | diff --git a/ChangeLog b/ChangeLog index ef931857be0..00fbde60b91 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,16 +3,31 @@ English Dolibarr ChangeLog -------------------------------------------------------------- +***** ChangeLog for 18.0.0 compared to 17.0.0 ***** + +NEW: PHP 8.2 compatibility: + + +WARNING: + +Following changes may create regressions for some external modules, but were necessary to make Dolibarr better: +* The deprecated method "escapeunderscore()" of database handlers has been removed. You must use "escapeforlike()" instead. +* The method "nb_expedition()" has been renamed into "countNbOfShipments()" +* Revert default type of hooks. Default is now 'addreplace' hooks (and exception become 'output' hooks, that become deprecated). +* Deprecated property libelle removed from entrepot class. + + + ***** ChangeLog for 17.0.0 compared to 16.0.0 ***** For users: --------------- NEW: Minimal PHP version is now PHP 7.0 instead of PHP 5.6 -NEW: #21780 Add pid field to Cronjob class and store PID on job execution NEW: #19680 Add option PRODUCT_ALLOW_EXTERNAL_DOWNLOAD to automatically have uploaded files shared publicly by a link -NEW: #20650 can move the checkbox column on left (experimental option) +NEW: #20650 can move the checkbox column on left (experimental option MAIN_CHECKBOX_LEFT_COLUMN) NEW: #21000 Added columns 'alias_name' on project, supplier invoice, supplier order, supplier proposals and task list +NEW: #21780 Add pid field to Cronjob class and store PID on job execution NEW: #21395 Added option for dark theme mode in display - color and theme NEW: #21397 added option to auto define barcode numbers for third-parties in barcode module setup NEW: #21399 @@ -31,166 +46,180 @@ NEW: #22676 massaction for updating product prices NEW: #22735 Massaction to affect users on projects NEW: #25594 can chose if VAT ID is unique or not for third parties NEW: #4482 adding js to hide/show advanced option on the export data page -NEW: Accountancy - Add a graphic option to enable lettering function - FPC21 -NEW: Accountancy - Add a way to clean some words when you generate thirdparty accounting account -NEW: Accountancy - Added an option during export to export or not the lettering FPC21 -NEW: Accountancy - Manage supplier deposit with specific account -NEW: Accountancy - Model Digitaria - Add a way to clean some words when you generate thirdparty accounting account FPC22 -NEW: Add a button "Test collect" in email collector + NEW: Add a constant to disallow modification of the product reference. -NEW: Add a method doAutoRenewContracts that can be used as a cron task. -NEW: Add " as enclosure by default for CSV export. Keep removing CR/LF. NEW: add attached file in presend email form of thirdparty card NEW: Add a way to enter LICENSE file content in property of website -NEW: Add badge in admin extrafields setup -NEW: add constant PROPAL_BYPASS_VALIDATED_STATUS -NEW: Add date event (!= date project) and location on event organization NEW: Add employment anniversary in birthday box -NEW: Add extrafield type "IP" to store IP addresses -NEW: Add fail2ban rules examples to limit access to /public pages -NEW: Add filter "Product subject to lot/Serial" in stock per lot/serial -NEW: Add free membership amounts at the membership type level NEW: Add hidden option MAIN_EMAIL_SUPPORT_ACK to restore Email ack checkbox (feature abandonned by mailers) -NEW: Add IMAP port setting on email collector module -NEW: Adding JAPAN Chart-of-Account and regions/departments -NEW: Adding NIF verification for Algeria NEW: Add link to create an element from the category page -NEW: add margin infos to takepos invoice lines NEW: Add max size send for "backup and link to mail" option NEW: Add method httponly_accessforbidden() NEW: Add more advices into the Setup security page NEW: Add new global variable for keeping the previous signature information on proposale (case of reopen a proposale) NEW: Add objectLink on expedition NEW: Add oldcopy to Ticket so triggers intercepting TICKET_MODIFY have access to old values of the updated properties -NEW: Add option FICHINTER_ALLOW_EXTERNAL_DOWNLOAD NEW: Add option --force on CLI cron_run_jobs.php NEW: Add option "Show price on the generated documents for receptions" -NEW: Add performance index (name for company and contact) and llx_bank_url(url_id) -NEW: Add picto property on sub-module for password generation -NEW: Add price to product box in TakePOS -NEW: add redirect on action confirm addconsumedline and addproduceline -NEW: Add a new advanced permission "read price" -NEW: Add substitution key __SENDEREMAIL_SIGNATURE__ -NEW: Add the referrer-policy to "same-origin" by default on all public pages. -NEW: Add the SMTP header References on ticket email created by email -NEW: Add the thirdparty column to the time list (projet/tasks/time.php) -NEW: Add trigger to record the event of sending an email from a project #20912 -NEW: Allow download link option in module configuration (propal,invoice,supplier proposal, order) -NEW: Bank - Add salaries & vat in tab planned entries -NEW: Bulk action to remove a category in list/search website pages -NEW: Can copy/paste images into emails sent. -NEW: Can edit label of an emailing even once sent -NEW: Can edit property css, cssview, csslist on extrafields -NEW: Can enter the unit price including the vat -NEW: Can invoice task time per different services -NEW: Can join several files by default on email form -NEW: Can send an email on scheduled job error -NEW: Can set a commercial discount by entering amount including VAT -NEW: Can set a monthly frequency (or multiple) in cron tasks. -NEW: Can set start and end dates and comment on button "Activate all services" -NEW: can sort and preselected best supplier price -NEW: Website Can delete a whole website if disabled -NEW: Website Can remove a website template -NEW: Website can set header "Strict-Transport-Security" in web sites. -NEW: Website Can switch status of website and page from the website toolbar -NEW: Website Templates of websites are now directories and not zip into core repo -NEW: Website Add 4 other templates in website module -NEW: Can use products categories to make inventory -NEW: Change filter type on tickets list into a multiselect combo -NEW: conf TIMESPENT_ALWAYS_UPDATE_THM, when it's on we always check current thm of user to update it in task time line -NEW: constant PROPAL_NEW_AS_SIGNED -NEW: show date delivery planned on orders linked to company and product -NEW: default_lang for members -NEW: Default template of contract is not mandatory -NEW: Default values in extrafields are not more limited to 255 char. -NEW: display currency in takepos menu -NEW: Enable online signature for interventions -NEW: Encrypt all sensitive constants in llx_const -NEW: extrafield price with currency -NEW: filter on reception dates (from / to) in cheque paiement card -NEW: TakePOS Header Scroll in TakePOS -NEW: TakePOS Add setup parameters, can setup terminal name -NEW: TakePOS support of Stripe Terminal with Takepos -NEW: TakePOS Receipt preview in TakePOS setup -NEW: TakePOS different product list on smartphone -NEW: If we select another view list mode, we keep it -NEW: Init module bookcal -NEW: Introduce dolEncrypt and dolDecrypt to be able to encrypt data in db -NEW: Invoice - Add french mention on pdf when vat debit option is on NEW: invoice export : add accounting affectation NEW: label on products categories filter -NEW: The link "add to bookmark" is always on top in the bookmark popup -NEW: MAIN_SEARCH_CATEGORY_PRODUCT_ON_LISTS const to show category customer filter -NEW: Make module WebservicesClient deprecated. Use module WebHook instead NEW: manage no email with thirdparties (better for GDPR) -NEW: Manage Position (Rank) on Contract Lines NEW: Manage VAT on all lines on purchases cycle -NEW: manage virtual stock at a future date NEW: On a bank reconciled line, we can modify the bank receipt -NEW: On a form to send an email, we show all emails of all contacts of object -NEW: Option PRODUCTBATCH_SHOW_WAREHOUSE_ON_SHIPMENT showing wh on PDF -NEW: Option PRODUIT_DESC_IN_FORM accept (desktop only or +smartphone) -NEW: Page for mass stock transfer can be used with no source stock NEW: parent company column and filter in invoice and order list -NEW: Add show "Sales rep" option for PDF -NEW: Picto for shared link is clickable NEW: possibility to select scopes with checkbox for Oauth tokens NEW: private and public note on user, thirdparty and contact list -NEW: product categories filter on inventory list -NEW: Product supplier price: autofill default supplier VAT -NEW: Project - Add author on list NEW: Public counters feature -NEW: Reception - Add a from/to on search on date field -NEW: Start a simple support of recurrent events on agenda -NEW: Resize parent company column in order list NEW: Saved token of OAUTH module are now encrypted into llx_oauth_token NEW: Save one click to select on delivery ack, on emails. NEW: scheduled job to send unpaid invoice reminder can now use the cc and bcc from email template -NEW: set thirdparty type with company modify trigger -NEW: Show also scheduled task never finished in scheduled task widget -NEW: show badge with number of extrafields in setup -NEW: show category tree in sellist and chkbxlst for common object -NEW: Show picto and color into combo for selection of tags -NEW: show product label on inventory -NEW: show sell-by and eat-by dates only if not empty -NEW: show SellBy/EatBy dates for each batch product in shipment card -NEW: skip accept/refuse process for proposals (option PROPAL_SKIP_ACCEPT_REFUSE) -NEW: SMTP using oauth2 authentication +NEW: experimental SMTP using PhpImap allowing OAuth2 authentication (need to add option MAIN_IMAP_USE_PHPIMAP) NEW: can substitue project title in mail template -NEW: Supplier order list - Add column private and public note -NEW: Support IP type in extrafields -NEW: Table of membership types NEW: The purge of files can purge only if older than a number of seconds NEW: Update ActionComm type_code on email message ticket -NEW: VAT - Admin - Add information on deadline day for submission of VAT declaration -NEW: expand/collapse permissions on user permission page -NEW: Show delivery mode on PDF for proposals +NEW: Finance - VAT - Admin - Add information on deadline day for submission of VAT declaration NEW: Add the target to select attendees of event for emailings +NEW: add redirect on action confirm addconsumedline and addproduceline +NEW: Add the referrer-policy to "same-origin" by default on all public pages. +NEW: Add trigger to record the event of sending an email from a project #20912 +NEW: Allow download link option in module configuration (propal, order, invoice, supplier proposal) +NEW: Can enter the unit price including the VAT +NEW: Can invoice task time per different services +NEW: Can set a commercial discount by entering amount including VAT +NEW: Can set start and end dates and comment on button "Activate all services" +NEW: can sort and preselected best supplier price +NEW: show date delivery planned on orders linked to company and product +NEW: filter on reception dates (from / to) in cheque paiement card + +NEW: Accountancy - Add a graphic option to enable lettering function - FPC21 +NEW: Accountancy - Add a way to clean some words when you generate thirdparty accounting account +NEW: Accountancy - Added an option during export to export or not the lettering FPC21 +NEW: Accountancy - Manage supplier deposit with specific account +NEW: Accountancy - Model Digitaria - Add a way to clean some words when you generate thirdparty accounting account FPC22 +NEW: Agenda - start a simple support of recurrent events on agenda +NEW: Bank - add salaries & VAT in tab planned entries +NEW: Contracts - add a method doAutoRenewContracts that can be used as a cron task +NEW: Contracts - default template of contract is not mandatory +NEW: Contracts - Manage Position (Rank) on Contract Lines +NEW: EMail - can copy/paste images into emails sent +NEW: EMail - can edit label of an emailing even once sent +NEW: EMail - can join several files by default on email form +NEW: EMail - can send an email on scheduled job error +NEW: EMail - on a form to send an email, we show all emails of all contacts of object +NEW: EMail - add the SMTP header References on ticket email created by email +NEW: EMail - add substitution key __SENDEREMAIL_SIGNATURE__ +NEW: EMail-Collector - add IMAP port setting +NEW: EMail-Collector - add a button "Test collect" +NEW: Export - Add " as enclosure by default for CSV export. Keep removing CR/LF. +NEW: Event-Organization - add date event (!= date project) and location on event organization +NEW: Extrafields - add badge in admin extrafields setup +NEW: Extrafields - can edit property css, cssview, csslist on extrafields +NEW: Extrafields - default values in extrafields are not more limited to 255 char. +NEW: Extrafields - field price with currency +NEW: Extrafields - support IP type to store IP addresses +NEW: Interventions - enable online signature for interventions +NEW: Invoice - Add french mention on pdf when vat debit option is on +NEW: Members - default_lang for members +NEW: Members - Table of membership types +NEW: Members - add free membership amounts at the membership type level +NEW: Orders - resize parent company column in order list +NEW: Products supplier price - autofill default supplier VAT +NEW: Projects - add author on list +NEW: Projects - add thirdparty column to the time list (projet/tasks/time.php) +NEW: Proposals - show delivery mode on PDF for proposals +NEW: Proposals - skip accept/refuse process for proposals (option PROPAL_SKIP_ACCEPT_REFUSE) +NEW: Reception - add a from/to on search on date field +NEW: Stock - page for mass stock transfer can be used with no source stock +NEW: Stock - product categories filter on inventory list +NEW: Stock - show product label on inventory +NEW: Stock - manage virtual stock at a future date +NEW: Stock Inventory - add filter "Product subject to lot/Serial" in stock per lot/serial +NEW: Stock Inventory - can use products categories to make inventory +NEW: Supplier Order List - add column private and public note +NEW: TakePOS - add margin infos to TakePOS invoice lines +NEW: TakePOS - add price to product box in TakePOS +NEW: TakePOS - add setup parameters, can setup terminal name +NEW: TakePOS - different product list on smartphone +NEW: TakePOS - display currency in TakePOS menu +NEW: TakePOS - Header Scroll in TakePOS +NEW: TakePOS - Receipt preview in TakePOS setup +NEW: TakePOS - support of Stripe Terminal with TakePOS +NEW: Thirdparty - set thirdparty type with company modify trigger +NEW: Tickets - change filter type on tickets list into a multiselect combo +NEW: Website - can delete a whole website if disabled +NEW: Website - can remove a website template +NEW: Website - can set header "Strict-Transport-Security" in web sites. +NEW: Website - can switch status of website and page from the website toolbar +NEW: Website - Templates of websites are now directories and not zip into core repo +NEW: Website - add 4 other templates in website module + +General: +NEW: Actions: Bulk action to remove a category in list/search website pages +NEW: Cronjobs: can set a monthly frequency (or multiple) in cron tasks +NEW: Database: Encrypt all sensitive constants in llx_const +NEW: Database: Add performance index (name for company and contact) and llx_bank_url(url_id) +NEW: Database: Introduce dolEncrypt and dolDecrypt to be able to encrypt data in db +NEW: GUI: If we select another view list mode, we keep it +NEW: GUI: the link "add to bookmark" is always on top in the bookmark popup +NEW: GUI: Picto for shared link is clickable +NEW: GUI: add picto property on sub-module for password generation +NEW: GUI: show also scheduled task never finished in scheduled task widget +NEW: GUI: show badge with number of extrafields in setup +NEW: GUI: show category tree in sellist and chkbxlst for common object +NEW: GUI: show picto and color into combo for selection of tags +NEW: GUI: show sell-by and eat-by dates only if not empty +NEW: GUI: show SellBy/EatBy dates for each batch product in shipment card +NEW: GUI/Permissions: expand/collapse permissions on user permission page +NEW: Permissions: add a new advanced permission "read price" +NEW: Print: add show "Sales rep" option for PDF +NEW: Security: add fail2ban rules examples to limit access to /public pages + + Option / Const for System: +NEW: FICHINTER_ALLOW_EXTERNAL_DOWNLOAD +NEW: MAIN_SEARCH_CATEGORY_PRODUCT_ON_LISTS - const to show category customer filter +NEW: PRODUCTBATCH_SHOW_WAREHOUSE_ON_SHIPMENT - showing warehouse on PDF +NEW: PRODUIT_DESC_IN_FORM accept - desktop only or +smartphone +NEW: PROPAL_BYPASS_VALIDATED_STATUS +NEW: PROPAL_NEW_AS_SIGNED +NEW: TIMESPENT_ALWAYS_UPDATE_THM - when it's on we always check current thm of user to update it in task time line + + Localisation: +NEW: adding JAPAN Chart-of-Account and regions/departments +NEW: adding NIF verification for Algeria Modules NEW: Experimental module Asset +NEW: Init module bookcal +NEW: Make module WebservicesClient deprecated. Use module WebHook instead. + For developers or integrators: ------------------------------ NEW: ModuleBuilder can generate code of class from an existing SQL table -NEW: #22370 Modulebuilder supports 'alwayseditable' (like extrafields) NEW: #20912 Add trigger to record the event of sending an email from a project NEW: #21750 Added "Get lines and Post lines from BOM" at the REST Service -NEW: Removed completely the need for the library adodbtime -NEW: hook on agenda pages -NEW: hook to complete payment in TakePOS -NEW: hook "changeHelpURL" to modify target of the help button -NEW: hook formConfirm on action comm card -NEW: hook to modify supplier product html select -NEW: Add new hook for show virtual stock details on product stock card -NEW: Add new hooks for actioncomm +NEW: #22370 Modulebuilder supports 'alwayseditable' (like extrafields) NEW: conf->global->SYSLOG_FILE_ONEPERSESSION accept a string -NEW: translate for contact type API, setup/ticket API, shipping method API NEW: All ajax pages have now a top_httphead() -NEW: support multilang in Civilities API + + API: NEW: Add API for the partnership module NEW: Add "Get lines and Post lines from BOM" in the API +NEW: translate for contact type API, setup/ticket API, shipping method API +NEW: support multilang in Civilities API + + Hooks: +NEW: Actioncomm - add new hooks for actioncomm +NEW: Actioncomm - hook formConfirm on actioncomm card +NEW: Agenda - hook on agenda pages +NEW: Help - hook "changeHelpURL" to modify target of the help button +NEW: Product - add hook to show virtual stock details on product stock card +NEW: Product - add hook to modify supplier product html select +NEW: TakePOS - add hook to complete payment in TakePOS + + +NEW: Removed completely the need for the library adodbtime NEW: Replace fk_categories_product with categories_product in inventory NEW: Rewrite of SQL request. Removed the join on category (for filter on categ), replaced with a EXISTS/NOT @@ -209,6 +238,39 @@ Following changes may create regressions for some external modules, but were nec * Rename the substitution for project label instead of project title in substitution variables +***** ChangeLog for 16.0.4 compared to 16.0.2 ***** + +FIX: Amount of localtax1 and 2 not correctly save on purchase order (the rate was saved instead) +FIX: #20415 +FIX: #21280 +FIX: #23008 +FIX: #22271 +FIX: #22837 +FIX: #23019 Impossible to add task times to an existing draft invoice +FIX: #23072 +FIX: #23087 +FIX: #23115 +FIX: #23116 +FIX: #23281 +FIX: bad selection of barcode numbering module +FIX: Can't see all time spent by all user +FIX: CI +FIX: CommonObject - showOptionals - Display blank td when MAIN_VIEW_LINE_NUMBER is enabled and action is confirm_valid +FIX: Documents API inconsistency +FIX: #23075 +FIX: #23117 +FIX: get multicurrency infos of propal when create order from propal with "WORKFLOW_PROPAL_AUTOCREATE_ORDER" conf +FIX: Give predictable order to inventory lines +FIX: include class multicurrency +FIX: methods declaration (backport fix 67b9a7dc07d708231d12b5e58800334d4a01ef98) +FIX: multicurrency_tx and not currency_tx +FIX: PGSQL Integer type does not have a free length +FIX: Product list in setup.php in new Module +FIX: propal and order stats broken on Tag+User(retricted customer list) +FIX: saving of numbering module for jobs +FIX: Stickler +FIX: travis + ***** ChangeLog for 16.0.3 compared to 16.0.2 ***** FIX: $sign is useless diff --git a/SECURITY.md b/SECURITY.md index cd3156bece9..e095b64fdff 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -6,9 +6,8 @@ This file contains some policies about the security reports on Dolibarr ERP CRM | Version | Supported | | ---------- | ---------------------- | -| <= 15.0.0 | :x: | -| >= 15.0.1+ | :white_check_mark: except CSRF attacks| -| >= 16.0.0 | :white_check_mark: | +| <= 16.0.2 | :x: | +| >= 16.0.3 | :white_check_mark: | | >= develop | :white_check_mark: | ## Reporting a Vulnerability @@ -54,16 +53,17 @@ ONLY vulnerabilities discovered, when the following setup on test platform is us * $dolibarr_nocsrfcheck must be kept to the value 0 into conf.php (this is the default value) * $dolibarr_main_force_https must be set to something else than 0. * The constant MAIN_SECURITY_CSRF_WITH_TOKEN must be set to 3 into backoffice menu Home - Setup - Other (this protection should be set to 3 soon by default) -* The module DebugBar and ModuleBuilder must NOT be enabled (by default, these modules are not enabled. They are developer tools) * ONLY security reports on modules provided by default and with the "stable" status are valid (troubles into "experimental", "developement" or external modules are not valid vulnerabilities). * The root of web server must link to htdocs and the documents directory must be outside of the web server root (this is the default when using the default installer but may differs with external installer). * The web server setup must be done so that only the documents directory is in write mode. The root directory called htdocs must be read-only. * CSRF attacks are accepted but double check that you have set MAIN_SECURITY_CSRF_WITH_TOKEN to value 3. +* The module DebugBar and ModuleBuilder must NOT be enabled (by default, these modules are not enabled. They are developer tools) * Ability for a high level user to edit web site pages into the CMS by including HTML or Javascript is an expected feature. Vulnerabilities into the website module are validated only if HTML or Javascript injection can be done by a non allowed user. +* Fail2ban rules for rate limit on the login page,password forgotten page and all public pages (/public/*) must be installed as recommendend into the section "About - Admin tools - Section Access limits and mitigation". Scope is the web application (back office) and the APIs. -## Qualifying vulnerabilities for reporting +## Example of vulnerabilities Qualified for reporting. * Remote code execution (RCE) * Local files access and manipulation (LFI, RFI, XXE, SSRF, XSPA) @@ -79,7 +79,7 @@ Scope is the web application (back office) and the APIs. * Software version disclosure (for non admin users only) * Stack traces or path disclosure (for non admin users only) -## Non-qualifying vulnerabilities for reporting +## Example of vulnerabilities non Non-qualified for reporting. * "Self" XSS * SSL/TLS best practices @@ -96,3 +96,4 @@ Scope is the web application (back office) and the APIs. * Software version or private IP disclosure when logged user is admin * Stack traces or path disclosure when logged user is admin * Any vulnerabilities due to a configuration different than the one defined into chapter "Scope for qualified vulnerabilities". +* Brute force attacks on login page, password forgotten page or any public pages (/public/*) are not qualified if the fail2ban recommended fail2ban rules were not installed. diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile index ead2a8af1c5..69f4d27b26f 100644 --- a/build/docker/Dockerfile +++ b/build/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM php:7.3-apache +FROM php:8.1-apache-bullseye ENV PHP_INI_DATE_TIMEZONE 'UTC' ENV PHP_INI_MEMORY_LIMIT 256M @@ -25,7 +25,7 @@ RUN apt-get update -y \ mailutils \ && apt-get autoremove -y \ && rm -rf /var/lib/apt/lists/* \ - && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \ && docker-php-ext-install -j$(nproc) ldap && \ diff --git a/build/docker/README.md b/build/docker/README.md index d469c7c7aae..007b5db6ace 100644 --- a/build/docker/README.md +++ b/build/docker/README.md @@ -25,7 +25,7 @@ The URL to go to the Dolibarr is : The URL to go to PhpMyAdmin is (login/password is root/root) : http://0.0.0.0:8080 - + In Dolibarr configuration Email let PHP mail function, To see all mail send by Dolibarr go to maildev http://0.0.0.0:8081 diff --git a/build/docker/docker-compose.yml b/build/docker/docker-compose.yml index 8994043cd8a..e197d5dd06e 100644 --- a/build/docker/docker-compose.yml +++ b/build/docker/docker-compose.yml @@ -34,6 +34,8 @@ services: build: . environment: HOST_USER_ID: $HOST_USER_ID + PHP_INI_DATE_TIMEZONE: $PHP_INI_DATE_TIMEZONE + PHP_INI_MEMORY_LIMIT: $PHP_INI_MEMORY_LIMIT volumes: - ../../htdocs:/var/www/html/ - ../../documents:/var/documents diff --git a/build/docker/docker-run.sh b/build/docker/docker-run.sh index 4e69ea4a3a2..fbd256ab625 100644 --- a/build/docker/docker-run.sh +++ b/build/docker/docker-run.sh @@ -15,10 +15,10 @@ fi echo "[docker-run] => Set Permission to www-data for /var/documents" chown -R www-data:www-data /var/documents -if [ ! -f /usr/local/etc/php/php.ini ]; then - cat < /usr/local/etc/php/php.ini -date.timezone = $PHP_INI_DATE_TIMEZONE +echo "[docker-run] => update ${PHP_INI_DIR}/conf.d/dolibarr-php.ini" +cat < ${PHP_INI_DIR}/conf.d/dolibarr-php.ini +date.timezone = ${PHP_INI_DATE_TIMEZONE:-UTC} +memory_limit = ${PHP_INI_MEMORY_LIMIT:-256M} EOF -fi exec apache2-foreground diff --git a/build/doxygen/dolibarr-doxygen-build.pl b/build/doxygen/dolibarr-doxygen-build.pl index 75a5cceddbe..5a4849a3a5b 100755 --- a/build/doxygen/dolibarr-doxygen-build.pl +++ b/build/doxygen/dolibarr-doxygen-build.pl @@ -17,9 +17,9 @@ use Cwd; my $dir = getcwd; print "Current dir is: $dir\n"; -print "Running dir for doxygen must be: $DIR\n"; +#print "Running dir for doxygen must be: $DIR\n"; -if (! -s $CONFFILE) +if (! -s "build/doxygen/$CONFFILE") { print "Error: current directory for building Dolibarr doxygen documentation is not correct.\n"; print "\n"; @@ -30,7 +30,7 @@ if (! -s $CONFFILE) exit 1; } -$SOURCE="../.."; +$SOURCE="."; # Get version $MAJOR, $MINOR and $BUILD $result = open( IN, "< " . $SOURCE . "/htdocs/filefunc.inc.php" ); @@ -47,8 +47,8 @@ $version=$MAJOR.".".$MINOR.".".$BUILD; print "Running doxygen for version ".$version.", please wait...\n"; -print "cat $CONFFILE | sed -e 's/x\.y\.z/".$version."/' | doxygen $OPTIONS - 2>&1\n"; -$result=`cat $CONFFILE | sed -e 's/x\.y\.z/$version/' | doxygen $OPTIONS - 2>&1`; +print "cat build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/".$version."/' | doxygen $OPTIONS - 2>&1\n"; +$result=`cat build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/$version/' | doxygen $OPTIONS - 2>&1`; print $result; diff --git a/build/doxygen/dolibarr-doxygen.doxyfile b/build/doxygen/dolibarr-doxygen.doxyfile index 31400661ecc..6f668ebad7e 100644 --- a/build/doxygen/dolibarr-doxygen.doxyfile +++ b/build/doxygen/dolibarr-doxygen.doxyfile @@ -1,14 +1,17 @@ -# Doxyfile 1.7.3 +# Doxyfile 1.8.16 # This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project +# doxygen (www.doxygen.org) for a project. # -# All text after a hash (#) is considered a comment and will be ignored +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. # The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options @@ -38,7 +41,7 @@ PROJECT_NUMBER = x.y.z # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. -OUTPUT_DIRECTORY = ../../build +OUTPUT_DIRECTORY = build # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output @@ -114,7 +117,7 @@ FULL_PATH_NAMES = YES # If left blank the directory from which doxygen is run is used as the # path to strip. -STRIP_FROM_PATH = "../.." +STRIP_FROM_PATH = "/home/dolibarr/doxygen.dolibarr.org/" # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells @@ -287,7 +290,7 @@ TYPEDEF_HIDES_STRUCT = NO # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols -SYMBOL_CACHE_SIZE = 0 +#SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options @@ -448,7 +451,7 @@ GENERATE_TODOLIST = NO # disable (NO) the test list. This list is created by putting \test # commands in the documentation. -GENERATE_TESTLIST = YES +GENERATE_TESTLIST = NO # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug @@ -487,7 +490,7 @@ SHOW_USED_FILES = YES # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. -SHOW_DIRECTORIES = YES +#SHOW_DIRECTORIES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the @@ -571,7 +574,7 @@ WARN_FORMAT = "$file:$line: $text" # and error messages should be written. If left blank the output is written # to stderr. -WARN_LOGFILE = doxygen_warnings.log +WARN_LOGFILE = build/html/doxygen_warnings.log #--------------------------------------------------------------------------- # configuration options related to the input files @@ -582,7 +585,7 @@ WARN_LOGFILE = doxygen_warnings.log # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = ../../htdocs ../../scripts +INPUT = htdocs scripts # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is @@ -611,7 +614,7 @@ RECURSIVE = YES # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -EXCLUDE = ../../build ../../dev ../../doc ../../document ../../documents ../../htdocs/conf/conf.php ../../htdocs/custom ../../htdocs/document ../../htdocs/documents ../../htdocs/includes +EXCLUDE = build dev doc document documents htdocs/conf/conf.php htdocs/custom htdocs/document htdocs/documents htdocs/includes htdocs/install/doctemplates # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded @@ -625,7 +628,7 @@ EXCLUDE_SYMLINKS = YES # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* -EXCLUDE_PATTERNS = */CVS/* *google* *pibarcode* +EXCLUDE_PATTERNS = */CVS/* # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the @@ -639,27 +642,27 @@ EXCLUDE_SYMBOLS = # directories that contain example code fragments that are included (see # the \include command). -EXAMPLE_PATH = ../../htdocs/modulebuilder/template +#EXAMPLE_PATH = htdocs/modulebuilder/template # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. -EXAMPLE_PATTERNS = *.php +#EXAMPLE_PATTERNS = *.php # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. -EXAMPLE_RECURSIVE = NO +#EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). -IMAGE_PATH = ../../doc/images +IMAGE_PATH = doc/images # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program @@ -762,7 +765,7 @@ ALPHABETICAL_INDEX = YES # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) -COLS_IN_ALPHA_INDEX = 5 +#COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. @@ -775,14 +778,16 @@ IGNORE_PREFIX = # configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. GENERATE_HTML = YES -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html @@ -797,14 +802,14 @@ HTML_FILE_EXTENSION = .html # standard header. # Does not work with 1.7.3 -#HTML_HEADER = doxygen_header.html +#HTML_HEADER = build/doxygen/doxygen_header.html # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. # Does not work with 1.7.3 -HTML_FOOTER = doxygen_footer.html +HTML_FOOTER = build/doxygen/doxygen_footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to @@ -850,7 +855,18 @@ HTML_TIMESTAMP = YES # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. -HTML_ALIGN_MEMBERS = YES +#HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via Javascript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have Javascript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = NO # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the @@ -858,7 +874,7 @@ HTML_ALIGN_MEMBERS = YES # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). -HTML_DYNAMIC_SECTIONS = YES +HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 @@ -1003,7 +1019,7 @@ QHG_LOCATION = # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. -GENERATE_ECLIPSEHELP = YES +GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have @@ -1035,7 +1051,7 @@ GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. -USE_INLINE_TREES = NO +#USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree @@ -1072,7 +1088,7 @@ FORMULA_TRANSPARENT = YES # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. -SEARCHENGINE = NO +SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client @@ -1082,7 +1098,7 @@ SEARCHENGINE = NO # full text search. The disadvances is that it is more difficult to setup # and does not have live searching capabilities. -SERVER_BASED_SEARCH = NO +SERVER_BASED_SEARCH = YES #--------------------------------------------------------------------------- # configuration options related to the LaTeX output @@ -1260,13 +1276,13 @@ XML_OUTPUT = xml # which can be used by a validating XML parser to check the # syntax of the XML files. -XML_SCHEMA = +#XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. -XML_DTD = +#XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting @@ -1431,7 +1447,7 @@ EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). -PERL_PATH = /usr/bin/perl +#PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool @@ -1453,7 +1469,7 @@ CLASS_DIAGRAMS = NO # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. -MSCGEN_PATH = +#MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented @@ -1485,7 +1501,7 @@ DOT_NUM_THREADS = 0 # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. -DOT_FONTNAME = FreeSans.ttf +#DOT_FONTNAME = FreeSans.ttf # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. @@ -1634,3 +1650,7 @@ GENERATE_LEGEND = YES # the various graphs. DOT_CLEANUP = YES + + +FULL_SIDEBAR = NO +HTML_EXTRA_STYLESHEET = build/doxygen/doxygen-awesome.css diff --git a/build/doxygen/doxygen-awesome.css b/build/doxygen/doxygen-awesome.css new file mode 100644 index 00000000000..0b1c8c20892 --- /dev/null +++ b/build/doxygen/doxygen-awesome.css @@ -0,0 +1,2413 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +html { + /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */ + --primary-color: #1779c4; + --primary-dark-color: #335c80; + --primary-light-color: #70b1e9; + + /* page base colors */ + --page-background-color: #ffffff; + --page-foreground-color: #2f4153; + --page-secondary-foreground-color: #6f7e8e; + + /* color for all separators on the website: hr, borders, ... */ + --separator-color: #dedede; + + /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */ + --border-radius-large: 8px; + --border-radius-small: 4px; + --border-radius-medium: 6px; + + /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */ + --spacing-small: 5px; + --spacing-medium: 10px; + --spacing-large: 16px; + + /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */ + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + + --odd-color: rgba(0,0,0,.028); + + /* font-families. will affect all text on the website + * font-family: the normal font for text, headlines, menus + * font-family-monospace: used for preformatted text in memtitle, code, fragments + */ + --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif; + --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + + /* font sizes */ + --page-font-size: 15.6px; + --navigation-font-size: 14.4px; + --toc-font-size: 13.4px; + --code-font-size: 14px; /* affects code, fragment */ + --title-font-size: 22px; + + /* content text properties. These only affect the page content, not the navigation or any other ui elements */ + --content-line-height: 27px; + /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/ + --content-maxwidth: 1050px; + --table-line-height: 24px; + --toc-sticky-top: var(--spacing-medium); + --toc-width: 200px; + --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px); + + /* colors for various content boxes: @warning, @note, @deprecated @bug */ + --warning-color: #f8d1cc; + --warning-color-dark: #b61825; + --warning-color-darker: #75070f; + --note-color: #faf3d8; + --note-color-dark: #f3a600; + --note-color-darker: #5f4204; + --todo-color: #e4f3ff; + --todo-color-dark: #1879C4; + --todo-color-darker: #274a5c; + --deprecated-color: #ecf0f3; + --deprecated-color-dark: #5b6269; + --deprecated-color-darker: #43454a; + --bug-color: #e4dafd; + --bug-color-dark: #5b2bdd; + --bug-color-darker: #2a0d72; + --invariant-color: #d8f1e3; + --invariant-color-dark: #44b86f; + --invariant-color-darker: #265532; + + /* blockquote colors */ + --blockquote-background: #f8f9fa; + --blockquote-foreground: #636568; + + /* table colors */ + --tablehead-background: #f1f1f1; + --tablehead-foreground: var(--page-foreground-color); + + /* menu-display: block | none + * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible. + * `GENERATE_TREEVIEW` MUST be enabled! + */ + --menu-display: block; + + --menu-focus-foreground: var(--page-background-color); + --menu-focus-background: var(--primary-color); + --menu-selected-background: rgba(0,0,0,.05); + + + --header-background: var(--page-background-color); + --header-foreground: var(--page-foreground-color); + + /* searchbar colors */ + --searchbar-background: var(--side-nav-background); + --searchbar-foreground: var(--page-foreground-color); + + /* searchbar size + * (`searchbar-width` is only applied on screens >= 768px. + * on smaller screens the searchbar will always fill the entire screen width) */ + --searchbar-height: 33px; + --searchbar-width: 210px; + --searchbar-border-radius: var(--searchbar-height); + + /* code block colors */ + --code-background: #f5f5f5; + --code-foreground: var(--page-foreground-color); + + /* fragment colors */ + --fragment-background: #F8F9FA; + --fragment-foreground: #37474F; + --fragment-keyword: #bb6bb2; + --fragment-keywordtype: #8258b3; + --fragment-keywordflow: #d67c3b; + --fragment-token: #438a59; + --fragment-comment: #969696; + --fragment-link: #5383d6; + --fragment-preprocessor: #46aaa5; + --fragment-linenumber-color: #797979; + --fragment-linenumber-background: #f4f4f5; + --fragment-linenumber-border: #e3e5e7; + --fragment-lineheight: 20px; + + /* sidebar navigation (treeview) colors */ + --side-nav-background: #fbfbfb; + --side-nav-foreground: var(--page-foreground-color); + --side-nav-arrow-opacity: 0; + --side-nav-arrow-hover-opacity: 0.9; + + --toc-background: var(--side-nav-background); + --toc-foreground: var(--side-nav-foreground); + + /* height of an item in any tree / collapsable table */ + --tree-item-height: 30px; + + --memname-font-size: var(--code-font-size); + --memtitle-font-size: 18px; + + --webkit-scrollbar-size: 7px; + --webkit-scrollbar-padding: 4px; + --webkit-scrollbar-color: var(--separator-color); +} + +@media screen and (max-width: 767px) { + html { + --page-font-size: 16px; + --navigation-font-size: 16px; + --toc-font-size: 15px; + --code-font-size: 15px; /* affects code, fragment */ + --title-font-size: 22px; + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #2e1917; + --warning-color-dark: #ad2617; + --warning-color-darker: #f5b1aa; + --note-color: #3b2e04; + --note-color-dark: #f1b602; + --note-color-darker: #ceb670; + --todo-color: #163750; + --todo-color-dark: #1982D2; + --todo-color-darker: #dcf0fa; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2a2536; + --bug-color-dark: #7661b3; + --bug-color-darker: #ae9ed6; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; + } +} + +/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */ +html.dark-mode { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #2e1917; + --warning-color-dark: #ad2617; + --warning-color-darker: #f5b1aa; + --note-color: #3b2e04; + --note-color-dark: #f1b602; + --note-color-darker: #ceb670; + --todo-color: #163750; + --todo-color-dark: #1982D2; + --todo-color-darker: #dcf0fa; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2a2536; + --bug-color-dark: #7661b3; + --bug-color-darker: #ae9ed6; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; +} + +body { + color: var(--page-foreground-color); + background-color: var(--page-background-color); + font-size: var(--page-font-size); +} + +body, table, div, p, dl, #nav-tree .label, .title, +.sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname, +.SelectItem, #MSearchField, .navpath li.navelem a, +.navpath li.navelem a:hover, p.reference, p.definition { + font-family: var(--font-family); +} + +h1, h2, h3, h4, h5 { + margin-top: .9em; + font-weight: 600; + line-height: initial; +} + +p, div, table, dl, p.reference, p.definition { + font-size: var(--page-font-size); +} + +p.reference, p.definition { + color: var(--page-secondary-foreground-color); +} + +a:link, a:visited, a:hover, a:focus, a:active { + color: var(--primary-color) !important; + font-weight: 500; +} + +a.anchor { + scroll-margin-top: var(--spacing-large); + display: block; +} + +/* + Title and top navigation + */ + +#top { + background: var(--header-background); + border-bottom: 1px solid var(--separator-color); +} + +@media screen and (min-width: 768px) { + #top { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + } +} + +#main-nav { + flex-grow: 5; + padding: var(--spacing-small) var(--spacing-medium); +} + +#titlearea { + width: auto; + padding: var(--spacing-medium) var(--spacing-large); + background: none; + color: var(--header-foreground); + border-bottom: none; +} + +@media screen and (max-width: 767px) { + #titlearea { + padding-bottom: var(--spacing-small); + } +} + +#titlearea table tbody tr { + height: auto !important; +} + +#projectname { + font-size: var(--title-font-size); + font-weight: 600; +} + +#projectnumber { + font-family: inherit; + font-size: 60%; +} + +#projectbrief { + font-family: inherit; + font-size: 80%; +} + +#projectlogo { + vertical-align: middle; +} + +#projectlogo img { + max-height: calc(var(--title-font-size) * 2); + margin-right: var(--spacing-small); +} + +.sm-dox, .tabs, .tabs2, .tabs3 { + background: none; + padding: 0; +} + +.tabs, .tabs2, .tabs3 { + border-bottom: 1px solid var(--separator-color); + margin-bottom: -1px; +} + +.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after { + background: var(--page-secondary-foreground-color); +} + +@media screen and (max-width: 767px) { + .sm-dox a span.sub-arrow { + background: var(--code-background); + } + + #main-menu a.has-submenu span.sub-arrow { + color: var(--page-secondary-foreground-color); + border-radius: var(--border-radius-medium); + } + + #main-menu a.has-submenu:hover span.sub-arrow { + color: var(--page-foreground-color); + } +} + +@media screen and (min-width: 768px) { + .sm-dox li, .tablist li { + display: var(--menu-display); + } + + .sm-dox a span.sub-arrow { + border-color: var(--header-foreground) transparent transparent transparent; + } + + .sm-dox a:hover span.sub-arrow { + border-color: var(--menu-focus-foreground) transparent transparent transparent; + } + + .sm-dox ul a span.sub-arrow { + border-color: transparent transparent transparent var(--page-foreground-color); + } + + .sm-dox ul a:hover span.sub-arrow { + border-color: transparent transparent transparent var(--menu-focus-foreground); + } +} + +.sm-dox ul { + background: var(--page-background-color); + box-shadow: var(--box-shadow); + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium) !important; + padding: var(--spacing-small); + animation: ease-out 150ms slideInMenu; +} + +@keyframes slideInMenu { + from { + opacity: 0; + transform: translate(0px, -2px); + } + + to { + opacity: 1; + transform: translate(0px, 0px); + } +} + +.sm-dox ul a { + color: var(--page-foreground-color) !important; + background: var(--page-background-color); + font-size: var(--navigation-font-size); +} + +.sm-dox>li>ul:after { + border-bottom-color: var(--page-background-color) !important; +} + +.sm-dox>li>ul:before { + border-bottom-color: var(--separator-color) !important; +} + +.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus { + font-size: var(--navigation-font-size) !important; + color: var(--menu-focus-foreground) !important; + text-shadow: none; + background-color: var(--menu-focus-background); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a { + text-shadow: none; + background: transparent; + background-image: none !important; + color: var(--header-foreground) !important; + font-weight: normal; + font-size: var(--navigation-font-size); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a:focus { + outline: auto; +} + +.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover { + text-shadow: none; + font-weight: normal; + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; + border-radius: var(--border-radius-small) !important; + font-size: var(--navigation-font-size); +} + +.tablist li.current { + border-radius: var(--border-radius-small); + background: var(--menu-selected-background); +} + +.tablist li { + margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small); +} + +.tablist a { + padding: 0 var(--spacing-large); +} + + +/* + Search box + */ + +#MSearchBox { + height: var(--searchbar-height); + background: var(--searchbar-background); + border-radius: var(--searchbar-border-radius); + border: 1px solid var(--separator-color); + overflow: hidden; + width: var(--searchbar-width); + position: relative; + box-shadow: none; + display: block; + margin-top: 0; +} + +/* until Doxygen 1.9.4 */ +.left img#MSearchSelect { + left: 0; + user-select: none; + padding-left: 8px; +} + +/* Doxygen 1.9.5 */ +.left span#MSearchSelect { + left: 0; + user-select: none; + margin-left: 8px; + padding: 0; +} + +.left #MSearchSelect[src$=".png"] { + padding-left: 0 +} + +.SelectionMark { + user-select: none; +} + +.tabs .left #MSearchSelect { + padding-left: 0; +} + +.tabs #MSearchBox { + position: absolute; + right: var(--spacing-medium); +} + +@media screen and (max-width: 767px) { + .tabs #MSearchBox { + position: relative; + right: 0; + margin-left: var(--spacing-medium); + margin-top: 0; + } +} + +#MSearchSelectWindow, #MSearchResultsWindow { + z-index: 9999; +} + +#MSearchBox.MSearchBoxActive { + border-color: var(--primary-color); + box-shadow: inset 0 0 0 1px var(--primary-color); +} + +#main-menu > li:last-child { + margin-right: 0; +} + +@media screen and (max-width: 767px) { + #main-menu > li:last-child { + height: 50px; + } +} + +#MSearchField { + font-size: var(--navigation-font-size); + height: calc(var(--searchbar-height) - 2px); + background: transparent; + width: calc(var(--searchbar-width) - 64px); +} + +.MSearchBoxActive #MSearchField { + color: var(--searchbar-foreground); +} + +#MSearchSelect { + top: calc(calc(var(--searchbar-height) / 2) - 11px); +} + +#MSearchBox span.left, #MSearchBox span.right { + background: none; + background-image: none; +} + +#MSearchBox span.right { + padding-top: calc(calc(var(--searchbar-height) / 2) - 12px); + position: absolute; + right: var(--spacing-small); +} + +.tabs #MSearchBox span.right { + top: calc(calc(var(--searchbar-height) / 2) - 12px); +} + +@keyframes slideInSearchResults { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } +} + +#MSearchResultsWindow { + left: auto !important; + right: var(--spacing-medium); + border-radius: var(--border-radius-large); + border: 1px solid var(--separator-color); + transform: translate(0, 20px); + box-shadow: var(--box-shadow); + animation: ease-out 280ms slideInSearchResults; + background: var(--page-background-color); +} + +iframe#MSearchResults { + margin: 4px; +} + +iframe { + color-scheme: normal; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) iframe#MSearchResults { + filter: invert() hue-rotate(180deg); + } +} + +html.dark-mode iframe#MSearchResults { + filter: invert() hue-rotate(180deg); +} + +#MSearchResults .SRPage { + background-color: transparent; +} + +#MSearchResults .SRPage .SREntry { + font-size: 10pt; + padding: var(--spacing-small) var(--spacing-medium); +} + +#MSearchSelectWindow { + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + box-shadow: var(--box-shadow); + background: var(--page-background-color); + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); +} + +#MSearchSelectWindow a.SelectItem { + font-size: var(--navigation-font-size); + line-height: var(--content-line-height); + margin: 0 var(--spacing-small); + border-radius: var(--border-radius-small); + color: var(--page-foreground-color) !important; + font-weight: normal; +} + +#MSearchSelectWindow a.SelectItem:hover { + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; +} + +@media screen and (max-width: 767px) { + #MSearchBox { + margin-top: var(--spacing-medium); + margin-bottom: var(--spacing-medium); + width: calc(100vw - 30px); + } + + #main-menu > li:last-child { + float: none !important; + } + + #MSearchField { + width: calc(100vw - 110px); + } + + @keyframes slideInSearchResultsMobile { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } + } + + #MSearchResultsWindow { + left: var(--spacing-medium) !important; + right: var(--spacing-medium); + overflow: auto; + transform: translate(0, 20px); + animation: ease-out 280ms slideInSearchResultsMobile; + width: auto !important; + } + + /* + * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2 + */ + label.main-menu-btn ~ #searchBoxPos1 { + top: 3px !important; + right: 6px !important; + left: 45px; + display: flex; + } + + label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox { + margin-top: 0; + margin-bottom: 0; + flex-grow: 2; + float: left; + } +} + +/* + Tree view + */ + +#side-nav { + padding: 0 !important; + background: var(--side-nav-background); +} + +@media screen and (max-width: 767px) { + #side-nav { + display: none; + } + + #doc-content { + margin-left: 0 !important; + } +} + +#nav-tree { + background: transparent; +} + +#nav-tree .label { + font-size: var(--navigation-font-size); +} + +#nav-tree .item { + height: var(--tree-item-height); + line-height: var(--tree-item-height); +} + +#nav-sync { + bottom: 12px; + right: 12px; + top: auto !important; + user-select: none; +} + +#nav-tree .selected { + text-shadow: none; + background-image: none; + background-color: transparent; + position: relative; +} + +#nav-tree .selected::after { + content: ""; + position: absolute; + top: 1px; + bottom: 1px; + left: 0; + width: 4px; + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + background: var(--primary-color); +} + + +#nav-tree a { + color: var(--side-nav-foreground) !important; + font-weight: normal; +} + +#nav-tree a:focus { + outline-style: auto; +} + +#nav-tree .arrow { + opacity: var(--side-nav-arrow-opacity); +} + +.arrow { + color: inherit; + cursor: pointer; + font-size: 45%; + vertical-align: middle; + margin-right: 2px; + font-family: serif; + height: auto; + text-align: right; +} + +#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow { + opacity: var(--side-nav-arrow-hover-opacity); +} + +#nav-tree .selected a { + color: var(--primary-color) !important; + font-weight: bolder; + font-weight: 600; +} + +.ui-resizable-e { + background: var(--separator-color); + width: 1px; +} + +/* + Contents + */ + +div.header { + border-bottom: 1px solid var(--separator-color); + background-color: var(--page-background-color); + background-image: none; +} + +@media screen and (min-width: 1000px) { + #doc-content > div > div.contents, + .PageDoc > div.contents { + display: flex; + flex-direction: row-reverse; + flex-wrap: nowrap; + align-items: flex-start; + } + + div.contents .textblock { + min-width: 200px; + flex-grow: 1; + } +} + +div.contents, div.header .title, div.header .summary { + max-width: var(--content-maxwidth); +} + +div.contents, div.header .title { + line-height: initial; + margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto; +} + +div.header .summary { + margin: var(--spacing-medium) auto 0 auto; +} + +div.headertitle { + padding: 0; +} + +div.header .title { + font-weight: 600; + font-size: 225%; + padding: var(--spacing-medium) var(--spacing-large); + word-break: break-word; +} + +div.header .summary { + width: auto; + display: block; + float: none; + padding: 0 var(--spacing-large); +} + +td.memSeparator { + border-color: var(--separator-color); +} + +span.mlabel { + background: var(--primary-color); + border: none; + padding: 4px 9px; + border-radius: 12px; + margin-right: var(--spacing-medium); +} + +span.mlabel:last-of-type { + margin-right: 2px; +} + +div.contents { + padding: 0 var(--spacing-large); +} + +div.contents p, div.contents li { + line-height: var(--content-line-height); +} + +div.contents div.dyncontent { + margin: var(--spacing-medium) 0; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) div.contents div.dyncontent img, + html:not(.light-mode) div.contents center img, + html:not(.light-mode) div.contents > table img, + html:not(.light-mode) div.contents div.dyncontent iframe, + html:not(.light-mode) div.contents center iframe, + html:not(.light-mode) div.contents table iframe { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode div.contents div.dyncontent img, +html.dark-mode div.contents center img, +html.dark-mode div.contents > table img, +html.dark-mode div.contents div.dyncontent iframe, +html.dark-mode div.contents center iframe, +html.dark-mode div.contents table iframe { + filter: hue-rotate(180deg) invert(); +} + +h2.groupheader { + border-bottom: 0px; + color: var(--page-foreground-color); + box-shadow: + 100px 0 var(--page-background-color), + -100px 0 var(--page-background-color), + 100px 0.75px var(--separator-color), + -100px 0.75px var(--separator-color), + 500px 0 var(--page-background-color), + -500px 0 var(--page-background-color), + 500px 0.75px var(--separator-color), + -500px 0.75px var(--separator-color), + 900px 0 var(--page-background-color), + -900px 0 var(--page-background-color), + 900px 0.75px var(--separator-color), + -900px 0.75px var(--separator-color), + 1400px 0 var(--page-background-color), + -1400px 0 var(--page-background-color), + 1400px 0.75px var(--separator-color), + -1400px 0.75px var(--separator-color), + 1900px 0 var(--page-background-color), + -1900px 0 var(--page-background-color), + 1900px 0.75px var(--separator-color), + -1900px 0.75px var(--separator-color); +} + +blockquote { + margin: 0 var(--spacing-medium) 0 var(--spacing-medium); + padding: var(--spacing-small) var(--spacing-large); + background: var(--blockquote-background); + color: var(--blockquote-foreground); + border-left: 0; + overflow: visible; + border-radius: var(--border-radius-medium); + overflow: visible; + position: relative; +} + +blockquote::before, blockquote::after { + font-weight: bold; + font-family: serif; + font-size: 360%; + opacity: .15; + position: absolute; +} + +blockquote::before { + content: "“"; + left: -10px; + top: 4px; +} + +blockquote::after { + content: "”"; + right: -8px; + bottom: -25px; +} + +blockquote p { + margin: var(--spacing-small) 0 var(--spacing-medium) 0; +} +.paramname { + font-weight: 600; + color: var(--primary-dark-color); +} + +.paramname > code { + border: 0; +} + +table.params .paramname { + font-weight: 600; + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + padding-right: var(--spacing-small); + line-height: var(--table-line-height); +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--primary-light-color); +} + +.alphachar a { + color: var(--page-foreground-color); +} + +/* + Table of Contents + */ + +div.contents .toc { + max-height: var(--toc-max-height); + min-width: var(--toc-width); + border: 0; + border-left: 1px solid var(--separator-color); + border-radius: 0; + background-color: transparent; + box-shadow: none; + position: sticky; + top: var(--toc-sticky-top); + padding: 0 var(--spacing-large); + margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large); +} + +div.toc h3 { + color: var(--toc-foreground); + font-size: var(--navigation-font-size); + margin: var(--spacing-large) 0 var(--spacing-medium) 0; +} + +div.toc li { + padding: 0; + background: none; + line-height: var(--toc-font-size); + margin: var(--toc-font-size) 0 0 0; +} + +div.toc li::before { + display: none; +} + +div.toc ul { + margin-top: 0 +} + +div.toc li a { + font-size: var(--toc-font-size); + color: var(--page-foreground-color) !important; + text-decoration: none; +} + +div.toc li a:hover, div.toc li a.active { + color: var(--primary-color) !important; +} + +div.toc li a.aboveActive { + color: var(--page-secondary-foreground-color) !important; +} + + +@media screen and (max-width: 999px) { + div.contents .toc { + max-height: 45vh; + float: none; + width: auto; + margin: 0 0 var(--spacing-medium) 0; + position: relative; + top: 0; + position: relative; + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + background-color: var(--toc-background); + box-shadow: var(--box-shadow); + } + + div.contents .toc.interactive { + max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large)); + overflow: hidden; + } + + div.contents .toc > h3 { + -webkit-tap-highlight-color: transparent; + cursor: pointer; + position: sticky; + top: 0; + background-color: var(--toc-background); + margin: 0; + padding: var(--spacing-large) 0; + display: block; + } + + div.contents .toc.interactive > h3::before { + content: ""; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + display: inline-block; + margin-right: var(--spacing-small); + margin-bottom: calc(var(--navigation-font-size) / 4); + transform: rotate(-90deg); + transition: transform 0.25s ease-out; + } + + div.contents .toc.interactive.open > h3::before { + transform: rotate(0deg); + } + + div.contents .toc.interactive.open { + max-height: 45vh; + overflow: auto; + transition: max-height 0.2s ease-in-out; + } + + div.contents .toc a, div.contents .toc a.active { + color: var(--primary-color) !important; + } + + div.contents .toc a:hover { + text-decoration: underline; + } +} + +/* + Code & Fragments + */ + +code, div.fragment, pre.fragment { + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + overflow: hidden; +} + +code { + display: inline; + background: var(--code-background); + color: var(--code-foreground); + padding: 2px 6px; +} + +div.fragment, pre.fragment { + margin: var(--spacing-medium) 0; + padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large); + background: var(--fragment-background); + color: var(--fragment-foreground); + overflow-x: auto; +} + +@media screen and (max-width: 767px) { + div.fragment, pre.fragment { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 0; + } + + .contents > div.fragment, + .textblock > div.fragment, + .textblock > pre.fragment, + .contents > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + border-radius: 0; + border-left: 0; + } + + .textblock li > .fragment, + .textblock li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + } + + .memdoc li > .fragment, + .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + } + + .textblock ul, .memdoc ul { + overflow: initial; + } + + .memdoc > div.fragment, + .memdoc > pre.fragment, + dl dd > div.fragment, + dl dd pre.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment, + dl dd > .doxygen-awesome-fragment-wrapper > div.fragment, + dl dd .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + border-radius: 0; + border-left: 0; + } +} + +code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size) !important; +} + +div.line:after { + margin-right: var(--spacing-medium); +} + +div.fragment .line, pre.fragment { + white-space: pre; + word-wrap: initial; + line-height: var(--fragment-lineheight); +} + +div.fragment span.keyword { + color: var(--fragment-keyword); +} + +div.fragment span.keywordtype { + color: var(--fragment-keywordtype); +} + +div.fragment span.keywordflow { + color: var(--fragment-keywordflow); +} + +div.fragment span.stringliteral { + color: var(--fragment-token) +} + +div.fragment span.comment { + color: var(--fragment-comment); +} + +div.fragment a.code { + color: var(--fragment-link) !important; +} + +div.fragment span.preprocessor { + color: var(--fragment-preprocessor); +} + +div.fragment span.lineno { + display: inline-block; + width: 27px; + border-right: none; + background: var(--fragment-linenumber-background); + color: var(--fragment-linenumber-color); +} + +div.fragment span.lineno a { + background: none; + color: var(--fragment-link) !important; +} + +div.fragment .line:first-child .lineno { + box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border); +} + +div.line { + border-radius: var(--border-radius-small); +} + +div.line.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +/* + dl warning, attention, note, deprecated, bug, ... + */ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.todo, dl.remark { + padding: var(--spacing-medium); + margin: var(--spacing-medium) 0; + color: var(--page-background-color); + overflow: hidden; + margin-left: 0; + border-radius: var(--border-radius-small); +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color); + border-left: 8px solid var(--warning-color-dark); + color: var(--warning-color-darker); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-dark); +} + +dl.note, dl.remark { + background: var(--note-color); + border-left: 8px solid var(--note-color-dark); + color: var(--note-color-darker); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-dark); +} + +dl.todo { + background: var(--todo-color); + border-left: 8px solid var(--todo-color-dark); + color: var(--todo-color-darker); +} + +dl.todo dt { + color: var(--todo-color-dark); +} + +dl.bug dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug { + background: var(--bug-color); + border-left: 8px solid var(--bug-color-dark); + color: var(--bug-color-darker); +} + +dl.bug dt a { + color: var(--bug-color-dark) !important; +} + +dl.deprecated { + background: var(--deprecated-color); + border-left: 8px solid var(--deprecated-color-dark); + color: var(--deprecated-color-darker); +} + +dl.deprecated dt a { + color: var(--deprecated-color-dark) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre { + background: var(--invariant-color); + border-left: 8px solid var(--invariant-color-dark); + color: var(--invariant-color-darker); +} + +dl.invariant dt, dl.pre dt { + color: var(--invariant-color-dark); +} + +/* + memitem + */ + +div.memdoc, div.memproto, h2.memtitle { + box-shadow: none; + background-image: none; + border: none; +} + +div.memdoc { + padding: 0 var(--spacing-medium); + background: var(--page-background-color); +} + +h2.memtitle, div.memitem { + border: 1px solid var(--separator-color); + box-shadow: var(--box-shadow); +} + +h2.memtitle { + box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow); +} + +div.memitem { + transition: none; +} + +div.memproto, h2.memtitle { + background: var(--fragment-background); +} + +h2.memtitle { + font-weight: 500; + font-size: var(--memtitle-font-size); + font-family: var(--font-family-monospace); + border-bottom: none; + border-top-left-radius: var(--border-radius-medium); + border-top-right-radius: var(--border-radius-medium); + word-break: break-all; + position: relative; +} + +h2.memtitle:after { + content: ""; + display: block; + background: var(--fragment-background); + height: var(--spacing-medium); + bottom: calc(0px - var(--spacing-medium)); + left: 0; + right: -14px; + position: absolute; + border-top-right-radius: var(--border-radius-medium); +} + +h2.memtitle > span.permalink { + font-size: inherit; +} + +h2.memtitle > span.permalink > a { + text-decoration: none; + padding-left: 3px; + margin-right: -4px; + user-select: none; + display: inline-block; + margin-top: -6px; +} + +h2.memtitle > span.permalink > a:hover { + color: var(--primary-dark-color) !important; +} + +a:target + h2.memtitle, a:target + h2.memtitle + div.memitem { + border-color: var(--primary-light-color); +} + +div.memitem { + border-top-right-radius: var(--border-radius-medium); + border-bottom-right-radius: var(--border-radius-medium); + border-bottom-left-radius: var(--border-radius-medium); + overflow: hidden; + display: block !important; +} + +div.memdoc { + border-radius: 0; +} + +div.memproto { + border-radius: 0 var(--border-radius-small) 0 0; + overflow: auto; + border-bottom: 1px solid var(--separator-color); + padding: var(--spacing-medium); + margin-bottom: -1px; +} + +div.memtitle { + border-top-right-radius: var(--border-radius-medium); + border-top-left-radius: var(--border-radius-medium); +} + +div.memproto table.memname { + font-family: var(--font-family-monospace); + color: var(--page-foreground-color); + font-size: var(--memname-font-size); + text-shadow: none; +} + +div.memproto div.memtemplate { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--memname-font-size); + margin-left: 2px; + text-shadow: none; +} + +table.mlabels, table.mlabels > tbody { + display: block; +} + +td.mlabels-left { + width: auto; +} + +td.mlabels-right { + margin-top: 3px; + position: sticky; + left: 0; +} + +table.mlabels > tbody > tr:first-child { + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.memname, .memitem span.mlabels { + margin: 0 +} + +/* + reflist + */ + +dl.reflist { + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-medium); + border: 1px solid var(--separator-color); + overflow: hidden; + padding: 0; +} + + +dl.reflist dt, dl.reflist dd { + box-shadow: none; + text-shadow: none; + background-image: none; + border: none; + padding: 12px; +} + + +dl.reflist dt { + font-weight: 500; + border-radius: 0; + background: var(--code-background); + border-bottom: 1px solid var(--separator-color); + color: var(--page-foreground-color) +} + + +dl.reflist dd { + background: none; +} + +/* + Table + */ + +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname), +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody { + display: inline-block; + max-width: 100%; +} + +.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); +} + +table.fieldtable, +table.markdownTable tbody, +table.doxtable tbody { + border: none; + margin: var(--spacing-medium) 0; + box-shadow: 0 0 0 1px var(--separator-color); + border-radius: var(--border-radius-small); +} + +table.doxtable caption { + display: block; +} + +table.fieldtable { + border-collapse: collapse; + width: 100%; +} + +th.markdownTableHeadLeft, +th.markdownTableHeadRight, +th.markdownTableHeadCenter, +th.markdownTableHeadNone, +table.doxtable th { + background: var(--tablehead-background); + color: var(--tablehead-foreground); + font-weight: 600; + font-size: var(--page-font-size); +} + +th.markdownTableHeadLeft:first-child, +th.markdownTableHeadRight:first-child, +th.markdownTableHeadCenter:first-child, +th.markdownTableHeadNone:first-child, +table.doxtable tr th:first-child { + border-top-left-radius: var(--border-radius-small); +} + +th.markdownTableHeadLeft:last-child, +th.markdownTableHeadRight:last-child, +th.markdownTableHeadCenter:last-child, +th.markdownTableHeadNone:last-child, +table.doxtable tr th:last-child { + border-top-right-radius: var(--border-radius-small); +} + +table.markdownTable td, +table.markdownTable th, +table.fieldtable td, +table.fieldtable th, +table.doxtable td, +table.doxtable th { + border: 1px solid var(--separator-color); + padding: var(--spacing-small) var(--spacing-medium); +} + +table.markdownTable td:last-child, +table.markdownTable th:last-child, +table.fieldtable td:last-child, +table.fieldtable th:last-child, +table.doxtable td:last-child, +table.doxtable th:last-child { + border-right: none; +} + +table.markdownTable td:first-child, +table.markdownTable th:first-child, +table.fieldtable td:first-child, +table.fieldtable th:first-child, +table.doxtable td:first-child, +table.doxtable th:first-child { + border-left: none; +} + +table.markdownTable tr:first-child td, +table.markdownTable tr:first-child th, +table.fieldtable tr:first-child td, +table.fieldtable tr:first-child th, +table.doxtable tr:first-child td, +table.doxtable tr:first-child th { + border-top: none; +} + +table.markdownTable tr:last-child td, +table.markdownTable tr:last-child th, +table.fieldtable tr:last-child td, +table.fieldtable tr:last-child th, +table.doxtable tr:last-child td, +table.doxtable tr:last-child th { + border-bottom: none; +} + +table.markdownTable tr, table.doxtable tr { + border-bottom: 1px solid var(--separator-color); +} + +table.markdownTable tr:last-child, table.doxtable tr:last-child { + border-bottom: none; +} + +table.fieldtable th { + font-size: var(--page-font-size); + font-weight: 600; + background-image: none; + background-color: var(--tablehead-background); + color: var(--tablehead-foreground); +} + +table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th { + border-bottom: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); +} + +table.fieldtable tr:last-child td:first-child { + border-bottom-left-radius: var(--border-radius-small); +} + +table.fieldtable tr:last-child td:last-child { + border-bottom-right-radius: var(--border-radius-small); +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +table.memberdecls { + display: block; + -webkit-tap-highlight-color: transparent; +} + +table.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); +} + +table.memberdecls tr[class^='memitem'] .memTemplParams { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + color: var(--primary-dark-color); + white-space: normal; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memItemRight, +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight, +table.memberdecls .memTemplParams { + transition: none; + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + background-color: var(--fragment-background); +} + +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight { + padding-top: 2px; +} + +table.memberdecls .memTemplParams { + border-bottom: 0; + border-left: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + padding-bottom: var(--spacing-small); +} + +table.memberdecls .memTemplItemLeft { + border-radius: 0 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + border-top: 0; +} + +table.memberdecls .memTemplItemRight { + border-radius: 0 0 var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-left: 0; + border-top: 0; +} + +table.memberdecls .memItemLeft { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + padding-left: var(--spacing-medium); + padding-right: 0; +} + +table.memberdecls .memItemRight { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-right: var(--spacing-medium); + padding-left: 0; + +} + +table.memberdecls .mdescLeft, table.memberdecls .mdescRight { + background: none; + color: var(--page-foreground-color); + padding: var(--spacing-small) 0; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memTemplItemLeft { + padding-right: var(--spacing-medium); +} + +table.memberdecls .memSeparator { + background: var(--page-background-color); + height: var(--spacing-large); + border: 0; + transition: none; +} + +table.memberdecls .groupheader { + margin-bottom: var(--spacing-large); +} + +table.memberdecls .inherit_header td { + padding: 0 0 var(--spacing-medium) 0; + text-indent: -12px; + color: var(--page-secondary-foreground-color); +} + +table.memberdecls img[src="closed.png"], +table.memberdecls img[src="open.png"], +div.dynheader img[src="open.png"], +div.dynheader img[src="closed.png"] { + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + margin-top: 8px; + display: block; + float: left; + margin-left: -10px; + transition: transform 0.25s ease-out; +} + +table.memberdecls img { + margin-right: 10px; +} + +table.memberdecls img[src="closed.png"], +div.dynheader img[src="closed.png"] { + transform: rotate(-90deg); + +} + +.compoundTemplParams { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--code-font-size); +} + +@media screen and (max-width: 767px) { + + table.memberdecls .memItemLeft, + table.memberdecls .memItemRight, + table.memberdecls .mdescLeft, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemLeft, + table.memberdecls .memTemplItemRight, + table.memberdecls .memTemplParams { + display: block; + text-align: left; + padding-left: var(--spacing-large); + margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large)); + border-right: none; + border-left: none; + border-radius: 0; + white-space: normal; + } + + table.memberdecls .memItemLeft, + table.memberdecls .mdescLeft, + table.memberdecls .memTemplItemLeft { + border-bottom: 0; + padding-bottom: 0; + } + + table.memberdecls .memTemplItemLeft { + padding-top: 0; + } + + table.memberdecls .mdescLeft { + margin-bottom: calc(0px - var(--page-font-size)); + } + + table.memberdecls .memItemRight, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemRight { + border-top: 0; + padding-top: 0; + padding-right: var(--spacing-large); + overflow-x: auto; + } + + table.memberdecls tr[class^='memitem']:not(.inherit) { + display: block; + width: calc(100vw - 2 * var(--spacing-large)); + } + + table.memberdecls .mdescRight { + color: var(--page-foreground-color); + } + + table.memberdecls tr.inherit { + visibility: hidden; + } + + table.memberdecls tr[style="display: table-row;"] { + display: block !important; + visibility: visible; + width: calc(100vw - 2 * var(--spacing-large)); + animation: fade .5s; + } + + @keyframes fade { + 0% { + opacity: 0; + max-height: 0; + } + + 100% { + opacity: 1; + max-height: 200px; + } + } +} + + +/* + Horizontal Rule + */ + +hr { + margin-top: var(--spacing-large); + margin-bottom: var(--spacing-large); + height: 1px; + background-color: var(--separator-color); + border: 0; +} + +.contents hr { + box-shadow: 100px 0 0 var(--separator-color), + -100px 0 0 var(--separator-color), + 500px 0 0 var(--separator-color), + -500px 0 0 var(--separator-color), + 1500px 0 0 var(--separator-color), + -1500px 0 0 var(--separator-color), + 2000px 0 0 var(--separator-color), + -2000px 0 0 var(--separator-color); +} + +.contents img, .contents .center, .contents center, .contents div.image object { + max-width: 100%; + overflow: auto; +} + +@media screen and (max-width: 767px) { + .contents .dyncontent > .center, .contents > center { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); + } +} + +/* + Directories + */ +div.directory { + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + width: auto; +} + +table.directory { + font-family: var(--font-family); + font-size: var(--page-font-size); + font-weight: normal; + width: 100%; +} + +table.directory td.entry, table.directory td.desc { + padding: calc(var(--spacing-small) / 2) var(--spacing-small); + line-height: var(--table-line-height); +} + +table.directory tr.even td:last-child { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; +} + +table.directory tr.even td:first-child { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); +} + +table.directory tr.even:last-child td:last-child { + border-radius: 0 var(--border-radius-small) 0 0; +} + +table.directory tr.even:last-child td:first-child { + border-radius: var(--border-radius-small) 0 0 0; +} + +table.directory td.desc { + min-width: 250px; +} + +table.directory tr.even { + background-color: var(--odd-color); +} + +table.directory tr.odd { + background-color: transparent; +} + +.icona { + width: auto; + height: auto; + margin: 0 var(--spacing-small); +} + +.icon { + background: var(--primary-color); + border-radius: var(--border-radius-small); + font-size: var(--page-font-size); + padding: calc(var(--page-font-size) / 5); + line-height: var(--page-font-size); + transform: scale(0.8); + height: auto; + width: var(--page-font-size); + user-select: none; +} + +.iconfopen, .icondoc, .iconfclosed { + background-position: center; + margin-bottom: 0; + height: var(--table-line-height); +} + +.icondoc { + filter: saturate(0.2); +} + +@media screen and (max-width: 767px) { + div.directory { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode .iconfopen, html.dark-mode .iconfclosed { + filter: hue-rotate(180deg) invert(); +} + +/* + Class list + */ + +.classindex dl.odd { + background: var(--odd-color); + border-radius: var(--border-radius-small); +} + +.classindex dl.even { + background-color: transparent; +} + +/* + Class Index Doxygen 1.8 +*/ + +table.classindex { + margin-left: 0; + margin-right: 0; + width: 100%; +} + +table.classindex table div.ah { + background-image: none; + background-color: initial; + border-color: var(--separator-color); + color: var(--page-foreground-color); + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-large); + padding: var(--spacing-small); +} + +div.qindex { + background-color: var(--odd-color); + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + padding: var(--spacing-small) 0; +} + +/* + Footer and nav-path + */ + +#nav-path { + width: 100%; +} + +#nav-path ul { + background-image: none; + background: var(--page-background-color); + border: none; + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + border-bottom: 0; + box-shadow: 0 0.75px 0 var(--separator-color); + font-size: var(--navigation-font-size); +} + +img.footer { + width: 60px; +} + +.navpath li.footer { + color: var(--page-secondary-foreground-color); +} + +address.footer { + color: var(--page-secondary-foreground-color); + margin-bottom: var(--spacing-large); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--primary-color) !important; +} + +.navpath li.navelem b { + color: var(--primary-dark-color); + font-weight: 500; +} + +li.navelem { + padding: 0; + margin-left: -8px; +} + +li.navelem:first-child { + margin-left: var(--spacing-large); +} + +li.navelem:first-child:before { + display: none; +} + +#nav-path li.navelem:after { + content: ''; + border: 5px solid var(--page-background-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(4.2); + z-index: 10; + margin-left: 6px; +} + +#nav-path li.navelem:before { + content: ''; + border: 5px solid var(--separator-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(3.2); + margin-right: var(--spacing-small); +} + +.navpath li.navelem a:hover { + color: var(--primary-color); +} + +/* + Scrollbars for Webkit +*/ + +#nav-tree::-webkit-scrollbar, +div.fragment::-webkit-scrollbar, +pre.fragment::-webkit-scrollbar, +div.memproto::-webkit-scrollbar, +.contents center::-webkit-scrollbar, +.contents .center::-webkit-scrollbar, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar, +div.contents .toc::-webkit-scrollbar { + background: transparent; + width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); +} + +#nav-tree::-webkit-scrollbar-thumb, +div.fragment::-webkit-scrollbar-thumb, +pre.fragment::-webkit-scrollbar-thumb, +div.memproto::-webkit-scrollbar-thumb, +.contents center::-webkit-scrollbar-thumb, +.contents .center::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb, +div.contents .toc::-webkit-scrollbar-thumb { + background-color: transparent; + border: var(--webkit-scrollbar-padding) solid transparent; + border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + background-clip: padding-box; +} + +#nav-tree:hover::-webkit-scrollbar-thumb, +div.fragment:hover::-webkit-scrollbar-thumb, +pre.fragment:hover::-webkit-scrollbar-thumb, +div.memproto:hover::-webkit-scrollbar-thumb, +.contents center:hover::-webkit-scrollbar-thumb, +.contents .center:hover::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb, +div.contents .toc:hover::-webkit-scrollbar-thumb { + background-color: var(--webkit-scrollbar-color); +} + +#nav-tree::-webkit-scrollbar-track, +div.fragment::-webkit-scrollbar-track, +pre.fragment::-webkit-scrollbar-track, +div.memproto::-webkit-scrollbar-track, +.contents center::-webkit-scrollbar-track, +.contents .center::-webkit-scrollbar-track, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track, +div.contents .toc::-webkit-scrollbar-track { + background: transparent; +} + +#nav-tree::-webkit-scrollbar-corner { + background-color: var(--side-nav-background); +} + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc { + overflow-x: auto; + overflow-x: overlay; +} + +#nav-tree { + overflow-x: auto; + overflow-y: auto; + overflow-y: overlay; +} + +/* + Scrollbars for Firefox +*/ + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc { + scrollbar-width: thin; +} + +/* + Optional Dark mode toggle button +*/ + +doxygen-awesome-dark-mode-toggle { + display: inline-block; + margin: 0 0 0 var(--spacing-small); + padding: 0; + width: var(--searchbar-height); + height: var(--searchbar-height); + background: none; + border: none; + border-radius: var(--searchbar-height); + vertical-align: middle; + text-align: center; + line-height: var(--searchbar-height); + font-size: 22px; + display: flex; + align-items: center; + justify-content: center; + user-select: none; + cursor: pointer; +} + +doxygen-awesome-dark-mode-toggle > svg { + transition: transform .1s ease-in-out; +} + +doxygen-awesome-dark-mode-toggle:active > svg { + transform: scale(.5); +} + +doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.03); +} + +html.dark-mode doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.18); +} + +/* + Optional fragment copy button +*/ +.doxygen-awesome-fragment-wrapper { + position: relative; +} + +doxygen-awesome-fragment-copy-button { + opacity: 0; + background: var(--fragment-background); + width: 28px; + height: 28px; + position: absolute; + right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + border: 1px solid var(--fragment-foreground); + cursor: pointer; + border-radius: var(--border-radius-small); + display: flex; + justify-content: center; + align-items: center; +} + +.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success { + opacity: .28; +} + +doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success { + opacity: 1 !important; +} + +doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg { + transform: scale(.91); +} + +doxygen-awesome-fragment-copy-button svg { + fill: var(--fragment-foreground); + width: 18px; + height: 18px; +} + +doxygen-awesome-fragment-copy-button.success svg { + fill: rgb(14, 168, 14); +} + +doxygen-awesome-fragment-copy-button.success { + border-color: rgb(14, 168, 14); +} + +@media screen and (max-width: 767px) { + .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button { + right: 0; + } +} + +/* + Optional paragraph link button +*/ + +a.anchorlink { + font-size: 90%; + margin-left: var(--spacing-small); + color: var(--page-foreground-color) !important; + text-decoration: none; + opacity: .15; + display: none; + transition: opacity .1s ease-in-out, color .1s ease-in-out; +} + +a.anchorlink svg { + fill: var(--page-foreground-color); +} + +h3 a.anchorlink svg, h4 a.anchorlink svg { + margin-bottom: -3px; + margin-top: -4px; +} + +a.anchorlink:hover { + opacity: .45; +} + +h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink { + display: inline-block; +} + + +#MSearchBox .left { + background: none !important; +} +#MSearchBox .right { + background: none !important; +} diff --git a/dev/dolibarr_changes.txt b/dev/dolibarr_changes.txt index 461db52f959..e12c237e28e 100644 --- a/dev/dolibarr_changes.txt +++ b/dev/dolibarr_changes.txt @@ -209,6 +209,11 @@ with with foreach ($value[1] as $k => $v) { +* Fix by replacing + if ($res[0] == PDF_TYPE_OBJECT) +with + if ($res && $res[0] == PDF_TYPE_OBJECT) + JSGANTT: diff --git a/dev/initdemo/mysqldump_dolibarr_16.0.0.sql b/dev/initdemo/mysqldump_dolibarr_17.0.0.sql similarity index 89% rename from dev/initdemo/mysqldump_dolibarr_16.0.0.sql rename to dev/initdemo/mysqldump_dolibarr_17.0.0.sql index 04bbc0288c3..1aa89804288 100644 --- a/dev/initdemo/mysqldump_dolibarr_16.0.0.sql +++ b/dev/initdemo/mysqldump_dolibarr_17.0.0.sql @@ -1,8 +1,8 @@ --- MariaDB dump 10.19 Distrib 10.6.7-MariaDB, for debian-linux-gnu (x86_64) +-- MariaDB dump 10.19 Distrib 10.6.11-MariaDB, for debian-linux-gnu (x86_64) -- --- Host: localhost Database: dolibarr_16 +-- Host: localhost Database: dolibarr_17 -- ------------------------------------------------------ --- Server version 10.6.7-MariaDB-2ubuntu1 +-- Server version 10.6.11-MariaDB-0ubuntu0.22.04.1 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; @@ -27,19 +27,19 @@ 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 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, + `fk_pcg_version` varchar(32) NOT NULL, + `pcg_type` varchar(20) NOT NULL, + `account_number` varchar(20) DEFAULT NULL, `account_parent` int(11) DEFAULT 0, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `labelshort` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `labelshort` varchar(255) DEFAULT NULL, `fk_accounting_category` int(11) DEFAULT 0, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `reconcilable` tinyint(4) NOT NULL DEFAULT 0, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_accounting_account` (`account_number`,`entity`,`fk_pcg_version`), KEY `idx_accountingaccount_fk_pcg_version` (`fk_pcg_version`), @@ -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 utf8mb3_unicode_ci NOT NULL, - `doc_ref` varchar(300) COLLATE utf8mb3_unicode_ci NOT NULL, + `doc_type` varchar(30) NOT NULL, + `doc_ref` varchar(300) NOT NULL, `fk_doc` int(11) NOT NULL, `fk_docdet` int(11) NOT NULL, - `thirdparty_code` varchar(32) COLLATE 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, + `thirdparty_code` varchar(32) DEFAULT NULL, + `numero_compte` varchar(20) DEFAULT NULL, + `label_compte` varchar(255) DEFAULT NULL, + `label_operation` varchar(255) DEFAULT NULL, `debit` double(24,8) DEFAULT NULL, `credit` double(24,8) DEFAULT NULL, `montant` double(24,8) DEFAULT NULL, - `sens` varchar(1) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `sens` varchar(1) DEFAULT NULL, `multicurrency_amount` double(24,8) DEFAULT NULL, - `multicurrency_code` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `lettering_code` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(255) DEFAULT NULL, + `lettering_code` varchar(255) DEFAULT NULL, `date_lettering` datetime DEFAULT NULL, `fk_user_author` int(11) NOT NULL, - `import_key` varchar(14) COLLATE 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, + `import_key` varchar(14) DEFAULT NULL, + `code_journal` varchar(32) DEFAULT NULL, + `journal_label` varchar(255) DEFAULT NULL, `piece_num` int(11) NOT NULL, `date_validated` datetime DEFAULT NULL, `date_export` datetime DEFAULT NULL, @@ -96,9 +96,9 @@ CREATE TABLE `llx_accounting_bookkeeping` ( `fk_user_modif` int(11) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `subledger_account` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `subledger_label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `subledger_account` varchar(32) DEFAULT NULL, + `subledger_label` varchar(255) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `date_lim_reglement` datetime DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -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 utf8mb3_unicode_ci NOT NULL, - `doc_ref` varchar(300) COLLATE utf8mb3_unicode_ci NOT NULL, + `doc_type` varchar(30) NOT NULL, + `doc_ref` varchar(300) NOT NULL, `fk_doc` int(11) NOT NULL, `fk_docdet` int(11) NOT NULL, - `thirdparty_code` varchar(32) COLLATE 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, + `thirdparty_code` varchar(32) DEFAULT NULL, + `subledger_account` varchar(32) DEFAULT NULL, + `subledger_label` varchar(255) DEFAULT NULL, + `numero_compte` varchar(32) DEFAULT NULL, + `label_compte` varchar(255) NOT NULL, + `label_operation` varchar(255) DEFAULT NULL, `debit` double(24,8) NOT NULL, `credit` double(24,8) NOT NULL, `montant` double(24,8) NOT NULL, - `sens` varchar(1) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `sens` varchar(1) DEFAULT NULL, `multicurrency_amount` double(24,8) DEFAULT NULL, - `multicurrency_code` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `lettering_code` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(255) DEFAULT NULL, + `lettering_code` varchar(255) DEFAULT NULL, `date_lettering` datetime DEFAULT NULL, `fk_user_author` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE 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, + `import_key` varchar(14) DEFAULT NULL, + `code_journal` varchar(32) NOT NULL, + `journal_label` varchar(255) DEFAULT NULL, `piece_num` int(11) NOT NULL, `date_validated` datetime DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `date_lim_reglement` datetime DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -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 utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) NOT NULL, `date_start` date DEFAULT NULL, `date_end` date DEFAULT NULL, `statut` tinyint(4) NOT NULL DEFAULT 0, @@ -243,8 +243,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(20) DEFAULT NULL, + `label` varchar(128) NOT NULL, `nature` smallint(6) NOT NULL DEFAULT 0, `active` smallint(6) DEFAULT 0, `entity` int(11) DEFAULT 1, @@ -272,8 +272,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `pcg_version` varchar(32) NOT NULL, + `label` varchar(128) NOT NULL, `active` smallint(6) DEFAULT 0, `fk_country` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -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 utf8mb3_unicode_ci NOT NULL, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(30) NOT NULL, + `ref_ext` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `datep` datetime DEFAULT NULL, `datep2` datetime DEFAULT NULL, `fk_action` int(11) DEFAULT NULL, - `code` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(50) DEFAULT NULL, + `label` varchar(255) NOT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_author` int(11) DEFAULT NULL, @@ -322,31 +322,32 @@ CREATE TABLE `llx_actioncomm` ( `priority` smallint(6) DEFAULT NULL, `fulldayevent` smallint(6) NOT NULL DEFAULT 0, `percent` smallint(6) NOT NULL DEFAULT 0, - `location` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `location` varchar(128) DEFAULT NULL, `durationp` double DEFAULT NULL, `durationa` double DEFAULT NULL, - `note` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` mediumtext DEFAULT NULL, `fk_element` int(11) 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, + `elementtype` varchar(255) DEFAULT NULL, + `email_msgid` varchar(256) DEFAULT NULL, + `email_subject` varchar(256) DEFAULT NULL, + `email_from` varchar(256) DEFAULT NULL, + `email_sender` varchar(256) DEFAULT NULL, + `email_to` varchar(256) DEFAULT NULL, + `email_tocc` varchar(256) DEFAULT NULL, + `email_tobcc` varchar(256) DEFAULT NULL, + `errors_to` varchar(256) DEFAULT NULL, + `recurid` varchar(128) DEFAULT NULL, + `recurrule` varchar(128) DEFAULT NULL, `recurdateend` datetime DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `calling_duration` int(11) DEFAULT NULL, - `visibility` varchar(12) COLLATE utf8mb3_unicode_ci DEFAULT 'default', - `reply_to` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `visibility` varchar(12) DEFAULT 'default', + `reply_to` varchar(255) DEFAULT NULL, `num_vote` int(11) DEFAULT NULL, `event_paid` smallint(6) NOT NULL DEFAULT 0, `status` smallint(6) NOT NULL DEFAULT 0, + `ip` varchar(250) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_actioncomm_ref` (`ref`,`entity`), KEY `idx_actioncomm_fk_soc` (`fk_soc`), @@ -358,7 +359,8 @@ CREATE TABLE `llx_actioncomm` ( KEY `idx_actioncomm_datep` (`datep`), KEY `idx_actioncomm_datep2` (`datep2`), KEY `idx_actioncomm_recurid` (`recurid`), - KEY `idx_actioncomm_ref_ext` (`ref_ext`) + KEY `idx_actioncomm_ref_ext` (`ref_ext`), + KEY `idx_actioncomm_percent` (`percent`) ) ENGINE=InnoDB AUTO_INCREMENT=608 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -368,7 +370,7 @@ CREATE TABLE `llx_actioncomm` ( LOCK TABLES `llx_actioncomm` WRITE; /*!40000 ALTER TABLE `llx_actioncomm` DISABLE KEYS */; -INSERT INTO `llx_actioncomm` VALUES (1,'1',NULL,1,'2012-07-08 14:21:44','2012-07-08 14:21:44',50,NULL,'Company AAA and Co added into Dolibarr','2012-07-08 14:21:44','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company AAA and Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(2,'2',NULL,1,'2012-07-08 14:23:48','2012-07-08 14:23:48',50,NULL,'Company Belin SARL added into Dolibarr','2012-07-08 14:23:48','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Belin SARL added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(3,'3',NULL,1,'2012-07-08 22:42:12','2012-07-08 22:42:12',50,NULL,'Company Spanish Comp added into Dolibarr','2012-07-08 22:42:12','2021-04-15 10:22:55',1,NULL,NULL,3,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Spanish Comp added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(4,'4',NULL,1,'2012-07-08 22:48:18','2012-07-08 22:48:18',50,NULL,'Company Prospector Vaalen added into Dolibarr','2012-07-08 22:48:18','2021-04-15 10:22:55',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Prospector Vaalen added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(5,'5',NULL,1,'2012-07-08 23:22:57','2012-07-08 23:22:57',50,NULL,'Company NoCountry Co added into Dolibarr','2012-07-08 23:22:57','2021-04-15 10:22:55',1,NULL,NULL,5,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company NoCountry Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(6,'6',NULL,1,'2012-07-09 00:15:09','2012-07-09 00:15:09',50,NULL,'Company Swiss customer added into Dolibarr','2012-07-09 00:15:09','2021-04-15 10:22:55',1,NULL,NULL,6,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Swiss customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(7,'7',NULL,1,'2012-07-09 01:24:26','2012-07-09 01:24:26',50,NULL,'Company Generic customer added into Dolibarr','2012-07-09 01:24:26','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Generic customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(8,'8',NULL,1,'2012-07-10 14:54:27','2012-07-10 14:54:27',50,NULL,'Société Client salon ajoutée dans Dolibarr','2012-07-10 14:54:27','2021-04-15 10:22:55',1,NULL,NULL,8,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Client salon ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(9,'9',NULL,1,'2012-07-10 14:54:44','2012-07-10 14:54:44',50,NULL,'Société Client salon invidivdu ajoutée dans Doliba','2012-07-10 14:54:44','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Client salon invidivdu ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(10,'10',NULL,1,'2012-07-10 14:56:10','2012-07-10 14:56:10',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2012-07-10 14:56:10','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(11,'11',NULL,1,'2012-07-10 14:58:53','2012-07-10 14:58:53',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2012-07-10 14:58:53','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(12,'12',NULL,1,'2012-07-10 15:00:55','2012-07-10 15:00:55',50,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr','2012-07-10 15:00:55','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(13,'13',NULL,1,'2012-07-10 15:13:08','2012-07-10 15:13:08',50,NULL,'Société Smith Vick ajoutée dans Dolibarr','2012-07-10 15:13:08','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Smith Vick ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(14,'14',NULL,1,'2012-07-10 15:21:00','2012-07-10 16:21:00',5,NULL,'RDV avec mon chef','2012-07-10 15:21:48','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,'',3600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(15,'15',NULL,1,'2012-07-10 18:18:16','2012-07-10 18:18:16',50,NULL,'Contrat CONTRAT1 validé dans Dolibarr','2012-07-10 18:18:16','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Contrat CONTRAT1 validé dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(16,'16',NULL,1,'2012-07-10 18:35:57','2012-07-10 18:35:57',50,NULL,'Société Mon client ajoutée dans Dolibarr','2012-07-10 18:35:57','2021-04-15 10:22:55',1,NULL,NULL,11,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Mon client ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(17,'17',NULL,1,'2012-07-11 16:18:08','2012-07-11 16:18:08',50,NULL,'Société Dupont Alain ajoutée dans Dolibarr','2012-07-11 16:18:08','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Dupont Alain ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(18,'18',NULL,1,'2012-07-11 17:11:00','2012-07-11 17:17:00',5,NULL,'Rendez-vous','2012-07-11 17:11:22','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,'gfgdfgdf',360,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(19,'19',NULL,1,'2012-07-11 17:13:20','2012-07-11 17:13:20',50,NULL,'Société Vendeur de chips ajoutée dans Dolibarr','2012-07-11 17:13:20','2021-04-15 10:22:55',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Vendeur de chips ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(20,'20',NULL,1,'2012-07-11 17:15:42','2012-07-11 17:15:42',50,NULL,'Commande CF1007-0001 validée','2012-07-11 17:15:42','2021-04-15 10:22:55',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Commande CF1007-0001 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(21,'21',NULL,1,'2012-07-11 18:47:33','2012-07-11 18:47:33',50,NULL,'Commande CF1007-0002 validée','2012-07-11 18:47:33','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Commande CF1007-0002 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(22,'22',NULL,1,'2012-07-18 11:36:18','2012-07-18 11:36:18',50,NULL,'Proposition PR1007-0003 validée','2012-07-18 11:36:18','2021-04-15 10:22:55',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Proposition PR1007-0003 validée\nAuteur: admin',3,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(23,'23',NULL,1,'2013-07-18 20:49:58','2013-07-18 20:49:58',50,NULL,'Invoice FA1007-0002 validated in Dolibarr','2013-07-18 20:49:58','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1007-0002 validated in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(24,'24',NULL,1,'2013-07-28 01:37:00',NULL,1,NULL,'Phone call','2013-07-28 01:37:48','2021-04-15 10:22:55',1,NULL,NULL,NULL,2,0,1,NULL,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(25,'25',NULL,1,'2013-08-01 02:31:24','2013-08-01 02:31:24',50,NULL,'Company mmm added into Dolibarr','2013-08-01 02:31:24','2021-04-15 10:22:55',1,NULL,NULL,15,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company mmm added into Dolibarr\nAuthor: admin',15,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(26,'26',NULL,1,'2013-08-01 02:31:43','2013-08-01 02:31:43',50,NULL,'Company ppp added into Dolibarr','2013-08-01 02:31:43','2021-04-15 10:22:55',1,NULL,NULL,16,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company ppp added into Dolibarr\nAuthor: admin',16,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(27,'27',NULL,1,'2013-08-01 02:41:26','2013-08-01 02:41:26',50,NULL,'Company aaa added into Dolibarr','2013-08-01 02:41:26','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company aaa added into Dolibarr\nAuthor: admin',17,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(28,'28',NULL,1,'2013-08-01 03:34:11','2013-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2013-08-01 03:34:11','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0003 validated in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(29,'29',NULL,1,'2013-08-01 03:34:11','2013-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2013-08-01 03:34:11','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0003 changed to paid in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(30,'30',NULL,1,'2013-08-06 20:33:54','2013-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2013-08-06 20:33:54','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0004 validated in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(31,'31',NULL,1,'2013-08-06 20:33:54','2013-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2013-08-06 20:33:54','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0004 changed to paid in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(38,'38',NULL,1,'2013-08-08 02:41:55','2013-08-08 02:41:55',50,NULL,'Invoice FA1108-0005 validated in Dolibarr','2013-08-08 02:41:55','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0005 validated in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(40,'40',NULL,1,'2013-08-08 02:53:40','2013-08-08 02:53:40',50,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr','2013-08-08 02:53:40','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(41,'41',NULL,1,'2013-08-08 02:54:05','2013-08-08 02:54:05',50,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr','2013-08-08 02:54:05','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(42,'42',NULL,1,'2013-08-08 02:55:04','2013-08-08 02:55:04',50,NULL,'Invoice FA1107-0006 validated in Dolibarr','2013-08-08 02:55:04','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1107-0006 validated in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(43,'43',NULL,1,'2013-08-08 02:55:26','2013-08-08 02:55:26',50,NULL,'Invoice FA1108-0007 validated in Dolibarr','2013-08-08 02:55:26','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0007 validated in Dolibarr\nAuthor: admin',9,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(44,'44',NULL,1,'2013-08-08 02:55:58','2013-08-08 02:55:58',50,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr','2013-08-08 02:55:58','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(45,'45',NULL,1,'2013-08-08 03:04:22','2013-08-08 03:04:22',50,NULL,'Order CO1108-0001 validated','2013-08-08 03:04:22','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CO1108-0001 validated\nAuthor: admin',5,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(46,'46',NULL,1,'2013-08-08 13:59:09','2013-08-08 13:59:09',50,NULL,'Order CO1107-0002 validated','2013-08-08 13:59:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CO1107-0002 validated\nAuthor: admin',1,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(47,'47',NULL,1,'2013-08-08 14:24:18','2013-08-08 14:24:18',50,NULL,'Proposal PR1007-0001 validated','2013-08-08 14:24:18','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposal PR1007-0001 validated\nAuthor: admin',1,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(48,'48',NULL,1,'2013-08-08 14:24:24','2013-08-08 14:24:24',50,NULL,'Proposal PR1108-0004 validated','2013-08-08 14:24:24','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposal PR1108-0004 validated\nAuthor: admin',4,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(49,'49',NULL,1,'2013-08-08 15:04:37','2013-08-08 15:04:37',50,NULL,'Order CF1108-0003 validated','2013-08-08 15:04:37','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CF1108-0003 validated\nAuthor: admin',6,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(50,'50',NULL,1,'2014-12-08 17:56:47','2014-12-08 17:56:47',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2014-12-08 17:56:47','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(51,'51',NULL,1,'2014-12-08 17:57:11','2014-12-08 17:57:11',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2014-12-08 17:57:11','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(52,'52',NULL,1,'2014-12-08 17:58:27','2014-12-08 17:58:27',40,NULL,'Facture FA1212-0008 validée dans Dolibarr','2014-12-08 17:58:27','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0008 validée dans Dolibarr\nAuteur: admin',11,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(53,'53',NULL,1,'2014-12-08 18:20:49','2014-12-08 18:20:49',40,NULL,'Facture AV1212-0002 validée dans Dolibarr','2014-12-08 18:20:49','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0002 validée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(54,'54',NULL,1,'2014-12-09 18:35:07','2014-12-09 18:35:07',40,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr','2014-12-09 18:35:07','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(55,'55',NULL,1,'2014-12-09 20:14:42','2014-12-09 20:14:42',40,NULL,'Société doe john ajoutée dans Dolibarr','2014-12-09 20:14:42','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Société doe john ajoutée dans Dolibarr\nAuteur: admin',18,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(56,'56',NULL,1,'2014-12-12 18:54:19','2014-12-12 18:54:19',40,NULL,'Facture FA1212-0009 validée dans Dolibarr','2014-12-12 18:54:19','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0009 validée dans Dolibarr\nAuteur: admin',55,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(121,'121',NULL,1,'2014-12-06 10:00:00',NULL,50,NULL,'aaab','2014-12-21 17:48:08','2021-04-15 10:22:55',3,1,NULL,NULL,NULL,0,3,NULL,NULL,1,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(122,'122',NULL,1,'2014-12-21 18:09:52','2014-12-21 18:09:52',40,NULL,'Facture client FA1007-0001 envoyée par EMail','2014-12-21 18:09:52','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Mail envoyé par Firstname SuperAdminName à laurent@mycompany.fr.\nSujet du mail: Envoi facture FA1007-0001\nCorps du mail:\nVeuillez trouver ci-joint la facture FA1007-0001\r\n\r\nVous pouvez cliquer sur le lien sécurisé ci-dessous pour effectuer votre paiement via Paypal\r\n\r\nhttp://localhost/dolibarrnew/public/paypal/newpayment.php?source=invoice&ref=FA1007-0001&securekey=50c82fab36bb3b6aa83e2a50691803b2\r\n\r\nCordialement',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(123,'123',NULL,1,'2015-01-06 13:13:57','2015-01-06 13:13:57',40,NULL,'Facture 16 validée dans Dolibarr','2015-01-06 13:13:57','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture 16 validée dans Dolibarr\nAuteur: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(124,'124',NULL,1,'2015-01-12 12:23:05','2015-01-12 12:23:05',40,NULL,'Patient aaa ajouté','2015-01-12 12:23:05','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient aaa ajouté\nAuteur: admin',19,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(125,'125',NULL,1,'2015-01-12 12:52:20','2015-01-12 12:52:20',40,NULL,'Patient pppoo ajouté','2015-01-12 12:52:20','2021-04-15 10:22:55',1,NULL,NULL,20,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient pppoo ajouté\nAuteur: admin',20,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(127,'127',NULL,1,'2015-01-19 18:22:48','2015-01-19 18:22:48',40,NULL,'Facture FS1301-0001 validée dans Dolibarr','2015-01-19 18:22:48','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0001 validée dans Dolibarr\nAuteur: admin',148,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(128,'128',NULL,1,'2015-01-19 18:31:10','2015-01-19 18:31:10',40,NULL,'Facture FA6801-0010 validée dans Dolibarr','2015-01-19 18:31:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA6801-0010 validée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(129,'129',NULL,1,'2015-01-19 18:31:10','2015-01-19 18:31:10',40,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr','2015-01-19 18:31:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(130,'130',NULL,1,'2015-01-19 18:31:58','2015-01-19 18:31:58',40,NULL,'Facture FS1301-0002 validée dans Dolibarr','2015-01-19 18:31:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0002 validée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(131,'131',NULL,1,'2015-01-19 18:31:58','2015-01-19 18:31:58',40,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr','2015-01-19 18:31:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(132,'132',NULL,1,'2015-01-23 15:07:54','2015-01-23 15:07:54',50,NULL,'Consultation 24 saisie (aaa)','2015-01-23 15:07:54','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Consultation 24 saisie (aaa)\nAuteur: admin',24,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(133,'133',NULL,1,'2015-01-23 16:56:58','2015-01-23 16:56:58',40,NULL,'Patient pa ajouté','2015-01-23 16:56:58','2021-04-15 10:22:55',1,NULL,NULL,21,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient pa ajouté\nAuteur: admin',21,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(134,'134',NULL,1,'2015-01-23 17:34:00',NULL,50,NULL,'bbcv','2015-01-23 17:35:21','2021-04-15 10:22:55',1,NULL,1,2,NULL,0,1,NULL,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(135,'135',NULL,1,'2015-02-12 15:54:00','2015-02-12 15:54:00',40,NULL,'Facture FA1212-0011 validée dans Dolibarr','2015-02-12 15:54:37','2021-04-15 10:22:55',1,1,NULL,7,NULL,0,1,NULL,1,0,0,50,NULL,NULL,NULL,'Facture FA1212-0011 validée dans Dolibarr
\r\nAuteur: admin',13,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(136,'136',NULL,1,'2015-02-12 17:06:51','2015-02-12 17:06:51',40,NULL,'Commande CO1107-0003 validée','2015-02-12 17:06:51','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1107-0003 validée\nAuteur: admin',2,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(137,'137',NULL,1,'2015-02-17 16:22:10','2015-02-17 16:22:10',40,NULL,'Proposition PR1302-0009 validée','2015-02-17 16:22:10','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition PR1302-0009 validée\nAuteur: admin',9,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(138,'138',NULL,1,'2015-02-17 16:27:00','2015-02-17 16:27:00',40,NULL,'Facture FA1302-0012 validée dans Dolibarr','2015-02-17 16:27:00','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1302-0012 validée dans Dolibarr\nAuteur: admin',152,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(139,'139',NULL,1,'2015-02-17 16:27:29','2015-02-17 16:27:29',40,NULL,'Proposition PR1302-0010 validée','2015-02-17 16:27:29','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition PR1302-0010 validée\nAuteur: admin',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(140,'140',NULL,1,'2015-02-17 18:27:56','2015-02-17 18:27:56',40,NULL,'Commande CO1107-0004 validée','2015-02-17 18:27:56','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1107-0004 validée\nAuteur: admin',3,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(141,'141',NULL,1,'2015-02-17 18:38:14','2015-02-17 18:38:14',40,NULL,'Commande CO1302-0005 validée','2015-02-17 18:38:14','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1302-0005 validée\nAuteur: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(142,'142',NULL,1,'2015-02-26 22:57:50','2015-02-26 22:57:50',40,NULL,'Company pppp added into Dolibarr','2015-02-26 22:57:50','2021-04-15 10:22:55',1,NULL,NULL,22,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company pppp added into Dolibarr\nAuthor: admin',22,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(143,'143',NULL,1,'2015-02-26 22:58:13','2015-02-26 22:58:13',40,NULL,'Company ttttt added into Dolibarr','2015-02-26 22:58:13','2021-04-15 10:22:55',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company ttttt added into Dolibarr\nAuthor: admin',23,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(144,'144',NULL,1,'2015-02-27 10:00:00','2015-02-27 19:20:00',5,NULL,'Rendez-vous','2015-02-27 19:20:53','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,1,0,0,-1,'',33600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(145,'145',NULL,1,'2015-02-27 19:28:00',NULL,2,NULL,'fdsfsd','2015-02-27 19:28:48','2021-04-15 10:22:55',1,1,NULL,NULL,NULL,0,1,NULL,1,0,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(146,'146',NULL,1,'2015-03-06 10:05:07','2015-03-06 10:05:07',40,NULL,'Contrat (PROV3) validé dans Dolibarr','2015-03-06 10:05:07','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Contrat (PROV3) validé dans Dolibarr\nAuteur: admin',3,'contract',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(147,'147',NULL,1,'2015-03-06 16:43:37','2015-03-06 16:43:37',40,NULL,'Facture FA1307-0013 validée dans Dolibarr','2015-03-06 16:43:37','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1307-0013 validée dans Dolibarr\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(148,'148',NULL,1,'2015-03-06 16:44:12','2015-03-06 16:44:12',40,NULL,'Facture FA1407-0014 validée dans Dolibarr','2015-03-06 16:44:12','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1407-0014 validée dans Dolibarr\nAuteur: admin',159,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(149,'149',NULL,1,'2015-03-06 16:47:48','2015-03-06 16:47:48',40,NULL,'Facture FA1507-0015 validée dans Dolibarr','2015-03-06 16:47:48','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1507-0015 validée dans Dolibarr\nAuteur: admin',160,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(150,'150',NULL,1,'2015-03-06 16:48:16','2015-03-06 16:48:16',40,NULL,'Facture FA1607-0016 validée dans Dolibarr','2015-03-06 16:48:16','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1607-0016 validée dans Dolibarr\nAuteur: admin',161,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(151,'151',NULL,1,'2015-03-06 17:13:59','2015-03-06 17:13:59',40,NULL,'Société smith smith ajoutée dans Dolibarr','2015-03-06 17:13:59','2021-04-15 10:22:55',1,NULL,NULL,24,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Société smith smith ajoutée dans Dolibarr\nAuteur: admin',24,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(152,'152',NULL,1,'2015-03-08 10:02:22','2015-03-08 10:02:22',40,NULL,'Proposition (PROV12) validée dans Dolibarr','2015-03-08 10:02:22','2021-04-15 10:22:55',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition (PROV12) validée dans Dolibarr\nAuteur: admin',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(203,'203',NULL,1,'2015-03-09 19:39:27','2015-03-09 19:39:27',40,'AC_ORDER_SUPPLIER_VALIDATE','Commande CF1303-0004 validée','2015-03-09 19:39:27','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CF1303-0004 validée\nAuteur: admin',13,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(204,'204',NULL,1,'2015-03-10 15:47:37','2015-03-10 15:47:37',40,'AC_COMPANY_CREATE','Patient créé','2015-03-10 15:47:37','2021-04-15 10:22:55',1,NULL,NULL,25,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient créé\nAuteur: admin',25,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(205,'205',NULL,1,'2015-03-10 15:57:32','2015-03-10 15:57:32',40,'AC_COMPANY_CREATE','Tiers créé','2015-03-10 15:57:32','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Tiers créé\nAuteur: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(206,'206',NULL,1,'2015-03-10 15:58:28','2015-03-10 15:58:28',40,'AC_BILL_VALIDATE','Facture FA1303-0017 validée','2015-03-10 15:58:28','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0017 validée\nAuteur: admin',208,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(207,'207',NULL,1,'2015-03-19 09:38:10','2015-03-19 09:38:10',40,'AC_BILL_VALIDATE','Facture FA1303-0018 validée','2015-03-19 09:38:10','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0018 validée\nAuteur: admin',209,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(208,'208',NULL,1,'2015-03-20 14:30:11','2015-03-20 14:30:11',40,'AC_BILL_VALIDATE','Facture FA1107-0019 validée','2015-03-20 14:30:11','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1107-0019 validée\nAuteur: admin',210,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(209,'209',NULL,1,'2015-03-22 09:40:25','2015-03-22 09:40:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2015-03-22 09:40:25','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(210,'210',NULL,1,'2015-03-23 17:16:25','2015-03-23 17:16:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2015-03-23 17:16:25','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(211,'211',NULL,1,'2015-03-23 18:08:27','2015-03-23 18:08:27',40,'AC_BILL_VALIDATE','Facture FA1307-0013 validée','2015-03-23 18:08:27','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1307-0013 validée\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(212,'212',NULL,1,'2015-03-24 15:54:00','2015-03-24 15:54:00',40,'AC_BILL_VALIDATE','Facture FA1212-0021 validée','2015-03-24 15:54:00','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0021 validée\nAuteur: admin',32,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(213,'213',NULL,1,'2015-11-07 01:02:39','2015-11-07 01:02:39',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:02:39','2021-04-15 10:22:55',1,NULL,NULL,27,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',27,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(214,'214',NULL,1,'2015-11-07 01:05:22','2015-11-07 01:05:22',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:05:22','2021-04-15 10:22:55',1,NULL,NULL,28,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',28,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(215,'215',NULL,1,'2015-11-07 01:07:07','2015-11-07 01:07:07',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:07:07','2021-04-15 10:22:55',1,NULL,NULL,29,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',29,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(216,'216',NULL,1,'2015-11-07 01:07:58','2015-11-07 01:07:58',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:07:58','2021-04-15 10:22:55',1,NULL,NULL,30,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',30,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(217,'217',NULL,1,'2015-11-07 01:10:09','2015-11-07 01:10:09',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:10:09','2021-04-15 10:22:55',1,NULL,NULL,31,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',31,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(218,'218',NULL,1,'2015-11-07 01:15:57','2015-11-07 01:15:57',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:15:57','2021-04-15 10:22:55',1,NULL,NULL,32,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',32,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(219,'219',NULL,1,'2015-11-07 01:16:51','2015-11-07 01:16:51',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:16:51','2021-04-15 10:22:55',1,NULL,NULL,33,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',33,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(220,'220',NULL,1,'2016-03-02 17:24:04','2016-03-02 17:24:04',40,'AC_BILL_VALIDATE','Invoice FA1302-0022 validated','2016-03-02 17:24:04','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1302-0022 validated\nAuthor: admin',157,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(221,'221',NULL,1,'2016-03-02 17:24:28','2016-03-02 17:24:28',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2016-03-02 17:24:28','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(222,'222',NULL,1,'2016-03-05 10:00:00','2016-03-05 10:00:00',5,NULL,'RDV John','2016-03-02 19:54:48','2021-04-15 10:22:55',1,1,NULL,NULL,NULL,0,1,0,NULL,0,0,-1,NULL,NULL,NULL,'gfdgdfgdf',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(223,'223',NULL,1,'2016-03-13 10:00:00','2016-03-17 00:00:00',50,NULL,'Congress','2016-03-02 19:55:11','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,-1,'',309600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(224,'224',NULL,1,'2016-03-14 10:00:00',NULL,1,NULL,'Call john','2016-03-02 19:55:56','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,0,'',NULL,NULL,'tttt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(225,'225',NULL,1,'2016-03-02 20:11:31','2016-03-02 20:11:31',40,'AC_BILL_UNVALIDATE','Invoice FA1303-0020 go back to draft status','2016-03-02 20:11:31','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 go back to draft status\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(226,'226',NULL,1,'2016-03-02 20:13:39','2016-03-02 20:13:39',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2016-03-02 20:13:39','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(227,'227',NULL,1,'2016-03-03 19:20:10','2016-03-03 19:20:10',40,'AC_BILL_VALIDATE','Invoice FA1212-0023 validated','2016-03-03 19:20:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1212-0023 validated\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(228,'228',NULL,1,'2016-03-03 19:20:25','2016-03-03 19:20:25',40,'AC_BILL_CANCEL','Invoice FA1212-0023 canceled in Dolibarr','2016-03-03 19:20:25','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1212-0023 canceled in Dolibarr\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(229,'229',NULL,1,'2016-03-03 19:20:56','2016-03-03 19:20:56',40,'AC_BILL_VALIDATE','Invoice AV1403-0003 validated','2016-03-03 19:20:56','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1403-0003 validated\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(230,'230',NULL,1,'2016-03-03 19:21:29','2016-03-03 19:21:29',40,'AC_BILL_UNVALIDATE','Invoice AV1403-0003 go back to draft status','2016-03-03 19:21:29','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1403-0003 go back to draft status\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(231,'231',NULL,1,'2016-03-03 19:22:16','2016-03-03 19:22:16',40,'AC_BILL_VALIDATE','Invoice AV1303-0003 validated','2016-03-03 19:22:16','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1303-0003 validated\nAuthor: admin',213,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(232,'232',NULL,1,'2018-01-22 18:54:39','2018-01-22 18:54:39',40,'AC_OTH_AUTO','Invoice 16 validated','2018-01-22 18:54:39','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(233,'233',NULL,1,'2018-01-22 18:54:46','2018-01-22 18:54:46',40,'AC_OTH_AUTO','Invoice 16 validated','2018-01-22 18:54:46','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(234,'234',NULL,1,'2018-07-05 10:00:00','2018-07-05 11:19:00',5,'AC_RDV','Meeting with my boss','2018-07-31 18:19:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',4740,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(235,'235',NULL,1,'2018-07-13 00:00:00','2018-07-14 23:59:59',50,'AC_OTH','Trip at Las Vegas','2018-07-31 18:20:36','2021-04-15 10:22:55',12,NULL,4,NULL,2,0,12,1,NULL,0,1,-1,'',172799,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(236,'236',NULL,1,'2018-07-29 10:00:00',NULL,4,'AC_EMAIL','Remind to send an email','2018-07-31 18:21:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,4,0,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(237,'237',NULL,1,'2018-07-01 10:00:00',NULL,1,'AC_TEL','Phone call with Mr Vaalen','2018-07-31 18:22:04','2021-04-15 10:22:55',12,NULL,6,4,NULL,0,13,0,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(238,'238',NULL,1,'2018-08-02 10:00:00','2018-08-02 12:00:00',5,'AC_RDV','Meeting on radium','2018-08-01 01:15:50','2021-04-15 10:22:55',12,NULL,8,10,10,0,12,1,NULL,0,0,-1,'',7200,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(239,'239',NULL,1,'2017-01-29 21:49:33','2017-01-29 21:49:33',40,'AC_OTH_AUTO','Proposal PR1302-0007 validated','2017-01-29 21:49:33','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1302-0007 validated\nAuthor: admin',7,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(240,'240',NULL,1,'2017-01-31 20:52:00',NULL,1,'AC_TEL','Call the boss','2017-01-31 20:52:10','2021-04-15 10:22:55',12,12,6,NULL,NULL,0,12,1,NULL,0,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(242,'242',NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 validated','2017-02-01 18:52:04','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CF1007-0001 validated\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(243,'243',NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 approved','2017-02-01 18:52:04','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CF1007-0001 approved\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(245,'245',NULL,1,'2017-02-01 18:52:32','2017-02-01 18:52:32',40,'AC_OTH_AUTO','Supplier order CF1007-0001 submited','2017-02-01 18:52:32','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Supplier order CF1007-0001 submited\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(249,'249',NULL,1,'2017-02-01 18:54:01','2017-02-01 18:54:01',40,'AC_OTH_AUTO','Supplier order CF1007-0001 received','2017-02-01 18:54:01','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Supplier order CF1007-0001 received \nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(250,'250',NULL,1,'2017-02-01 18:54:42','2017-02-01 18:54:42',40,'AC_OTH_AUTO','Email sent by MyBigCompany To mycustomer@example.com','2017-02-01 18:54:42','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Sender: MyBigCompany <myemail@mybigcompany.com>
\nReceiver(s): mycustomer@example.com
\nEMail topic: Submission of order CF1007-0001
\nEmail body:
\nYou will find here our order CF1007-0001
\r\n
\r\nSincerely
\n
\nAttached files and documents: CF1007-0001.pdf',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(251,'251',NULL,1,'2017-02-01 19:02:21','2017-02-01 19:02:21',40,'AC_OTH_AUTO','Invoice SI1702-0001 validated','2017-02-01 19:02:21','2021-04-15 10:22:55',12,NULL,5,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice SI1702-0001 validated\nAuthor: admin',20,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(252,'252',NULL,1,'2017-02-12 23:17:04','2017-02-12 23:17:04',40,'AC_OTH_AUTO','Patient créé','2017-02-12 23:17:04','2021-04-15 10:22:55',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Patient créé\nAuthor: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(253,'253',NULL,1,'2017-02-12 23:18:33','2017-02-12 23:18:33',40,'AC_OTH_AUTO','Consultation 2 recorded (aaa)','2017-02-12 23:18:33','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Consultation 2 recorded (aaa)\nAuthor: admin',2,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(254,'254',NULL,1,'2017-02-15 23:28:41','2017-02-15 23:28:41',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:28:41','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(255,'255',NULL,1,'2017-02-15 23:28:56','2017-02-15 23:28:56',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:28:56','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',8,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(256,'256',NULL,1,'2017-02-15 23:34:33','2017-02-15 23:34:33',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:34:33','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',9,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(257,'257',NULL,1,'2017-02-15 23:35:03','2017-02-15 23:35:03',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-15 23:35:03','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',10,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(263,'263',NULL,1,'2017-02-15 23:50:34','2017-02-15 23:50:34',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:50:34','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',17,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(264,'264',NULL,1,'2017-02-15 23:51:23','2017-02-15 23:51:23',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:51:23','2021-04-15 10:22:55',12,NULL,NULL,7,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',18,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(265,'265',NULL,1,'2017-02-15 23:54:51','2017-02-15 23:54:51',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:54:51','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',19,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(266,'266',NULL,1,'2017-02-15 23:55:52','2017-02-15 23:55:52',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:55:52','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',20,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(267,'267',NULL,1,'2017-02-16 00:03:44','2017-02-16 00:03:44',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-16 00:03:44','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',29,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(268,'268',NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0009 validated','2017-02-16 00:05:01','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0009 validated\nAuthor: admin',34,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(269,'269',NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0010 validated','2017-02-16 00:05:01','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0010 validated\nAuthor: admin',38,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(270,'270',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0011 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0011 validated\nAuthor: admin',40,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(271,'271',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0012 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0012 validated\nAuthor: admin',43,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(272,'272',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0013 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0013 validated\nAuthor: admin',47,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(273,'273',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0014 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0014 validated\nAuthor: admin',48,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(274,'274',NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0015 validated','2017-02-16 00:05:26','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0015 validated\nAuthor: admin',50,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(275,'275',NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0016 validated','2017-02-16 00:05:26','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0016 validated\nAuthor: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(277,'277',NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0018 validated','2017-02-16 00:05:35','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0018 validated\nAuthor: admin',62,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(278,'278',NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0019 validated','2017-02-16 00:05:35','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0019 validated\nAuthor: admin',68,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(279,'279',NULL,1,'2017-02-16 00:05:36','2017-02-16 00:05:36',40,'AC_OTH_AUTO','Order CO7001-0020 validated','2017-02-16 00:05:36','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0020 validated\nAuthor: admin',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(281,'281',NULL,1,'2017-02-16 00:05:37','2017-02-16 00:05:37',40,'AC_OTH_AUTO','Order CO7001-0022 validated','2017-02-16 00:05:37','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0022 validated\nAuthor: admin',78,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(282,'282',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0023 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0023 validated\nAuthor: admin',81,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(283,'283',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0024 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0024 validated\nAuthor: admin',83,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(284,'284',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0025 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,2,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0025 validated\nAuthor: admin',84,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(285,'285',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0026 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0026 validated\nAuthor: admin',85,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(286,'286',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0027 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0027 validated\nAuthor: admin',88,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(287,'287',NULL,1,'2017-02-16 03:05:56','2017-02-16 03:05:56',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Livrée','2017-02-16 03:05:56','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0016 classée Livrée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(288,'288',NULL,1,'2017-02-16 03:06:01','2017-02-16 03:06:01',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Facturée','2017-02-16 03:06:01','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0016 classée Facturée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(294,'294',NULL,1,'2017-02-16 03:53:04','2017-02-16 03:53:04',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 03:53:04','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(295,'295',NULL,1,'2017-02-16 03:58:08','2017-02-16 03:58:08',40,'AC_OTH_AUTO','Expédition SH1702-0002 validée','2017-02-16 03:58:08','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Expédition SH1702-0002 validée\nAuteur: admin',3,'shipping',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(296,'296',NULL,1,'2017-02-16 04:12:29','2017-02-16 04:12:29',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:12:29','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(297,'297',NULL,1,'2017-02-16 04:14:20','2017-02-16 04:14:20',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:14:20','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(298,'298',NULL,1,'2017-02-16 01:44:58','2017-02-16 01:44:58',40,'AC_OTH_AUTO','Proposal PR1702-0009 validated','2017-02-16 01:44:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0009 validated\nAuthor: aeinstein',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(299,'299',NULL,1,'2017-02-16 01:45:44','2017-02-16 01:45:44',40,'AC_OTH_AUTO','Proposal PR1702-0010 validated','2017-02-16 01:45:44','2021-04-15 10:22:55',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0010 validated\nAuthor: demo',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(300,'300',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0011 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0011 validated\nAuthor: aeinstein',13,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(301,'301',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0012 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,3,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0012 validated\nAuthor: demo',14,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(302,'302',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0013 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0013 validated\nAuthor: demo',15,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(303,'303',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0014 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0014 validated\nAuthor: demo',16,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(304,'304',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0015 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0015 validated\nAuthor: aeinstein',17,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(305,'305',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0016 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0016 validated\nAuthor: demo',18,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(306,'306',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0017 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0017 validated\nAuthor: demo',19,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(307,'307',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0018 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0018 validated\nAuthor: aeinstein',20,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(308,'308',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0019 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0019 validated\nAuthor: aeinstein',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(309,'309',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0020 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0020 validated\nAuthor: aeinstein',22,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(310,'310',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0021 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0021 validated\nAuthor: demo',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(311,'311',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0022 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0022 validated\nAuthor: demo',24,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(312,'312',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0023 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',1,NULL,NULL,3,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0023 validated\nAuthor: aeinstein',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(313,'313',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0024 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0024 validated\nAuthor: demo',26,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(314,'314',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0025 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',1,NULL,NULL,6,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0025 validated\nAuthor: aeinstein',27,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(315,'315',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0026 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0026 validated\nAuthor: demo',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(316,'316',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0027 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0027 validated\nAuthor: demo',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(317,'317',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0028 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0028 validated\nAuthor: demo',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(318,'318',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0029 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',1,NULL,NULL,11,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0029 validated\nAuthor: aeinstein',31,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(319,'319',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0030 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0030 validated\nAuthor: demo',32,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(320,'320',NULL,1,'2017-02-16 04:46:31','2017-02-16 04:46:31',40,'AC_OTH_AUTO','Proposition PR1702-0026 signée','2017-02-16 04:46:31','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0026 signée\nAuteur: admin',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(321,'321',NULL,1,'2017-02-16 04:46:37','2017-02-16 04:46:37',40,'AC_OTH_AUTO','Proposition PR1702-0027 signée','2017-02-16 04:46:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0027 signée\nAuteur: admin',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(322,'322',NULL,1,'2017-02-16 04:46:42','2017-02-16 04:46:42',40,'AC_OTH_AUTO','Proposition PR1702-0028 refusée','2017-02-16 04:46:42','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0028 refusée\nAuteur: admin',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(323,'323',NULL,1,'2017-02-16 04:47:09','2017-02-16 04:47:09',40,'AC_OTH_AUTO','Proposition PR1702-0019 validée','2017-02-16 04:47:09','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0019 validée\nAuteur: admin',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(324,'324',NULL,1,'2017-02-16 04:47:25','2017-02-16 04:47:25',40,'AC_OTH_AUTO','Proposition PR1702-0023 signée','2017-02-16 04:47:25','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0023 signée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(325,'325',NULL,1,'2017-02-16 04:47:29','2017-02-16 04:47:29',40,'AC_OTH_AUTO','Proposition PR1702-0023 classée payée','2017-02-16 04:47:29','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0023 classée payée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(326,'326',NULL,1,'2017-02-17 16:07:18','2017-02-17 16:07:18',40,'AC_OTH_AUTO','Proposition PR1702-0021 validée','2017-02-17 16:07:18','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0021 validée\nAuteur: admin',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(327,'327',NULL,1,'2017-05-12 13:53:44','2017-05-12 13:53:44',40,'AC_OTH_AUTO','Email sent by MyBigCompany To Einstein','2017-05-12 13:53:44','2021-04-15 10:22:55',12,NULL,NULL,11,12,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Sender: MyBigCompany <myemail@mybigcompany.com>
\nReceiver(s): Einstein <genius@example.com>
\nBcc: Einstein <genius@example.com>
\nEMail topic: Test
\nEmail body:
\nTest\nAuthor: admin',11,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(328,'328',NULL,1,'2017-08-29 22:39:09','2017-08-29 22:39:09',40,'AC_OTH_AUTO','Invoice FA1601-0024 validated','2017-08-29 22:39:09','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice FA1601-0024 validated\nAuthor: admin',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(329,'329',NULL,1,'2019-09-26 13:38:11','2019-09-26 13:38:11',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-09-26 13:38:11','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(330,'330',NULL,1,'2019-09-26 13:49:21','2019-09-26 13:49:21',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-09-26 13:49:21','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(331,'331',NULL,1,'2019-09-26 17:33:37','2019-09-26 17:33:37',40,'AC_BILL_VALIDATE','Invoice FA1909-0025 validated','2019-09-26 17:33:37','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1909-0025 validated',218,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(333,'333',NULL,1,'2019-09-27 16:54:30','2019-09-27 16:54:30',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0031 validated','2019-09-27 16:54:30','2021-04-15 10:22:55',12,NULL,4,7,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0031 validated',10,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(335,'335',NULL,1,'2019-09-27 17:08:59','2019-09-27 17:08:59',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0032 validated','2019-09-27 17:08:59','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0032 validated',33,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(337,'337',NULL,1,'2019-09-27 17:13:13','2019-09-27 17:13:13',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0033 validated','2019-09-27 17:13:13','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 validated',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(338,'338',NULL,1,'2019-09-27 17:53:31','2019-09-27 17:53:31',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 17:53:31','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(339,'339',NULL,1,'2019-09-27 18:15:00','2019-09-27 18:15:00',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 18:15:00','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(340,'340',NULL,1,'2019-09-27 18:40:32','2019-09-27 18:40:32',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 18:40:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(341,'341',NULL,1,'2019-09-27 19:16:07','2019-09-27 19:16:07',40,'AC_PRODUCT_CREATE','Product ppp created','2019-09-27 19:16:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp created',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(342,'342',NULL,1,'2019-09-27 19:18:01','2019-09-27 19:18:01',40,'AC_PRODUCT_MODIFY','Product ppp modified','2019-09-27 19:18:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp modified',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(343,'343',NULL,1,'2019-09-27 19:31:45','2019-09-27 19:31:45',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:31:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(344,'344',NULL,1,'2019-09-27 19:32:12','2019-09-27 19:32:12',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:32:12','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(345,'345',NULL,1,'2019-09-27 19:38:30','2019-09-27 19:38:30',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:38:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(346,'346',NULL,1,'2019-09-27 19:38:37','2019-09-27 19:38:37',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:38:37','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(347,'347',NULL,1,'2019-09-30 15:49:52',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #15ff11cay39skiaa] New message','2019-09-30 15:49:52','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'dfsdfds',2,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(348,'348',NULL,1,'2019-10-01 13:48:36','2019-10-01 13:48:36',40,'AC_PROJECT_MODIFY','Project PJ1607-0001 modified','2019-10-01 13:48:36','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1607-0001 modified\nTask: PJ1607-0001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(349,'349',NULL,1,'2019-10-04 10:10:25','2019-10-04 10:10:25',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1601-0002 validated','2019-10-04 10:10:25','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 validated',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(350,'350',NULL,1,'2019-10-04 10:10:47','2019-10-04 10:10:47',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI1601-0002 changed to paid','2019-10-04 10:10:47','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 changed to paid',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(351,'351',NULL,1,'2019-10-04 10:26:49','2019-10-04 10:26:49',40,'AC_BILL_UNVALIDATE','Invoice FA6801-0010 go back to draft status','2019-10-04 10:26:49','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 go back to draft status',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(352,'352',NULL,1,'2019-10-04 10:27:00','2019-10-04 10:27:00',40,'AC_BILL_VALIDATE','Invoice FA6801-0010 validated','2019-10-04 10:27:00','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 validated',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(353,'353',NULL,1,'2019-10-04 10:28:14','2019-10-04 10:28:14',40,'AC_BILL_PAYED','Invoice FA6801-0010 changed to paid','2019-10-04 10:28:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 changed to paid',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(354,'354',NULL,1,'2019-10-04 10:29:22','2019-10-04 10:29:22',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI1601-0002 changed to paid','2019-10-04 10:29:22','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 changed to paid',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(355,'355',NULL,1,'2019-10-04 10:29:41','2019-10-04 10:29:41',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI1601-0002 go back to draft status','2019-10-04 10:29:41','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 go back to draft status',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(356,'356',NULL,1,'2019-10-04 10:31:30','2019-10-04 10:31:30',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1601-0002 validated','2019-10-04 10:31:30','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 validated',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(357,'357',NULL,1,'2019-10-04 16:56:21',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 16:56:21','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(358,'358',NULL,1,'2019-10-04 17:08:04',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:08:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'ddddd',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(359,'359',NULL,1,'2019-10-04 17:25:05',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:25:05','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(360,'360',NULL,1,'2019-10-04 17:26:14',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:26:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(361,'361',NULL,1,'2019-10-04 17:30:10',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:30:10','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(362,'362',NULL,1,'2019-10-04 17:51:43',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:51:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(363,'363',NULL,1,'2019-10-04 17:52:02',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:02','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(364,'364',NULL,1,'2019-10-04 17:52:17',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(365,'365',NULL,1,'2019-10-04 17:52:39',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:39','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(366,'366',NULL,1,'2019-10-04 17:52:53',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(367,'367',NULL,1,'2019-10-04 17:53:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(368,'368',NULL,1,'2019-10-04 17:53:26',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:26','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(369,'369',NULL,1,'2019-10-04 17:53:48',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(370,'370',NULL,1,'2019-10-04 17:54:09',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:54:09','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(371,'371',NULL,1,'2019-10-04 17:54:28',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:54:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(372,'372',NULL,1,'2019-10-04 17:55:43',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:55:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(373,'373',NULL,1,'2019-10-04 17:56:01',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:56:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(374,'374',NULL,1,'2019-10-04 18:00:32',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:00:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(375,'375',NULL,1,'2019-10-04 18:00:58',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:00:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(376,'376',NULL,1,'2019-10-04 18:11:30',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:11:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(377,'377',NULL,1,'2019-10-04 18:12:02',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:12:02','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fffffff',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(378,'378',NULL,1,'2019-10-04 18:49:30',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:49:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(379,'379',NULL,1,'2019-10-04 19:00:22',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:00:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fff',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(380,'380',NULL,1,'2019-10-04 19:24:20','2019-10-04 19:24:20',40,'AC_PROPAL_SENTBYMAIL','Email sent by Alice Adminson To NLTechno','2019-10-04 19:24:20','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSender: Alice Adminson <aadminson@example.com>
\nReceiver(s): NLTechno <notanemail@nltechno.com>
\nEmail topic: Envoi de la proposition commerciale PR1909-0032
\nEmail body:
\nHello
\r\n
\r\nVeuillez trouver, ci-joint, la proposition commerciale PR1909-0032
\r\n
\r\n
\r\nSincerely
\r\n
\r\nAlice - 123
\n
\nAttached files and documents: PR1909-0032.pdf',33,'propal',NULL,'Envoi de la proposition commerciale PR1909-0032','Alice Adminson ',NULL,'NLTechno ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(381,'381',NULL,1,'2019-10-04 19:30:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:30:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(382,'382',NULL,1,'2019-10-04 19:32:55',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:32:55','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'uuuuuu\n\nAttached files and documents: Array',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(383,'383',NULL,1,'2019-10-04 19:37:16',NULL,50,'TICKET_MSG','','2019-10-04 19:37:16','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,100,'',NULL,NULL,'f\n\nFichiers et documents joints: dolihelp.ico',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(384,'384',NULL,1,'2019-10-04 19:39:07',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:39:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaafff\n\nAttached files and documents: dolibarr.gif;doliadmin.ico',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(385,'385',NULL,1,'2019-10-07 12:17:07','2019-10-07 12:17:07',40,'AC_PRODUCT_DELETE','Product PREF123456 deleted','2019-10-07 12:17:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PREF123456 deleted',17,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(386,'386',NULL,1,'2019-10-07 12:17:32','2019-10-07 12:17:32',40,'AC_PRODUCT_DELETE','Product PREF123456 deleted','2019-10-07 12:17:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PREF123456 deleted',18,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(387,'387',NULL,1,'2019-10-08 19:21:07','2019-10-08 19:21:07',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-10-08 19:21:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(388,'388',NULL,1,'2019-10-08 21:01:07','2019-10-08 21:01:07',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-10-08 21:01:07','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(389,'389',NULL,1,'2019-10-08 21:01:22','2019-10-08 21:01:22',40,'AC_MEMBER_MODIFY','Member doe john modified','2019-10-08 21:01:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember doe john modified\nMember: doe john\nType: Standard members',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(390,'390',NULL,1,'2019-10-08 21:01:45','2019-10-08 21:01:45',40,'AC_MEMBER_MODIFY','Member smith smith modified','2019-10-08 21:01:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember smith smith modified\nMember: smith smith\nType: Standard members',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(391,'391',NULL,1,'2019-10-08 21:02:18','2019-10-08 21:02:18',40,'AC_MEMBER_MODIFY','Member Vick Smith modified','2019-10-08 21:02:18','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith modified\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(392,'392',NULL,1,'2019-11-28 15:54:46','2019-11-28 15:54:46',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1911-0005 validated','2019-11-28 15:54:47','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1911-0005 validated',21,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(393,'393',NULL,1,'2019-11-28 16:33:35','2019-11-28 16:33:35',40,'AC_PRODUCT_CREATE','Product FR-CAR created','2019-11-28 16:33:35','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR created',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(394,'394',NULL,1,'2019-11-28 16:34:08','2019-11-28 16:34:08',40,'AC_PRODUCT_DELETE','Product ppp deleted','2019-11-28 16:34:08','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp deleted',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(395,'395',NULL,1,'2019-11-28 16:34:33','2019-11-28 16:34:33',40,'AC_PRODUCT_MODIFY','Product FR-CAR modified','2019-11-28 16:34:33','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(396,'396',NULL,1,'2019-11-28 16:34:46','2019-11-28 16:34:46',40,'AC_PRODUCT_MODIFY','Product FR-CAR modified','2019-11-28 16:34:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(397,'397',NULL,1,'2019-11-28 16:36:56','2019-11-28 16:36:56',40,'AC_PRODUCT_MODIFY','Product POS-CAR modified','2019-11-28 16:36:56','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(398,'398',NULL,1,'2019-11-28 16:37:36','2019-11-28 16:37:36',40,'AC_PRODUCT_CREATE','Product POS-APPLE created','2019-11-28 16:37:36','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE created',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(399,'399',NULL,1,'2019-11-28 16:37:58','2019-11-28 16:37:58',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 16:37:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(400,'400',NULL,1,'2019-11-28 16:38:44','2019-11-28 16:38:44',40,'AC_PRODUCT_CREATE','Product POS-KIWI created','2019-11-28 16:38:44','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-KIWI created',26,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(401,'401',NULL,1,'2019-11-28 16:39:21','2019-11-28 16:39:21',40,'AC_PRODUCT_CREATE','Product POS-PEACH created','2019-11-28 16:39:21','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-PEACH created',27,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(402,'402',NULL,1,'2019-11-28 16:39:58','2019-11-28 16:39:58',40,'AC_PRODUCT_CREATE','Product POS-ORANGE created','2019-11-28 16:39:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-ORANGE created',28,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(403,'403',NULL,1,'2019-11-28 17:00:28','2019-11-28 17:00:28',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2019-11-28 17:00:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(404,'404',NULL,1,'2019-11-28 17:00:46','2019-11-28 17:00:46',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 17:00:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(405,'405',NULL,1,'2019-11-28 17:01:57','2019-11-28 17:01:57',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 17:01:57','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(406,'406',NULL,1,'2019-11-28 17:03:14','2019-11-28 17:03:14',40,'AC_PRODUCT_CREATE','Product POS-Eggs created','2019-11-28 17:03:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Eggs created',29,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(407,'407',NULL,1,'2019-11-28 17:04:17','2019-11-28 17:04:17',40,'AC_PRODUCT_MODIFY','Product POS-Eggs modified','2019-11-28 17:04:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Eggs modified',29,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(408,'408',NULL,1,'2019-11-28 17:09:14','2019-11-28 17:09:14',40,'AC_PRODUCT_CREATE','Product POS-Chips created','2019-11-28 17:09:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Chips created',30,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(409,'409',NULL,1,'2019-11-28 17:09:54','2019-11-28 17:09:54',40,'AC_PRODUCT_MODIFY','Product POS-Chips modified','2019-11-28 17:09:54','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Chips modified',30,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(410,'410',NULL,1,'2019-11-28 18:46:20','2019-11-28 18:46:20',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 18:46:20','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(411,'411',NULL,1,'2019-11-28 18:59:29','2019-11-28 18:59:29',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 18:59:29','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(412,'412',NULL,1,'2019-11-28 19:02:01','2019-11-28 19:02:01',40,'AC_PRODUCT_MODIFY','Product POS-CARROT modified','2019-11-28 19:02:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-CARROT modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(413,'413',NULL,1,'2019-11-28 19:09:50','2019-11-28 19:09:50',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 19:09:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(414,'414',NULL,1,'2019-11-28 19:12:50','2019-11-28 19:12:50',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 19:12:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(415,'415',NULL,1,'2019-11-29 12:46:29','2019-11-29 12:46:29',40,'AC_TICKET_CREATE','Ticket TS1911-0004 created','2019-11-29 12:46:29','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 created',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(416,'416',NULL,1,'2019-11-29 12:46:34','2019-11-29 12:46:34',40,'AC_TICKET_MODIFY','Ticket TS1911-0004 read by Alice Adminson','2019-11-29 12:46:34','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 read by Alice Adminson',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(417,'417',NULL,1,'2019-11-29 12:46:47','2019-11-29 12:46:47',40,'AC_TICKET_ASSIGNED','Ticket TS1911-0004 assigned','2019-11-29 12:46:47','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 assigned\nOld user: None\nNew user: Commerson Charle1',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(418,'418',NULL,1,'2019-11-29 12:47:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #5gvo9bsjri55zef9] New message','2019-11-29 12:47:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'Where do you want to install Dolibarr ?
\r\nOn-Premise or on the Cloud ?',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(419,'419',NULL,1,'2019-11-29 12:50:45','2019-11-29 12:50:45',40,'AC_TICKET_CREATE','Ticket TS1911-0005 créé','2019-11-29 12:50:45','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nTicket TS1911-0005 créé',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(420,'420',NULL,1,'2019-11-29 12:52:32','2019-11-29 12:52:32',40,'AC_TICKET_MODIFY','Ticket TS1911-0005 read by Alice Adminson','2019-11-29 12:52:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 read by Alice Adminson',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(421,'421',NULL,1,'2019-11-29 12:52:53','2019-11-29 12:52:53',40,'AC_TICKET_ASSIGNED','Ticket TS1911-0005 assigned','2019-11-29 12:52:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 assigned\nOld user: None\nNew user: Commerson Charle1',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(422,'422',NULL,1,'2019-11-29 12:54:04',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #d51wjy4nym7wltg7] New message','2019-11-29 12:54:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'Hi.
\r\nThanks for your interest in using Dolibarr ERP CRM.
\r\nI need more information to give you the correct answer : Where do you want to install Dolibarr. On premise or on Cloud',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(423,'423',NULL,1,'2019-11-29 12:54:46',NULL,50,'TICKET_MSG','','2019-11-29 12:54:46','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,100,'',NULL,NULL,'I need it On-Premise.',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(424,'424',NULL,1,'2019-11-29 12:55:42',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #d51wjy4nym7wltg7] New message','2019-11-29 12:55:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'When used on-premise, you can download and install Dolibarr yourself from ou web portal: https://www.dolibarr.org
\r\nIt is completely free.',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(425,'425',NULL,1,'2019-11-29 12:55:48','2019-11-29 12:55:48',40,'AC_TICKET_CLOSE','Ticket TS1911-0005 closed','2019-11-29 12:55:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 closed',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(426,'426',NULL,1,'2019-11-29 12:56:47','2019-11-29 12:56:47',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2019-11-29 12:56:47','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(427,'427',NULL,1,'2019-11-29 12:57:14','2019-11-29 12:57:14',40,'AC_BOM_VALIDATE','BOM validated','2019-11-29 12:57:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(428,'428',NULL,1,'2019-12-20 16:40:14','2019-12-20 16:40:14',40,'AC_MO_DELETE','MO deleted','2019-12-20 16:40:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',3,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(429,'429',NULL,1,'2019-12-20 17:00:43','2019-12-20 17:00:43',40,'AC_MO_DELETE','MO deleted','2019-12-20 17:00:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',7,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(430,'430',NULL,1,'2019-12-20 17:00:56','2019-12-20 17:00:56',40,'AC_MO_DELETE','MO deleted','2019-12-20 17:00:56','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',6,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(431,'431',NULL,1,'2019-12-20 20:00:03','2019-12-20 20:00:03',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:00:03','2021-04-15 10:22:55',12,NULL,6,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',1,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(432,'432',NULL,1,'2019-12-20 20:22:11','2019-12-20 20:22:11',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',10,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(433,'433',NULL,1,'2019-12-20 20:22:11','2019-12-20 20:22:11',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',12,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(434,'434',NULL,1,'2019-12-20 20:22:20','2019-12-20 20:22:20',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:20','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',9,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(435,'435',NULL,1,'2019-12-20 20:27:07','2019-12-20 20:27:07',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:27:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',13,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(436,'436',NULL,1,'2019-12-20 20:42:42','2019-12-20 20:42:42',40,'AC_ORDER_VALIDATE','Order CO7001-0027 validated','2019-12-20 20:42:42','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0027 validated',88,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(437,'437',NULL,1,'2019-12-20 20:46:25','2019-12-20 20:46:25',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:46:25','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(438,'438',NULL,1,'2019-12-20 20:46:45','2019-12-20 20:46:45',40,'AC_ORDER_SUPPLIER_CLASSIFY_BILLED','Purchase Order CF1007-0001 set billed','2019-12-20 20:46:45','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 set billed',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(439,'439',NULL,1,'2019-12-20 20:47:02','2019-12-20 20:47:02',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:02','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(440,'440',NULL,1,'2019-12-20 20:47:44','2019-12-20 20:47:44',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:44','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(441,'441',NULL,1,'2019-12-20 20:47:53','2019-12-20 20:47:53',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:53','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(442,'442',NULL,1,'2019-12-20 20:48:05','2019-12-20 20:48:05',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:48:05','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(443,'443',NULL,1,'2019-12-20 20:48:45','2019-12-20 20:48:45',40,'AC_ORDER_CLASSIFY_BILLED','Order CO7001-0016 classified billed','2019-12-20 20:48:45','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0016 classified billed',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(444,'444',NULL,1,'2019-12-20 20:48:55','2019-12-20 20:48:55',40,'AC_ORDER_CLOSE','Order CO7001-0018 classified delivered','2019-12-20 20:48:55','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0018 classified delivered',62,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(445,'445',NULL,1,'2019-12-20 20:49:43','2019-12-20 20:49:43',40,'AC_PROPAL_CLASSIFY_BILLED','Proposal PR1702-0027 classified billed','2019-12-20 20:49:43','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 classified billed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(446,'446',NULL,1,'2019-12-20 20:49:54','2019-12-20 20:49:54',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1702-0027 signed','2019-12-20 20:49:54','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 signed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(447,'447',NULL,1,'2019-12-20 20:50:14','2019-12-20 20:50:14',40,'AC_PROPAL_CLOSE_REFUSED','Proposal PR1702-0027 refused','2019-12-20 20:50:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 refused',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(448,'448',NULL,1,'2019-12-20 20:50:23','2019-12-20 20:50:23',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1702-0027 signed','2019-12-20 20:50:23','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 signed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(449,'449',NULL,1,'2019-12-21 17:18:22','2019-12-21 17:18:22',40,'AC_BOM_CLOSE','BOM disabled','2019-12-21 17:18:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM disabled',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(450,'450',NULL,1,'2019-12-21 17:18:38','2019-12-21 17:18:38',40,'AC_MEMBER_RESILIATE','Member Vick Smith terminated','2019-12-21 17:18:38','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith terminated\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(451,'451',NULL,1,'2019-12-21 19:46:33','2019-12-21 19:46:33',40,'AC_PROJECT_CREATE','Project PJ1912-0005 created','2019-12-21 19:46:33','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 created\nProject: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(452,'452',NULL,1,'2019-12-21 19:47:03','2019-12-21 19:47:03',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:03','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(453,'453',NULL,1,'2019-12-21 19:47:24','2019-12-21 19:47:24',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:24','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(454,'454',NULL,1,'2019-12-21 19:47:52','2019-12-21 19:47:52',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:52','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(455,'455',NULL,1,'2019-12-21 19:48:06','2019-12-21 19:48:06',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:48:06','2021-04-15 10:22:55',12,NULL,10,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(456,'456',NULL,1,'2019-12-21 19:49:28','2019-12-21 19:49:28',40,'AC_PROJECT_CREATE','Project PJ1912-0006 created','2019-12-21 19:49:28','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 created\nProject: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(457,'457',NULL,1,'2019-12-21 19:52:12','2019-12-21 19:52:12',40,'AC_PROJECT_CREATE','Project PJ1912-0007 created','2019-12-21 19:52:12','2021-04-15 10:22:55',12,NULL,12,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0007 created\nProject: PJ1912-0007',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(458,'458',NULL,1,'2019-12-21 19:53:21','2019-12-21 19:53:21',40,'AC_PROJECT_CREATE','Project PJ1912-0008 created','2019-12-21 19:53:21','2021-04-15 10:22:55',12,NULL,13,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0008 created\nProject: PJ1912-0008',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(459,'459',NULL,1,'2019-12-21 19:53:42','2019-12-21 19:53:42',40,'AC_PROJECT_MODIFY','Project PJ1912-0008 modified','2019-12-21 19:53:42','2021-04-15 10:22:55',12,NULL,13,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0008 modified\nTask: PJ1912-0008',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(460,'460',NULL,1,'2019-12-21 19:55:23','2019-12-21 19:55:23',40,'AC_PROJECT_MODIFY','Project PJ1912-0006 modified','2019-12-21 19:55:23','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 modified\nTask: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(461,'461',NULL,1,'2019-12-21 20:10:21','2019-12-21 20:10:21',40,'AC_PROJECT_MODIFY','Project PJ1912-0006 modified','2019-12-21 20:10:21','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 modified\nTask: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(462,'462',NULL,1,'2019-12-11 10:00:00','2019-12-11 10:00:00',5,'AC_RDV','Meeting with all employees','2019-12-21 20:29:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(463,'463',NULL,1,'2019-12-06 00:00:00',NULL,11,'AC_INT','Intervention on customer site','2019-12-21 20:30:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(464,'464',NULL,1,'2019-12-23 14:16:59','2019-12-23 14:16:59',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2019-12-23 14:16:59','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(465,'465',NULL,1,'2019-12-23 14:17:18','2019-12-23 14:17:18',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2019-12-23 14:17:18','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(466,'466',NULL,1,'2019-11-23 14:25:00',NULL,50,'AC_OTH','Test','2019-12-23 17:25:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',NULL,NULL,'18/11 17h06 : Message laissé. Me rappeler pour m'en dire plus. 
\r\n
\r\n20/11 10h17 "A rappeler suite au msg laissé le 14/11, dit que c'est urgent"
\r\n12h22 : message laissé. Je lui envoie un sms
\r\n
\r\n"Déclaration de sinistre originale" : constat de ce qui s'est passé.
\r\nElle envoie le chèque de solde dès demain.
\r\n
\r\n3/12 : Elle préfère avoir plus d'infos sur le sinistre pour l'assurance.
\r\nCourrier envoyé le 4/12/19 par mail et par courrier postal
\r\n
\r\n6/12 15h02 : ont obtenu le feu vert de l'assurance.
\r\nOn bloque 16/12 PM à partir de 14h30. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(467,'467',NULL,1,'2020-01-01 14:35:47','2020-01-01 14:35:47',40,'AC_MEMBER_VALIDATE','Adhérent aze aze validé','2020-01-01 14:35:47','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent aze aze validé\nAdhérent: aze aze\nType: Board members',5,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(468,'468',NULL,1,'2020-01-01 14:50:59','2020-01-01 14:50:59',40,'AC_MEMBER_VALIDATE','Adhérent azr azr validé','2020-01-01 14:50:59','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azr azr validé\nAdhérent: azr azr\nType: Board members',6,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(469,'469',NULL,1,'2020-01-01 15:00:16','2020-01-01 15:00:16',40,'AC_MEMBER_VALIDATE','Adhérent azt azt validé','2020-01-01 15:00:16','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azt azt validé\nAdhérent: azt azt\nType: Board members',7,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(470,'470',NULL,1,'2020-01-01 15:08:20','2020-01-01 15:08:20',40,'AC_MEMBER_VALIDATE','Adhérent azu azu validé','2020-01-01 15:08:20','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azu azu validé\nAdhérent: azu azu\nType: Board members',8,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(471,'471',NULL,1,'2020-01-01 15:27:24','2020-01-01 15:27:24',40,'AC_MEMBER_VALIDATE','Adhérent azi azi validé','2020-01-01 15:27:24','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azi azi validé\nAdhérent: azi azi\nType: Board members',9,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(472,'472',NULL,1,'2020-01-01 15:36:29','2020-01-01 15:36:29',40,'AC_MEMBER_VALIDATE','Adhérent azo azo validé','2020-01-01 15:36:29','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azo azo validé\nAdhérent: azo azo\nType: Board members',10,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(473,'473',NULL,1,'2020-01-01 15:44:25','2020-01-01 15:44:25',40,'AC_MEMBER_VALIDATE','Adhérent azp azp validé','2020-01-01 15:44:25','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azp azp validé\nAdhérent: azp azp\nType: Board members',11,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(478,'478',NULL,1,'2020-01-01 16:52:32','2020-01-01 16:52:32',40,'AC_MEMBER_VALIDATE','Adhérent azq azq validé','2020-01-01 16:52:32','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azq azq validé\nAdhérent: azq azq\nType: Board members',12,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(483,'483',NULL,1,'2020-01-01 17:49:05','2020-01-01 17:49:05',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 17:49:05','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(484,'484',NULL,1,'2020-01-01 17:50:41','2020-01-01 17:50:41',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 17:50:41','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',23,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(485,'485',NULL,1,'2020-01-01 17:50:44','2020-01-01 17:50:44',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 17:50:44','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',23,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(486,'486',NULL,1,'2020-01-01 17:51:22','2020-01-01 17:51:22',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-01 17:51:22','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(487,'487',NULL,1,'2020-01-01 20:17:00','2020-01-01 20:17:00',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 20:17:00','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(488,'488',NULL,1,'2020-01-01 20:17:46','2020-01-01 20:17:46',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:17:46','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',24,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(489,'489',NULL,1,'2020-01-01 20:17:51','2020-01-01 20:17:51',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:17:51','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',24,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(490,'490',NULL,1,'2020-01-01 20:20:22','2020-01-01 20:20:22',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:20:22','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',26,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(491,'491',NULL,1,'2020-01-01 20:20:31','2020-01-01 20:20:31',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:20:31','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',26,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(492,'492',NULL,1,'2020-01-01 20:21:35','2020-01-01 20:21:35',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-01 20:21:35','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(493,'493',NULL,1,'2020-01-01 20:21:42','2020-01-01 20:21:42',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 20:21:42','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(494,'494',NULL,1,'2020-01-01 20:21:55','2020-01-01 20:21:55',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:21:55','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(495,'495',NULL,1,'2020-01-01 20:23:02','2020-01-01 20:23:02',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0007 validated','2020-01-01 20:23:02','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 validated',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(496,'496',NULL,1,'2020-01-01 20:23:17','2020-01-01 20:23:17',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:23:17','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(497,'497',NULL,1,'2020-01-01 20:25:36','2020-01-01 20:25:36',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI2001-0007 changed to paid','2020-01-01 20:25:36','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 changed to paid',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(498,'498',NULL,1,'2020-01-01 20:51:37','2020-01-01 20:51:37',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0002 validated','2020-01-01 20:51:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0002 validated',30,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(499,'499',NULL,1,'2020-01-01 20:51:48','2020-01-01 20:51:48',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0002 changed to paid','2020-01-01 20:51:48','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0002 changed to paid',30,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(500,'500',NULL,1,'2020-01-01 21:02:39','2020-01-01 21:02:39',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:02:39','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(501,'501',NULL,1,'2020-01-01 21:03:01','2020-01-01 21:03:01',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:03:01','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(502,'502',NULL,1,'2020-01-01 21:11:10','2020-01-01 21:11:10',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:11:10','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(503,'503',NULL,1,'2020-01-01 21:20:07','2020-01-01 21:20:07',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:20:07','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(504,'504',NULL,1,'2020-01-01 21:21:28','2020-01-01 21:21:28',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI2001-0007 changed to paid','2020-01-01 21:21:28','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 changed to paid',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(505,'505',NULL,1,'2020-01-01 22:06:30','2020-01-01 22:06:30',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 22:06:31','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(506,'506',NULL,1,'2020-01-01 23:54:16','2020-01-01 23:54:16',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-01 23:54:16','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(507,'507',NULL,1,'2020-01-02 20:49:34','2020-01-02 20:49:34',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2020-01-02 20:49:34','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(508,'508',NULL,1,'2020-01-02 23:02:35','2020-01-02 23:02:35',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-02 23:02:35','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(509,'509',NULL,1,'2020-01-02 23:45:01','2020-01-02 23:45:01',40,'AC_BOM_REOPEN','BOM reopen','2020-01-02 23:45:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM reopen',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(511,'511',NULL,1,'2020-01-02 23:57:42','2020-01-02 23:57:42',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-02 23:57:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(512,'512',NULL,1,'2020-01-03 13:33:54','2020-01-03 13:33:54',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-03 13:33:54','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(513,'513',NULL,1,'2020-01-03 13:34:11','2020-01-03 13:34:11',40,'AC_BOM_VALIDATE','BOM validated','2020-01-03 13:34:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(514,'514',NULL,1,'2020-01-03 13:35:45','2020-01-03 13:35:45',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-03 13:35:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',18,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(515,'515',NULL,1,'2020-01-03 14:10:41','2020-01-03 14:10:41',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-03 14:10:41','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',18,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(516,'516',NULL,1,'2020-01-06 00:39:58','2020-01-06 00:39:58',40,'AC_COMPANY_CREATE','Patient créé','2020-01-06 00:39:58','2021-04-15 10:22:55',12,NULL,NULL,29,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPatient créé',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(517,'517',NULL,1,'2020-01-06 00:49:06','2020-01-06 00:49:06',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-06 00:49:06','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(518,'518',NULL,1,'2020-01-06 06:50:05','2020-01-06 06:50:05',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-06 06:50:05','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(519,'519',NULL,1,'2020-01-06 20:52:28','2020-01-06 20:52:28',40,'AC_OTH_AUTO','Consultation 2 recorded (Patient)','2020-01-06 20:52:28','2021-04-15 10:22:55',12,NULL,NULL,29,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Consultation 2 recorded (Patient)\nAuthor: admin',2,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(520,'520',NULL,1,'2020-01-07 20:25:02','2020-01-07 20:25:02',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 20:25:02','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(521,'521',NULL,1,'2020-01-07 21:12:37','2020-01-07 21:12:37',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:12:37','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(522,'522',NULL,1,'2020-01-07 21:13:00','2020-01-07 21:13:00',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:13:00','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(523,'523',NULL,1,'2020-01-07 21:13:49','2020-01-07 21:13:49',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:13:49','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(524,'524',NULL,1,'2020-01-07 21:46:58','2020-01-07 21:46:58',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:46:58','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(525,'525',NULL,1,'2020-01-07 21:52:34','2020-01-07 21:52:34',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:52:34','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(526,'526',NULL,1,'2020-01-07 21:53:44','2020-01-07 21:53:44',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:53:44','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(527,'527',NULL,1,'2020-01-07 21:53:58','2020-01-07 21:53:58',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:53:58','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(528,'528',NULL,1,'2020-01-07 21:54:12','2020-01-07 21:54:12',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:54:12','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(529,'529',NULL,1,'2020-01-07 22:00:55','2020-01-07 22:00:55',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 22:00:55','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(530,'530',NULL,1,'2020-01-07 22:39:52','2020-01-07 22:39:52',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 22:39:52','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(531,'531',NULL,1,'2020-01-07 23:09:04','2020-01-07 23:09:04',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:09:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(532,'532',NULL,1,'2020-01-07 23:39:09','2020-01-07 23:39:09',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1909-0033 signed','2020-01-07 23:39:09','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 signed',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(533,'533',NULL,1,'2020-01-07 23:43:06','2020-01-07 23:43:06',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1909-0033 signed','2020-01-07 23:43:06','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 signed',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(534,'534',NULL,1,'2020-01-07 23:50:40','2020-01-07 23:50:40',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:50:40','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(535,'535',NULL,1,'2020-01-07 23:51:27','2020-01-07 23:51:27',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:51:27','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(536,'536',NULL,1,'2020-01-08 00:25:23','2020-01-08 00:25:23',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:25:23','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(537,'537',NULL,1,'2020-01-08 00:25:43','2020-01-08 00:25:43',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:25:43','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(538,'538',NULL,1,'2020-01-08 00:29:24','2020-01-08 00:29:24',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:29:24','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(539,'539',NULL,1,'2020-01-08 00:29:43','2020-01-08 00:29:43',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:29:43','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(540,'540',NULL,1,'2020-01-08 01:09:15','2020-01-08 01:09:15',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:09:15','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(541,'541',NULL,1,'2020-01-08 01:15:02','2020-01-08 01:15:02',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:15:02','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(542,'542',NULL,1,'2020-01-08 01:17:16','2020-01-08 01:17:16',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:17:16','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(543,'543',NULL,1,'2020-01-08 05:31:44','2020-01-08 05:31:44',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 05:31:44','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(544,'544',NULL,1,'2020-01-08 05:39:46','2020-01-08 05:39:46',40,'AC_BOM_CLOSE','BOM disabled','2020-01-08 05:39:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM disabled',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(545,'545',NULL,1,'2020-01-08 05:39:50','2020-01-08 05:39:50',40,'AC_BOM_REOPEN','BOM reopen','2020-01-08 05:39:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM reopen',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(546,'546',NULL,1,'2020-01-08 06:06:50','2020-01-08 06:06:50',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 06:06:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(547,'547',NULL,1,'2020-01-08 19:34:53','2020-01-08 19:34:53',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-08 19:34:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(548,'548',NULL,1,'2020-01-08 19:40:27','2020-01-08 19:40:27',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-08 19:40:27','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(549,'549',NULL,1,'2020-01-08 19:40:46','2020-01-08 19:40:46',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-08 19:40:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(550,'550',NULL,1,'2020-01-08 19:40:59','2020-01-08 19:40:59',40,'AC_BOM_VALIDATE','BOM validated','2020-01-08 19:40:59','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(551,'551',NULL,1,'2020-01-08 19:41:11','2020-01-08 19:41:11',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-08 19:41:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(552,'552',NULL,1,'2020-01-08 19:41:49','2020-01-08 19:41:49',40,'AC_BOM_VALIDATE','BOM validated','2020-01-08 19:41:49','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(553,'553',NULL,1,'2020-01-08 20:12:55','2020-01-08 20:12:55',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-08 20:12:55','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(554,'554',NULL,1,'2020-01-08 20:21:22','2020-01-08 20:21:22',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 20:21:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(555,'555',NULL,1,'2020-01-08 20:41:19','2020-01-08 20:41:19',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 20:41:19','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(556,'556',NULL,1,'2020-01-08 22:25:19','2020-01-08 22:25:19',40,'AC_BOM_DELETE','BOM deleted','2020-01-08 22:25:19','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM deleted',7,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(557,'557',NULL,1,'2020-01-13 15:11:07','2020-01-13 15:11:07',40,'AC_MO_DELETE','MO_DELETEInDolibarr','2020-01-13 15:11:07','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO_DELETEInDolibarr',25,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(558,'558',NULL,1,'2020-01-13 15:11:54','2020-01-13 15:11:54',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-13 15:11:54','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(559,'559',NULL,1,'2020-01-13 15:13:19','2020-01-13 15:13:19',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:13:19','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(560,'560',NULL,1,'2020-01-13 15:14:15','2020-01-13 15:14:15',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:14:15','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(561,'561',NULL,1,'2020-01-13 15:29:30','2020-01-13 15:29:30',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:29:30','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(562,'562',NULL,1,'2020-01-13 17:19:24','2020-01-13 17:19:24',40,'AC_COMPANY_CREATE','Third party Italo created','2020-01-13 17:19:24','2021-04-15 10:22:55',12,NULL,NULL,30,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nThird party Italo created',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(563,'563',NULL,1,'2020-01-15 16:27:15','2020-01-15 16:27:15',40,'AC_PROJECT_MODIFY','Project RMLL modified','2020-01-15 16:27:15','2021-04-15 10:22:55',12,NULL,5,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject RMLL modified\nTask: RMLL',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(564,'564',NULL,1,'2020-01-15 16:40:50','2020-01-15 16:40:50',40,'AC_PROJECT_MODIFY','Project PROJINDIAN modified','2020-01-15 16:40:50','2021-04-15 10:22:55',12,NULL,3,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PROJINDIAN modified\nTask: PROJINDIAN',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(565,'565',NULL,1,'2020-01-16 02:22:16','2020-01-16 02:22:16',40,'AC_BILL_VALIDATE','Invoice AC2001-0001 validated','2020-01-16 02:22:16','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0001 validated',221,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(566,'566',NULL,1,'2020-01-16 02:22:24','2020-01-16 02:22:24',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0001 go back to draft status','2020-01-16 02:22:24','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0001 go back to draft status',221,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(567,'567',NULL,1,'2020-01-16 02:33:27','2020-01-16 02:33:27',40,'AC_BILL_VALIDATE','Invoice AC2001-0002 validated','2020-01-16 02:33:27','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0002 validated',224,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(568,'568',NULL,1,'2020-01-16 02:36:48','2020-01-16 02:36:48',40,'AC_BILL_PAYED','Invoice AC2001-0002 changed to paid','2020-01-16 02:36:48','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0002 changed to paid',224,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(569,'569',NULL,1,'2020-01-16 02:42:12','2020-01-16 02:42:12',40,'AC_ORDER_CLASSIFY_BILLED','Order CO7001-0020 classified billed','2020-01-16 02:42:12','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified billed',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(570,'570',NULL,1,'2020-01-16 02:42:17','2020-01-16 02:42:17',40,'AC_ORDER_CLOSE','Order CO7001-0020 classified delivered','2020-01-16 02:42:17','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified delivered',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(571,'571',NULL,1,'2020-01-16 02:42:56','2020-01-16 02:42:56',40,'AC_ORDER_CLOSE','Order CO7001-0020 classified delivered','2020-01-16 02:42:56','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified delivered',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(572,'572',NULL,1,'2020-01-16 18:05:43','2020-01-16 18:05:43',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-16 18:05:43','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(573,'573',NULL,1,'2020-01-17 14:54:18','2020-01-17 14:54:18',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-17 14:54:18','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(574,'574',NULL,1,'2020-01-17 15:22:28','2020-01-17 15:22:28',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-17 15:22:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(575,'575',NULL,1,'2020-01-19 14:22:27','2020-01-19 14:22:27',40,'AC_PROPAL_VALIDATE','Proposal PR2001-0034 validated','2020-01-19 14:22:27','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 validated',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(576,'576',NULL,1,'2020-01-19 14:22:34','2020-01-19 14:22:34',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR2001-0034 signed','2020-01-19 14:22:34','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 signed',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(577,'577',NULL,1,'2020-01-19 14:24:22','2020-01-19 14:24:22',40,'AC_PROPAL_VALIDATE','Proposal PR2001-0034 validated','2020-01-19 14:24:22','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 validated',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(578,'578',NULL,1,'2020-01-19 14:24:27','2020-01-19 14:24:27',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR2001-0034 signed','2020-01-19 14:24:27','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 signed',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(579,'579',NULL,1,'2020-01-19 14:51:43','2020-01-19 14:51:43',40,'AC_BILL_VALIDATE','Invoice AC2001-0003 validated','2020-01-19 14:51:43','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0003 validated',227,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(580,'580',NULL,1,'2020-01-19 14:51:48','2020-01-19 14:51:48',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0003 go back to draft status','2020-01-19 14:51:48','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0003 go back to draft status',227,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(581,'581',NULL,1,'2020-01-19 15:01:26','2020-01-19 15:01:26',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:01:26','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(582,'582',NULL,1,'2020-01-19 15:04:37','2020-01-19 15:04:37',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0004 go back to draft status','2020-01-19 15:04:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 go back to draft status',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(583,'583',NULL,1,'2020-01-19 15:04:53','2020-01-19 15:04:53',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:04:53','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(584,'584',NULL,1,'2020-01-19 15:09:14','2020-01-19 15:09:14',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0004 go back to draft status','2020-01-19 15:09:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 go back to draft status',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(585,'585',NULL,1,'2020-01-19 15:13:07','2020-01-19 15:13:07',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:13:07','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(586,'586',NULL,1,'2020-01-20 12:20:11','2020-01-20 12:20:11',40,'AC_ORDER_SUPPLIER_CREATE','Order (PROV14) created','2020-01-20 12:20:11','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder (PROV14) created',14,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(588,'588',NULL,1,'2020-01-21 01:02:14','2020-01-21 01:02:14',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 2 for member Vick Smith added','2020-01-21 01:02:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 2 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2013 - 07/17/2014',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(589,'589',NULL,1,'2020-01-21 10:22:37','2020-01-21 10:22:37',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 3 for member Vick Smith added','2020-01-21 10:22:37','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 3 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2017 - 07/17/2018',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(590,'590',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 4 for member Vick Smith added','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 4 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2017 - 07/17/2018',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(591,'591',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_BILL_VALIDATE','Invoice FA1707-0026 validated','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1707-0026 validated',229,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(592,'592',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_BILL_PAYED','Invoice FA1707-0026 changed to paid','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1707-0026 changed to paid',229,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(593,'593',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 5 for member Vick Smith added','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 5 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2018 - 07/17/2019',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(594,'594',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_BILL_VALIDATE','Invoice FA1807-0027 validated','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1807-0027 validated',230,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(595,'595',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_BILL_PAYED','Invoice FA1807-0027 changed to paid','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1807-0027 changed to paid',230,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(596,'596',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 6 for member Vick Smith added','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 6 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2019 - 07/17/2020',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(597,'597',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_BILL_VALIDATE','Invoice FA1907-0028 validated','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1907-0028 validated',231,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(598,'598',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_BILL_PAYED','Invoice FA1907-0028 changed to paid','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1907-0028 changed to paid',231,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(599,'599',NULL,1,'2020-01-21 10:30:27','2020-01-21 10:30:27',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2020-01-21 10:30:27','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(600,'600',NULL,1,'2020-01-21 10:30:36','2020-01-21 10:30:36',40,'AC_MEMBER_MODIFY','Member doe john modified','2020-01-21 10:30:36','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember doe john modified\nMember: doe john\nType: Standard members',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(601,'601',NULL,1,'2020-01-21 10:30:42','2020-01-21 10:30:42',40,'AC_MEMBER_MODIFY','Member smith smith modified','2020-01-21 10:30:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember smith smith modified\nMember: smith smith\nType: Standard members',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(602,'602',NULL,1,'2020-01-21 10:30:57','2020-01-21 10:30:57',40,'AC_MEMBER_MODIFY','Member Vick Smith modified','2020-01-21 10:30:57','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith modified\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(603,'603',NULL,1,'2020-06-12 10:00:00','2020-06-12 11:30:00',5,'AC_RDV','Meetings','2020-06-12 19:26:44','2021-04-15 10:22:55',12,NULL,3,NULL,NULL,0,12,1,NULL,0,0,-1,'Room 24',5400,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(604,'604',NULL,1,'2020-06-01 10:00:00','2020-06-01 10:27:00',1,'AC_TEL','Called Mr X','2020-06-12 19:28:13','2021-04-15 10:22:55',12,12,3,NULL,NULL,0,12,1,NULL,0,0,100,NULL,1620,NULL,'Customer ask another call.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(605,'605',NULL,1,'2020-04-15 05:00:00','2020-04-15 06:00:00',5,'AC_RDV','Meet A2','2021-04-15 07:36:31','2021-04-15 10:36:31',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,0,'',3600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(606,'606',NULL,1,'2021-04-15 08:38:02','2021-04-15 08:38:02',40,'AC_PRODUCT_CREATE','Product PRODSER created','2021-04-15 08:38:02','2021-04-15 11:38:02',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PRODSER created',31,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0),(607,'607',NULL,1,'2022-02-07 13:54:11','2022-02-07 13:54:11',40,'AC_BOM_VALIDATE','BOM validated','2022-02-07 13:54:11','2022-02-07 13:54:11',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',7,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0); +INSERT INTO `llx_actioncomm` VALUES (1,'1',NULL,1,'2012-07-08 14:21:44','2012-07-08 14:21:44',50,NULL,'Company AAA and Co added into Dolibarr','2012-07-08 14:21:44','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company AAA and Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(2,'2',NULL,1,'2012-07-08 14:23:48','2012-07-08 14:23:48',50,NULL,'Company Belin SARL added into Dolibarr','2012-07-08 14:23:48','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Belin SARL added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(3,'3',NULL,1,'2012-07-08 22:42:12','2012-07-08 22:42:12',50,NULL,'Company Spanish Comp added into Dolibarr','2012-07-08 22:42:12','2021-04-15 10:22:55',1,NULL,NULL,3,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Spanish Comp added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(4,'4',NULL,1,'2012-07-08 22:48:18','2012-07-08 22:48:18',50,NULL,'Company Prospector Vaalen added into Dolibarr','2012-07-08 22:48:18','2021-04-15 10:22:55',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Prospector Vaalen added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(5,'5',NULL,1,'2012-07-08 23:22:57','2012-07-08 23:22:57',50,NULL,'Company NoCountry Co added into Dolibarr','2012-07-08 23:22:57','2021-04-15 10:22:55',1,NULL,NULL,5,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company NoCountry Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(6,'6',NULL,1,'2012-07-09 00:15:09','2012-07-09 00:15:09',50,NULL,'Company Swiss customer added into Dolibarr','2012-07-09 00:15:09','2021-04-15 10:22:55',1,NULL,NULL,6,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Swiss customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(7,'7',NULL,1,'2012-07-09 01:24:26','2012-07-09 01:24:26',50,NULL,'Company Generic customer added into Dolibarr','2012-07-09 01:24:26','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Company Generic customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(8,'8',NULL,1,'2012-07-10 14:54:27','2012-07-10 14:54:27',50,NULL,'Société Client salon ajoutée dans Dolibarr','2012-07-10 14:54:27','2021-04-15 10:22:55',1,NULL,NULL,8,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Client salon ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(9,'9',NULL,1,'2012-07-10 14:54:44','2012-07-10 14:54:44',50,NULL,'Société Client salon invidivdu ajoutée dans Doliba','2012-07-10 14:54:44','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Client salon invidivdu ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(10,'10',NULL,1,'2012-07-10 14:56:10','2012-07-10 14:56:10',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2012-07-10 14:56:10','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(11,'11',NULL,1,'2012-07-10 14:58:53','2012-07-10 14:58:53',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2012-07-10 14:58:53','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(12,'12',NULL,1,'2012-07-10 15:00:55','2012-07-10 15:00:55',50,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr','2012-07-10 15:00:55','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(13,'13',NULL,1,'2012-07-10 15:13:08','2012-07-10 15:13:08',50,NULL,'Société Smith Vick ajoutée dans Dolibarr','2012-07-10 15:13:08','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Smith Vick ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(14,'14',NULL,1,'2012-07-10 15:21:00','2012-07-10 16:21:00',5,NULL,'RDV avec mon chef','2012-07-10 15:21:48','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,'',3600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(15,'15',NULL,1,'2012-07-10 18:18:16','2012-07-10 18:18:16',50,NULL,'Contrat CONTRAT1 validé dans Dolibarr','2012-07-10 18:18:16','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Contrat CONTRAT1 validé dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(16,'16',NULL,1,'2012-07-10 18:35:57','2012-07-10 18:35:57',50,NULL,'Société Mon client ajoutée dans Dolibarr','2012-07-10 18:35:57','2021-04-15 10:22:55',1,NULL,NULL,11,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Mon client ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(17,'17',NULL,1,'2012-07-11 16:18:08','2012-07-11 16:18:08',50,NULL,'Société Dupont Alain ajoutée dans Dolibarr','2012-07-11 16:18:08','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Dupont Alain ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(18,'18',NULL,1,'2012-07-11 17:11:00','2012-07-11 17:17:00',5,NULL,'Rendez-vous','2012-07-11 17:11:22','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,'gfgdfgdf',360,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(19,'19',NULL,1,'2012-07-11 17:13:20','2012-07-11 17:13:20',50,NULL,'Société Vendeur de chips ajoutée dans Dolibarr','2012-07-11 17:13:20','2021-04-15 10:22:55',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Société Vendeur de chips ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(20,'20',NULL,1,'2012-07-11 17:15:42','2012-07-11 17:15:42',50,NULL,'Commande CF1007-0001 validée','2012-07-11 17:15:42','2021-04-15 10:22:55',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Commande CF1007-0001 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(21,'21',NULL,1,'2012-07-11 18:47:33','2012-07-11 18:47:33',50,NULL,'Commande CF1007-0002 validée','2012-07-11 18:47:33','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Commande CF1007-0002 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(22,'22',NULL,1,'2012-07-18 11:36:18','2012-07-18 11:36:18',50,NULL,'Proposition PR1007-0003 validée','2012-07-18 11:36:18','2021-04-15 10:22:55',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,100,'',NULL,NULL,'Proposition PR1007-0003 validée\nAuteur: admin',3,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(23,'23',NULL,1,'2013-07-18 20:49:58','2013-07-18 20:49:58',50,NULL,'Invoice FA1007-0002 validated in Dolibarr','2013-07-18 20:49:58','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1007-0002 validated in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(24,'24',NULL,1,'2013-07-28 01:37:00',NULL,1,NULL,'Phone call','2013-07-28 01:37:48','2021-04-15 10:22:55',1,NULL,NULL,NULL,2,0,1,NULL,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(25,'25',NULL,1,'2013-08-01 02:31:24','2013-08-01 02:31:24',50,NULL,'Company mmm added into Dolibarr','2013-08-01 02:31:24','2021-04-15 10:22:55',1,NULL,NULL,15,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company mmm added into Dolibarr\nAuthor: admin',15,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(26,'26',NULL,1,'2013-08-01 02:31:43','2013-08-01 02:31:43',50,NULL,'Company ppp added into Dolibarr','2013-08-01 02:31:43','2021-04-15 10:22:55',1,NULL,NULL,16,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company ppp added into Dolibarr\nAuthor: admin',16,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(27,'27',NULL,1,'2013-08-01 02:41:26','2013-08-01 02:41:26',50,NULL,'Company aaa added into Dolibarr','2013-08-01 02:41:26','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company aaa added into Dolibarr\nAuthor: admin',17,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(28,'28',NULL,1,'2013-08-01 03:34:11','2013-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2013-08-01 03:34:11','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0003 validated in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(29,'29',NULL,1,'2013-08-01 03:34:11','2013-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2013-08-01 03:34:11','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0003 changed to paid in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(30,'30',NULL,1,'2013-08-06 20:33:54','2013-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2013-08-06 20:33:54','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0004 validated in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(31,'31',NULL,1,'2013-08-06 20:33:54','2013-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2013-08-06 20:33:54','2021-04-15 10:22:55',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0004 changed to paid in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(38,'38',NULL,1,'2013-08-08 02:41:55','2013-08-08 02:41:55',50,NULL,'Invoice FA1108-0005 validated in Dolibarr','2013-08-08 02:41:55','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0005 validated in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(40,'40',NULL,1,'2013-08-08 02:53:40','2013-08-08 02:53:40',50,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr','2013-08-08 02:53:40','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(41,'41',NULL,1,'2013-08-08 02:54:05','2013-08-08 02:54:05',50,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr','2013-08-08 02:54:05','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(42,'42',NULL,1,'2013-08-08 02:55:04','2013-08-08 02:55:04',50,NULL,'Invoice FA1107-0006 validated in Dolibarr','2013-08-08 02:55:04','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1107-0006 validated in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(43,'43',NULL,1,'2013-08-08 02:55:26','2013-08-08 02:55:26',50,NULL,'Invoice FA1108-0007 validated in Dolibarr','2013-08-08 02:55:26','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1108-0007 validated in Dolibarr\nAuthor: admin',9,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(44,'44',NULL,1,'2013-08-08 02:55:58','2013-08-08 02:55:58',50,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr','2013-08-08 02:55:58','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(45,'45',NULL,1,'2013-08-08 03:04:22','2013-08-08 03:04:22',50,NULL,'Order CO1108-0001 validated','2013-08-08 03:04:22','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CO1108-0001 validated\nAuthor: admin',5,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(46,'46',NULL,1,'2013-08-08 13:59:09','2013-08-08 13:59:09',50,NULL,'Order CO1107-0002 validated','2013-08-08 13:59:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CO1107-0002 validated\nAuthor: admin',1,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(47,'47',NULL,1,'2013-08-08 14:24:18','2013-08-08 14:24:18',50,NULL,'Proposal PR1007-0001 validated','2013-08-08 14:24:18','2021-04-15 10:22:55',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposal PR1007-0001 validated\nAuthor: admin',1,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(48,'48',NULL,1,'2013-08-08 14:24:24','2013-08-08 14:24:24',50,NULL,'Proposal PR1108-0004 validated','2013-08-08 14:24:24','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposal PR1108-0004 validated\nAuthor: admin',4,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(49,'49',NULL,1,'2013-08-08 15:04:37','2013-08-08 15:04:37',50,NULL,'Order CF1108-0003 validated','2013-08-08 15:04:37','2021-04-15 10:22:55',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Order CF1108-0003 validated\nAuthor: admin',6,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(50,'50',NULL,1,'2014-12-08 17:56:47','2014-12-08 17:56:47',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2014-12-08 17:56:47','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(51,'51',NULL,1,'2014-12-08 17:57:11','2014-12-08 17:57:11',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2014-12-08 17:57:11','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(52,'52',NULL,1,'2014-12-08 17:58:27','2014-12-08 17:58:27',40,NULL,'Facture FA1212-0008 validée dans Dolibarr','2014-12-08 17:58:27','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0008 validée dans Dolibarr\nAuteur: admin',11,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(53,'53',NULL,1,'2014-12-08 18:20:49','2014-12-08 18:20:49',40,NULL,'Facture AV1212-0002 validée dans Dolibarr','2014-12-08 18:20:49','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0002 validée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(54,'54',NULL,1,'2014-12-09 18:35:07','2014-12-09 18:35:07',40,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr','2014-12-09 18:35:07','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(55,'55',NULL,1,'2014-12-09 20:14:42','2014-12-09 20:14:42',40,NULL,'Société doe john ajoutée dans Dolibarr','2014-12-09 20:14:42','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Société doe john ajoutée dans Dolibarr\nAuteur: admin',18,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(56,'56',NULL,1,'2014-12-12 18:54:19','2014-12-12 18:54:19',40,NULL,'Facture FA1212-0009 validée dans Dolibarr','2014-12-12 18:54:19','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0009 validée dans Dolibarr\nAuteur: admin',55,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(121,'121',NULL,1,'2014-12-06 10:00:00',NULL,50,NULL,'aaab','2014-12-21 17:48:08','2021-04-15 10:22:55',3,1,NULL,NULL,NULL,0,3,NULL,NULL,1,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(122,'122',NULL,1,'2014-12-21 18:09:52','2014-12-21 18:09:52',40,NULL,'Facture client FA1007-0001 envoyée par EMail','2014-12-21 18:09:52','2021-04-15 10:22:55',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Mail envoyé par Firstname SuperAdminName à laurent@mycompany.fr.\nSujet du mail: Envoi facture FA1007-0001\nCorps du mail:\nVeuillez trouver ci-joint la facture FA1007-0001\r\n\r\nVous pouvez cliquer sur le lien sécurisé ci-dessous pour effectuer votre paiement via Paypal\r\n\r\nhttp://localhost/dolibarrnew/public/paypal/newpayment.php?source=invoice&ref=FA1007-0001&securekey=50c82fab36bb3b6aa83e2a50691803b2\r\n\r\nCordialement',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(123,'123',NULL,1,'2015-01-06 13:13:57','2015-01-06 13:13:57',40,NULL,'Facture 16 validée dans Dolibarr','2015-01-06 13:13:57','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture 16 validée dans Dolibarr\nAuteur: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(124,'124',NULL,1,'2015-01-12 12:23:05','2015-01-12 12:23:05',40,NULL,'Patient aaa ajouté','2015-01-12 12:23:05','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient aaa ajouté\nAuteur: admin',19,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(125,'125',NULL,1,'2015-01-12 12:52:20','2015-01-12 12:52:20',40,NULL,'Patient pppoo ajouté','2015-01-12 12:52:20','2021-04-15 10:22:55',1,NULL,NULL,20,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient pppoo ajouté\nAuteur: admin',20,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(127,'127',NULL,1,'2015-01-19 18:22:48','2015-01-19 18:22:48',40,NULL,'Facture FS1301-0001 validée dans Dolibarr','2015-01-19 18:22:48','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0001 validée dans Dolibarr\nAuteur: admin',148,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(128,'128',NULL,1,'2015-01-19 18:31:10','2015-01-19 18:31:10',40,NULL,'Facture FA6801-0010 validée dans Dolibarr','2015-01-19 18:31:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA6801-0010 validée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(129,'129',NULL,1,'2015-01-19 18:31:10','2015-01-19 18:31:10',40,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr','2015-01-19 18:31:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(130,'130',NULL,1,'2015-01-19 18:31:58','2015-01-19 18:31:58',40,NULL,'Facture FS1301-0002 validée dans Dolibarr','2015-01-19 18:31:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0002 validée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(131,'131',NULL,1,'2015-01-19 18:31:58','2015-01-19 18:31:58',40,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr','2015-01-19 18:31:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(132,'132',NULL,1,'2015-01-23 15:07:54','2015-01-23 15:07:54',50,NULL,'Consultation 24 saisie (aaa)','2015-01-23 15:07:54','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Consultation 24 saisie (aaa)\nAuteur: admin',24,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(133,'133',NULL,1,'2015-01-23 16:56:58','2015-01-23 16:56:58',40,NULL,'Patient pa ajouté','2015-01-23 16:56:58','2021-04-15 10:22:55',1,NULL,NULL,21,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient pa ajouté\nAuteur: admin',21,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(134,'134',NULL,1,'2015-01-23 17:34:00',NULL,50,NULL,'bbcv','2015-01-23 17:35:21','2021-04-15 10:22:55',1,NULL,1,2,NULL,0,1,NULL,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(135,'135',NULL,1,'2015-02-12 15:54:00','2015-02-12 15:54:00',40,NULL,'Facture FA1212-0011 validée dans Dolibarr','2015-02-12 15:54:37','2021-04-15 10:22:55',1,1,NULL,7,NULL,0,1,NULL,1,0,0,50,NULL,NULL,NULL,'Facture FA1212-0011 validée dans Dolibarr
\r\nAuteur: admin',13,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(136,'136',NULL,1,'2015-02-12 17:06:51','2015-02-12 17:06:51',40,NULL,'Commande CO1107-0003 validée','2015-02-12 17:06:51','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1107-0003 validée\nAuteur: admin',2,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(137,'137',NULL,1,'2015-02-17 16:22:10','2015-02-17 16:22:10',40,NULL,'Proposition PR1302-0009 validée','2015-02-17 16:22:10','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition PR1302-0009 validée\nAuteur: admin',9,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(138,'138',NULL,1,'2015-02-17 16:27:00','2015-02-17 16:27:00',40,NULL,'Facture FA1302-0012 validée dans Dolibarr','2015-02-17 16:27:00','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1302-0012 validée dans Dolibarr\nAuteur: admin',152,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(139,'139',NULL,1,'2015-02-17 16:27:29','2015-02-17 16:27:29',40,NULL,'Proposition PR1302-0010 validée','2015-02-17 16:27:29','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition PR1302-0010 validée\nAuteur: admin',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(140,'140',NULL,1,'2015-02-17 18:27:56','2015-02-17 18:27:56',40,NULL,'Commande CO1107-0004 validée','2015-02-17 18:27:56','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1107-0004 validée\nAuteur: admin',3,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(141,'141',NULL,1,'2015-02-17 18:38:14','2015-02-17 18:38:14',40,NULL,'Commande CO1302-0005 validée','2015-02-17 18:38:14','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CO1302-0005 validée\nAuteur: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(142,'142',NULL,1,'2015-02-26 22:57:50','2015-02-26 22:57:50',40,NULL,'Company pppp added into Dolibarr','2015-02-26 22:57:50','2021-04-15 10:22:55',1,NULL,NULL,22,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company pppp added into Dolibarr\nAuthor: admin',22,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(143,'143',NULL,1,'2015-02-26 22:58:13','2015-02-26 22:58:13',40,NULL,'Company ttttt added into Dolibarr','2015-02-26 22:58:13','2021-04-15 10:22:55',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Company ttttt added into Dolibarr\nAuthor: admin',23,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(144,'144',NULL,1,'2015-02-27 10:00:00','2015-02-27 19:20:00',5,NULL,'Rendez-vous','2015-02-27 19:20:53','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,NULL,1,0,0,-1,'',33600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(145,'145',NULL,1,'2015-02-27 19:28:00',NULL,2,NULL,'fdsfsd','2015-02-27 19:28:48','2021-04-15 10:22:55',1,1,NULL,NULL,NULL,0,1,NULL,1,0,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(146,'146',NULL,1,'2015-03-06 10:05:07','2015-03-06 10:05:07',40,NULL,'Contrat (PROV3) validé dans Dolibarr','2015-03-06 10:05:07','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Contrat (PROV3) validé dans Dolibarr\nAuteur: admin',3,'contract',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(147,'147',NULL,1,'2015-03-06 16:43:37','2015-03-06 16:43:37',40,NULL,'Facture FA1307-0013 validée dans Dolibarr','2015-03-06 16:43:37','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1307-0013 validée dans Dolibarr\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(148,'148',NULL,1,'2015-03-06 16:44:12','2015-03-06 16:44:12',40,NULL,'Facture FA1407-0014 validée dans Dolibarr','2015-03-06 16:44:12','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1407-0014 validée dans Dolibarr\nAuteur: admin',159,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(149,'149',NULL,1,'2015-03-06 16:47:48','2015-03-06 16:47:48',40,NULL,'Facture FA1507-0015 validée dans Dolibarr','2015-03-06 16:47:48','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1507-0015 validée dans Dolibarr\nAuteur: admin',160,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(150,'150',NULL,1,'2015-03-06 16:48:16','2015-03-06 16:48:16',40,NULL,'Facture FA1607-0016 validée dans Dolibarr','2015-03-06 16:48:16','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1607-0016 validée dans Dolibarr\nAuteur: admin',161,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(151,'151',NULL,1,'2015-03-06 17:13:59','2015-03-06 17:13:59',40,NULL,'Société smith smith ajoutée dans Dolibarr','2015-03-06 17:13:59','2021-04-15 10:22:55',1,NULL,NULL,24,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Société smith smith ajoutée dans Dolibarr\nAuteur: admin',24,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(152,'152',NULL,1,'2015-03-08 10:02:22','2015-03-08 10:02:22',40,NULL,'Proposition (PROV12) validée dans Dolibarr','2015-03-08 10:02:22','2021-04-15 10:22:55',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Proposition (PROV12) validée dans Dolibarr\nAuteur: admin',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(203,'203',NULL,1,'2015-03-09 19:39:27','2015-03-09 19:39:27',40,'AC_ORDER_SUPPLIER_VALIDATE','Commande CF1303-0004 validée','2015-03-09 19:39:27','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Commande CF1303-0004 validée\nAuteur: admin',13,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(204,'204',NULL,1,'2015-03-10 15:47:37','2015-03-10 15:47:37',40,'AC_COMPANY_CREATE','Patient créé','2015-03-10 15:47:37','2021-04-15 10:22:55',1,NULL,NULL,25,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Patient créé\nAuteur: admin',25,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(205,'205',NULL,1,'2015-03-10 15:57:32','2015-03-10 15:57:32',40,'AC_COMPANY_CREATE','Tiers créé','2015-03-10 15:57:32','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Tiers créé\nAuteur: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(206,'206',NULL,1,'2015-03-10 15:58:28','2015-03-10 15:58:28',40,'AC_BILL_VALIDATE','Facture FA1303-0017 validée','2015-03-10 15:58:28','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0017 validée\nAuteur: admin',208,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(207,'207',NULL,1,'2015-03-19 09:38:10','2015-03-19 09:38:10',40,'AC_BILL_VALIDATE','Facture FA1303-0018 validée','2015-03-19 09:38:10','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0018 validée\nAuteur: admin',209,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(208,'208',NULL,1,'2015-03-20 14:30:11','2015-03-20 14:30:11',40,'AC_BILL_VALIDATE','Facture FA1107-0019 validée','2015-03-20 14:30:11','2021-04-15 10:22:55',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1107-0019 validée\nAuteur: admin',210,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(209,'209',NULL,1,'2015-03-22 09:40:25','2015-03-22 09:40:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2015-03-22 09:40:25','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(210,'210',NULL,1,'2015-03-23 17:16:25','2015-03-23 17:16:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2015-03-23 17:16:25','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(211,'211',NULL,1,'2015-03-23 18:08:27','2015-03-23 18:08:27',40,'AC_BILL_VALIDATE','Facture FA1307-0013 validée','2015-03-23 18:08:27','2021-04-15 10:22:55',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1307-0013 validée\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(212,'212',NULL,1,'2015-03-24 15:54:00','2015-03-24 15:54:00',40,'AC_BILL_VALIDATE','Facture FA1212-0021 validée','2015-03-24 15:54:00','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,-1,'',NULL,NULL,'Facture FA1212-0021 validée\nAuteur: admin',32,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(213,'213',NULL,1,'2015-11-07 01:02:39','2015-11-07 01:02:39',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:02:39','2021-04-15 10:22:55',1,NULL,NULL,27,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',27,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(214,'214',NULL,1,'2015-11-07 01:05:22','2015-11-07 01:05:22',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:05:22','2021-04-15 10:22:55',1,NULL,NULL,28,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',28,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(215,'215',NULL,1,'2015-11-07 01:07:07','2015-11-07 01:07:07',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:07:07','2021-04-15 10:22:55',1,NULL,NULL,29,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',29,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(216,'216',NULL,1,'2015-11-07 01:07:58','2015-11-07 01:07:58',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:07:58','2021-04-15 10:22:55',1,NULL,NULL,30,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',30,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(217,'217',NULL,1,'2015-11-07 01:10:09','2015-11-07 01:10:09',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:10:09','2021-04-15 10:22:55',1,NULL,NULL,31,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',31,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(218,'218',NULL,1,'2015-11-07 01:15:57','2015-11-07 01:15:57',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:15:57','2021-04-15 10:22:55',1,NULL,NULL,32,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',32,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(219,'219',NULL,1,'2015-11-07 01:16:51','2015-11-07 01:16:51',40,'AC_COMPANY_CREATE','Third party created','2015-11-07 01:16:51','2021-04-15 10:22:55',1,NULL,NULL,33,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Third party created\nAuthor: admin',33,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(220,'220',NULL,1,'2016-03-02 17:24:04','2016-03-02 17:24:04',40,'AC_BILL_VALIDATE','Invoice FA1302-0022 validated','2016-03-02 17:24:04','2021-04-15 10:22:55',1,NULL,NULL,18,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1302-0022 validated\nAuthor: admin',157,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(221,'221',NULL,1,'2016-03-02 17:24:28','2016-03-02 17:24:28',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2016-03-02 17:24:28','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(222,'222',NULL,1,'2016-03-05 10:00:00','2016-03-05 10:00:00',5,NULL,'RDV John','2016-03-02 19:54:48','2021-04-15 10:22:55',1,1,NULL,NULL,NULL,0,1,0,NULL,0,0,-1,NULL,NULL,NULL,'gfdgdfgdf',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(223,'223',NULL,1,'2016-03-13 10:00:00','2016-03-17 00:00:00',50,NULL,'Congress','2016-03-02 19:55:11','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,-1,'',309600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(224,'224',NULL,1,'2016-03-14 10:00:00',NULL,1,NULL,'Call john','2016-03-02 19:55:56','2021-04-15 10:22:55',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,0,'',NULL,NULL,'tttt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(225,'225',NULL,1,'2016-03-02 20:11:31','2016-03-02 20:11:31',40,'AC_BILL_UNVALIDATE','Invoice FA1303-0020 go back to draft status','2016-03-02 20:11:31','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 go back to draft status\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(226,'226',NULL,1,'2016-03-02 20:13:39','2016-03-02 20:13:39',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2016-03-02 20:13:39','2021-04-15 10:22:55',1,NULL,NULL,19,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(227,'227',NULL,1,'2016-03-03 19:20:10','2016-03-03 19:20:10',40,'AC_BILL_VALIDATE','Invoice FA1212-0023 validated','2016-03-03 19:20:10','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1212-0023 validated\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(228,'228',NULL,1,'2016-03-03 19:20:25','2016-03-03 19:20:25',40,'AC_BILL_CANCEL','Invoice FA1212-0023 canceled in Dolibarr','2016-03-03 19:20:25','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice FA1212-0023 canceled in Dolibarr\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(229,'229',NULL,1,'2016-03-03 19:20:56','2016-03-03 19:20:56',40,'AC_BILL_VALIDATE','Invoice AV1403-0003 validated','2016-03-03 19:20:56','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1403-0003 validated\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(230,'230',NULL,1,'2016-03-03 19:21:29','2016-03-03 19:21:29',40,'AC_BILL_UNVALIDATE','Invoice AV1403-0003 go back to draft status','2016-03-03 19:21:29','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1403-0003 go back to draft status\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(231,'231',NULL,1,'2016-03-03 19:22:16','2016-03-03 19:22:16',40,'AC_BILL_VALIDATE','Invoice AV1303-0003 validated','2016-03-03 19:22:16','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,1,0,0,-1,'',NULL,NULL,'Invoice AV1303-0003 validated\nAuthor: admin',213,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(232,'232',NULL,1,'2018-01-22 18:54:39','2018-01-22 18:54:39',40,'AC_OTH_AUTO','Invoice 16 validated','2018-01-22 18:54:39','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(233,'233',NULL,1,'2018-01-22 18:54:46','2018-01-22 18:54:46',40,'AC_OTH_AUTO','Invoice 16 validated','2018-01-22 18:54:46','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(234,'234',NULL,1,'2018-07-05 10:00:00','2018-07-05 11:19:00',5,'AC_RDV','Meeting with my boss','2018-07-31 18:19:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',4740,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(235,'235',NULL,1,'2018-07-13 00:00:00','2018-07-14 23:59:59',50,'AC_OTH','Trip at Las Vegas','2018-07-31 18:20:36','2021-04-15 10:22:55',12,NULL,4,NULL,2,0,12,1,NULL,0,1,-1,'',172799,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(236,'236',NULL,1,'2018-07-29 10:00:00',NULL,4,'AC_EMAIL','Remind to send an email','2018-07-31 18:21:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,4,0,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(237,'237',NULL,1,'2018-07-01 10:00:00',NULL,1,'AC_TEL','Phone call with Mr Vaalen','2018-07-31 18:22:04','2021-04-15 10:22:55',12,NULL,6,4,NULL,0,13,0,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(238,'238',NULL,1,'2018-08-02 10:00:00','2018-08-02 12:00:00',5,'AC_RDV','Meeting on radium','2018-08-01 01:15:50','2021-04-15 10:22:55',12,NULL,8,10,10,0,12,1,NULL,0,0,-1,'',7200,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(239,'239',NULL,1,'2017-01-29 21:49:33','2017-01-29 21:49:33',40,'AC_OTH_AUTO','Proposal PR1302-0007 validated','2017-01-29 21:49:33','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1302-0007 validated\nAuthor: admin',7,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(240,'240',NULL,1,'2017-01-31 20:52:00',NULL,1,'AC_TEL','Call the boss','2017-01-31 20:52:10','2021-04-15 10:22:55',12,12,6,NULL,NULL,0,12,1,NULL,0,0,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(242,'242',NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 validated','2017-02-01 18:52:04','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CF1007-0001 validated\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(243,'243',NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 approved','2017-02-01 18:52:04','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CF1007-0001 approved\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(245,'245',NULL,1,'2017-02-01 18:52:32','2017-02-01 18:52:32',40,'AC_OTH_AUTO','Supplier order CF1007-0001 submited','2017-02-01 18:52:32','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Supplier order CF1007-0001 submited\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(249,'249',NULL,1,'2017-02-01 18:54:01','2017-02-01 18:54:01',40,'AC_OTH_AUTO','Supplier order CF1007-0001 received','2017-02-01 18:54:01','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Supplier order CF1007-0001 received \nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(250,'250',NULL,1,'2017-02-01 18:54:42','2017-02-01 18:54:42',40,'AC_OTH_AUTO','Email sent by MyBigCompany To mycustomer@example.com','2017-02-01 18:54:42','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Sender: MyBigCompany <myemail@mybigcompany.com>
\nReceiver(s): mycustomer@example.com
\nEMail topic: Submission of order CF1007-0001
\nEmail body:
\nYou will find here our order CF1007-0001
\r\n
\r\nSincerely
\n
\nAttached files and documents: CF1007-0001.pdf',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(251,'251',NULL,1,'2017-02-01 19:02:21','2017-02-01 19:02:21',40,'AC_OTH_AUTO','Invoice SI1702-0001 validated','2017-02-01 19:02:21','2021-04-15 10:22:55',12,NULL,5,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice SI1702-0001 validated\nAuthor: admin',20,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(252,'252',NULL,1,'2017-02-12 23:17:04','2017-02-12 23:17:04',40,'AC_OTH_AUTO','Patient créé','2017-02-12 23:17:04','2021-04-15 10:22:55',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Patient créé\nAuthor: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(253,'253',NULL,1,'2017-02-12 23:18:33','2017-02-12 23:18:33',40,'AC_OTH_AUTO','Consultation 2 recorded (aaa)','2017-02-12 23:18:33','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Consultation 2 recorded (aaa)\nAuthor: admin',2,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(254,'254',NULL,1,'2017-02-15 23:28:41','2017-02-15 23:28:41',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:28:41','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(255,'255',NULL,1,'2017-02-15 23:28:56','2017-02-15 23:28:56',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:28:56','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',8,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(256,'256',NULL,1,'2017-02-15 23:34:33','2017-02-15 23:34:33',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:34:33','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',9,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(257,'257',NULL,1,'2017-02-15 23:35:03','2017-02-15 23:35:03',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-15 23:35:03','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',10,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(263,'263',NULL,1,'2017-02-15 23:50:34','2017-02-15 23:50:34',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:50:34','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',17,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(264,'264',NULL,1,'2017-02-15 23:51:23','2017-02-15 23:51:23',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:51:23','2021-04-15 10:22:55',12,NULL,NULL,7,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',18,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(265,'265',NULL,1,'2017-02-15 23:54:51','2017-02-15 23:54:51',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:54:51','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',19,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(266,'266',NULL,1,'2017-02-15 23:55:52','2017-02-15 23:55:52',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:55:52','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',20,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(267,'267',NULL,1,'2017-02-16 00:03:44','2017-02-16 00:03:44',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-16 00:03:44','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',29,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(268,'268',NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0009 validated','2017-02-16 00:05:01','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0009 validated\nAuthor: admin',34,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(269,'269',NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0010 validated','2017-02-16 00:05:01','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0010 validated\nAuthor: admin',38,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(270,'270',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0011 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0011 validated\nAuthor: admin',40,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(271,'271',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0012 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0012 validated\nAuthor: admin',43,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(272,'272',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0013 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0013 validated\nAuthor: admin',47,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(273,'273',NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0014 validated','2017-02-16 00:05:11','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0014 validated\nAuthor: admin',48,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(274,'274',NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0015 validated','2017-02-16 00:05:26','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0015 validated\nAuthor: admin',50,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(275,'275',NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0016 validated','2017-02-16 00:05:26','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0016 validated\nAuthor: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(277,'277',NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0018 validated','2017-02-16 00:05:35','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0018 validated\nAuthor: admin',62,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(278,'278',NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0019 validated','2017-02-16 00:05:35','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0019 validated\nAuthor: admin',68,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(279,'279',NULL,1,'2017-02-16 00:05:36','2017-02-16 00:05:36',40,'AC_OTH_AUTO','Order CO7001-0020 validated','2017-02-16 00:05:36','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0020 validated\nAuthor: admin',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(281,'281',NULL,1,'2017-02-16 00:05:37','2017-02-16 00:05:37',40,'AC_OTH_AUTO','Order CO7001-0022 validated','2017-02-16 00:05:37','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0022 validated\nAuthor: admin',78,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(282,'282',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0023 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0023 validated\nAuthor: admin',81,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(283,'283',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0024 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0024 validated\nAuthor: admin',83,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(284,'284',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0025 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,2,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0025 validated\nAuthor: admin',84,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(285,'285',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0026 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0026 validated\nAuthor: admin',85,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(286,'286',NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0027 validated','2017-02-16 00:05:38','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Order CO7001-0027 validated\nAuthor: admin',88,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(287,'287',NULL,1,'2017-02-16 03:05:56','2017-02-16 03:05:56',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Livrée','2017-02-16 03:05:56','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0016 classée Livrée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(288,'288',NULL,1,'2017-02-16 03:06:01','2017-02-16 03:06:01',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Facturée','2017-02-16 03:06:01','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0016 classée Facturée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(294,'294',NULL,1,'2017-02-16 03:53:04','2017-02-16 03:53:04',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 03:53:04','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(295,'295',NULL,1,'2017-02-16 03:58:08','2017-02-16 03:58:08',40,'AC_OTH_AUTO','Expédition SH1702-0002 validée','2017-02-16 03:58:08','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Expédition SH1702-0002 validée\nAuteur: admin',3,'shipping',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(296,'296',NULL,1,'2017-02-16 04:12:29','2017-02-16 04:12:29',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:12:29','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(297,'297',NULL,1,'2017-02-16 04:14:20','2017-02-16 04:14:20',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:14:20','2021-04-15 10:22:55',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(298,'298',NULL,1,'2017-02-16 01:44:58','2017-02-16 01:44:58',40,'AC_OTH_AUTO','Proposal PR1702-0009 validated','2017-02-16 01:44:58','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0009 validated\nAuthor: aeinstein',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(299,'299',NULL,1,'2017-02-16 01:45:44','2017-02-16 01:45:44',40,'AC_OTH_AUTO','Proposal PR1702-0010 validated','2017-02-16 01:45:44','2021-04-15 10:22:55',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0010 validated\nAuthor: demo',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(300,'300',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0011 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0011 validated\nAuthor: aeinstein',13,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(301,'301',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0012 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,3,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0012 validated\nAuthor: demo',14,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(302,'302',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0013 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0013 validated\nAuthor: demo',15,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(303,'303',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0014 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0014 validated\nAuthor: demo',16,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(304,'304',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0015 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0015 validated\nAuthor: aeinstein',17,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(305,'305',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0016 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0016 validated\nAuthor: demo',18,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(306,'306',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0017 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0017 validated\nAuthor: demo',19,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(307,'307',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0018 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0018 validated\nAuthor: aeinstein',20,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(308,'308',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0019 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0019 validated\nAuthor: aeinstein',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(309,'309',NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0020 validated','2017-02-16 01:46:15','2021-04-15 10:22:55',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0020 validated\nAuthor: aeinstein',22,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(310,'310',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0021 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0021 validated\nAuthor: demo',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(311,'311',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0022 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0022 validated\nAuthor: demo',24,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(312,'312',NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0023 validated','2017-02-16 01:46:17','2021-04-15 10:22:55',1,NULL,NULL,3,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0023 validated\nAuthor: aeinstein',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(313,'313',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0024 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0024 validated\nAuthor: demo',26,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(314,'314',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0025 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',1,NULL,NULL,6,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0025 validated\nAuthor: aeinstein',27,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(315,'315',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0026 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0026 validated\nAuthor: demo',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(316,'316',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0027 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0027 validated\nAuthor: demo',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(317,'317',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0028 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0028 validated\nAuthor: demo',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(318,'318',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0029 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',1,NULL,NULL,11,NULL,0,1,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0029 validated\nAuthor: aeinstein',31,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(319,'319',NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0030 validated','2017-02-16 01:46:18','2021-04-15 10:22:55',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,-1,'',NULL,NULL,'Proposal PR1702-0030 validated\nAuthor: demo',32,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(320,'320',NULL,1,'2017-02-16 04:46:31','2017-02-16 04:46:31',40,'AC_OTH_AUTO','Proposition PR1702-0026 signée','2017-02-16 04:46:31','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0026 signée\nAuteur: admin',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(321,'321',NULL,1,'2017-02-16 04:46:37','2017-02-16 04:46:37',40,'AC_OTH_AUTO','Proposition PR1702-0027 signée','2017-02-16 04:46:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0027 signée\nAuteur: admin',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(322,'322',NULL,1,'2017-02-16 04:46:42','2017-02-16 04:46:42',40,'AC_OTH_AUTO','Proposition PR1702-0028 refusée','2017-02-16 04:46:42','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0028 refusée\nAuteur: admin',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(323,'323',NULL,1,'2017-02-16 04:47:09','2017-02-16 04:47:09',40,'AC_OTH_AUTO','Proposition PR1702-0019 validée','2017-02-16 04:47:09','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0019 validée\nAuteur: admin',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(324,'324',NULL,1,'2017-02-16 04:47:25','2017-02-16 04:47:25',40,'AC_OTH_AUTO','Proposition PR1702-0023 signée','2017-02-16 04:47:25','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0023 signée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(325,'325',NULL,1,'2017-02-16 04:47:29','2017-02-16 04:47:29',40,'AC_OTH_AUTO','Proposition PR1702-0023 classée payée','2017-02-16 04:47:29','2021-04-15 10:22:55',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0023 classée payée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(326,'326',NULL,1,'2017-02-17 16:07:18','2017-02-17 16:07:18',40,'AC_OTH_AUTO','Proposition PR1702-0021 validée','2017-02-17 16:07:18','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Proposition PR1702-0021 validée\nAuteur: admin',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(327,'327',NULL,1,'2017-05-12 13:53:44','2017-05-12 13:53:44',40,'AC_OTH_AUTO','Email sent by MyBigCompany To Einstein','2017-05-12 13:53:44','2021-04-15 10:22:55',12,NULL,NULL,11,12,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Sender: MyBigCompany <myemail@mybigcompany.com>
\nReceiver(s): Einstein <genius@example.com>
\nBcc: Einstein <genius@example.com>
\nEMail topic: Test
\nEmail body:
\nTest\nAuthor: admin',11,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(328,'328',NULL,1,'2017-08-29 22:39:09','2017-08-29 22:39:09',40,'AC_OTH_AUTO','Invoice FA1601-0024 validated','2017-08-29 22:39:09','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Invoice FA1601-0024 validated\nAuthor: admin',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(329,'329',NULL,1,'2019-09-26 13:38:11','2019-09-26 13:38:11',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-09-26 13:38:11','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(330,'330',NULL,1,'2019-09-26 13:49:21','2019-09-26 13:49:21',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-09-26 13:49:21','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(331,'331',NULL,1,'2019-09-26 17:33:37','2019-09-26 17:33:37',40,'AC_BILL_VALIDATE','Invoice FA1909-0025 validated','2019-09-26 17:33:37','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1909-0025 validated',218,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(333,'333',NULL,1,'2019-09-27 16:54:30','2019-09-27 16:54:30',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0031 validated','2019-09-27 16:54:30','2021-04-15 10:22:55',12,NULL,4,7,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0031 validated',10,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(335,'335',NULL,1,'2019-09-27 17:08:59','2019-09-27 17:08:59',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0032 validated','2019-09-27 17:08:59','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0032 validated',33,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(337,'337',NULL,1,'2019-09-27 17:13:13','2019-09-27 17:13:13',40,'AC_PROPAL_VALIDATE','Proposal PR1909-0033 validated','2019-09-27 17:13:13','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 validated',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(338,'338',NULL,1,'2019-09-27 17:53:31','2019-09-27 17:53:31',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 17:53:31','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(339,'339',NULL,1,'2019-09-27 18:15:00','2019-09-27 18:15:00',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 18:15:00','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(340,'340',NULL,1,'2019-09-27 18:40:32','2019-09-27 18:40:32',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 18:40:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(341,'341',NULL,1,'2019-09-27 19:16:07','2019-09-27 19:16:07',40,'AC_PRODUCT_CREATE','Product ppp created','2019-09-27 19:16:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp created',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(342,'342',NULL,1,'2019-09-27 19:18:01','2019-09-27 19:18:01',40,'AC_PRODUCT_MODIFY','Product ppp modified','2019-09-27 19:18:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp modified',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(343,'343',NULL,1,'2019-09-27 19:31:45','2019-09-27 19:31:45',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:31:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(344,'344',NULL,1,'2019-09-27 19:32:12','2019-09-27 19:32:12',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:32:12','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(345,'345',NULL,1,'2019-09-27 19:38:30','2019-09-27 19:38:30',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:38:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(346,'346',NULL,1,'2019-09-27 19:38:37','2019-09-27 19:38:37',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-09-27 19:38:37','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(347,'347',NULL,1,'2019-09-30 15:49:52',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #15ff11cay39skiaa] New message','2019-09-30 15:49:52','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'dfsdfds',2,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(348,'348',NULL,1,'2019-10-01 13:48:36','2019-10-01 13:48:36',40,'AC_PROJECT_MODIFY','Project PJ1607-0001 modified','2019-10-01 13:48:36','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1607-0001 modified\nTask: PJ1607-0001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(349,'349',NULL,1,'2019-10-04 10:10:25','2019-10-04 10:10:25',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1601-0002 validated','2019-10-04 10:10:25','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 validated',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(350,'350',NULL,1,'2019-10-04 10:10:47','2019-10-04 10:10:47',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI1601-0002 changed to paid','2019-10-04 10:10:47','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 changed to paid',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(351,'351',NULL,1,'2019-10-04 10:26:49','2019-10-04 10:26:49',40,'AC_BILL_UNVALIDATE','Invoice FA6801-0010 go back to draft status','2019-10-04 10:26:49','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 go back to draft status',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(352,'352',NULL,1,'2019-10-04 10:27:00','2019-10-04 10:27:00',40,'AC_BILL_VALIDATE','Invoice FA6801-0010 validated','2019-10-04 10:27:00','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 validated',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(353,'353',NULL,1,'2019-10-04 10:28:14','2019-10-04 10:28:14',40,'AC_BILL_PAYED','Invoice FA6801-0010 changed to paid','2019-10-04 10:28:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA6801-0010 changed to paid',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(354,'354',NULL,1,'2019-10-04 10:29:22','2019-10-04 10:29:22',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI1601-0002 changed to paid','2019-10-04 10:29:22','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 changed to paid',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(355,'355',NULL,1,'2019-10-04 10:29:41','2019-10-04 10:29:41',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI1601-0002 go back to draft status','2019-10-04 10:29:41','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 go back to draft status',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(356,'356',NULL,1,'2019-10-04 10:31:30','2019-10-04 10:31:30',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1601-0002 validated','2019-10-04 10:31:30','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1601-0002 validated',17,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(357,'357',NULL,1,'2019-10-04 16:56:21',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 16:56:21','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(358,'358',NULL,1,'2019-10-04 17:08:04',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:08:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'ddddd',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(359,'359',NULL,1,'2019-10-04 17:25:05',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:25:05','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(360,'360',NULL,1,'2019-10-04 17:26:14',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:26:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(361,'361',NULL,1,'2019-10-04 17:30:10',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:30:10','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(362,'362',NULL,1,'2019-10-04 17:51:43',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:51:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(363,'363',NULL,1,'2019-10-04 17:52:02',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:02','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(364,'364',NULL,1,'2019-10-04 17:52:17',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(365,'365',NULL,1,'2019-10-04 17:52:39',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:39','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(366,'366',NULL,1,'2019-10-04 17:52:53',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:52:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(367,'367',NULL,1,'2019-10-04 17:53:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(368,'368',NULL,1,'2019-10-04 17:53:26',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:26','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(369,'369',NULL,1,'2019-10-04 17:53:48',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:53:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(370,'370',NULL,1,'2019-10-04 17:54:09',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:54:09','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(371,'371',NULL,1,'2019-10-04 17:54:28',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:54:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(372,'372',NULL,1,'2019-10-04 17:55:43',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:55:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(373,'373',NULL,1,'2019-10-04 17:56:01',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 17:56:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(374,'374',NULL,1,'2019-10-04 18:00:32',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:00:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(375,'375',NULL,1,'2019-10-04 18:00:58',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:00:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(376,'376',NULL,1,'2019-10-04 18:11:30',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:11:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fdsfs',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(377,'377',NULL,1,'2019-10-04 18:12:02',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:12:02','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fffffff',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(378,'378',NULL,1,'2019-10-04 18:49:30',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 18:49:30','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaa',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(379,'379',NULL,1,'2019-10-04 19:00:22',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:00:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'fff',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(380,'380',NULL,1,'2019-10-04 19:24:20','2019-10-04 19:24:20',40,'AC_PROPAL_SENTBYMAIL','Email sent by Alice Adminson To NLTechno','2019-10-04 19:24:20','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSender: Alice Adminson <aadminson@example.com>
\nReceiver(s): NLTechno <notanemail@nltechno.com>
\nEmail topic: Envoi de la proposition commerciale PR1909-0032
\nEmail body:
\nHello
\r\n
\r\nVeuillez trouver, ci-joint, la proposition commerciale PR1909-0032
\r\n
\r\n
\r\nSincerely
\r\n
\r\nAlice - 123
\n
\nAttached files and documents: PR1909-0032.pdf',33,'propal',NULL,'Envoi de la proposition commerciale PR1909-0032','Alice Adminson ',NULL,'NLTechno ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(381,'381',NULL,1,'2019-10-04 19:30:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:30:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(382,'382',NULL,1,'2019-10-04 19:32:55',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:32:55','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'uuuuuu\n\nAttached files and documents: Array',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(383,'383',NULL,1,'2019-10-04 19:37:16',NULL,50,'TICKET_MSG','','2019-10-04 19:37:16','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,100,'',NULL,NULL,'f\n\nFichiers et documents joints: dolihelp.ico',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(384,'384',NULL,1,'2019-10-04 19:39:07',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #9d85cko5qmmo7qxs] New message','2019-10-04 19:39:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'aaafff\n\nAttached files and documents: dolibarr.gif;doliadmin.ico',5,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(385,'385',NULL,1,'2019-10-07 12:17:07','2019-10-07 12:17:07',40,'AC_PRODUCT_DELETE','Product PREF123456 deleted','2019-10-07 12:17:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PREF123456 deleted',17,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(386,'386',NULL,1,'2019-10-07 12:17:32','2019-10-07 12:17:32',40,'AC_PRODUCT_DELETE','Product PREF123456 deleted','2019-10-07 12:17:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PREF123456 deleted',18,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(387,'387',NULL,1,'2019-10-08 19:21:07','2019-10-08 19:21:07',40,'AC_PRODUCT_MODIFY','Product ROLLUPABC modified','2019-10-08 19:21:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ROLLUPABC modified',11,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(388,'388',NULL,1,'2019-10-08 21:01:07','2019-10-08 21:01:07',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2019-10-08 21:01:07','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(389,'389',NULL,1,'2019-10-08 21:01:22','2019-10-08 21:01:22',40,'AC_MEMBER_MODIFY','Member doe john modified','2019-10-08 21:01:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember doe john modified\nMember: doe john\nType: Standard members',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(390,'390',NULL,1,'2019-10-08 21:01:45','2019-10-08 21:01:45',40,'AC_MEMBER_MODIFY','Member smith smith modified','2019-10-08 21:01:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember smith smith modified\nMember: smith smith\nType: Standard members',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(391,'391',NULL,1,'2019-10-08 21:02:18','2019-10-08 21:02:18',40,'AC_MEMBER_MODIFY','Member Vick Smith modified','2019-10-08 21:02:18','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith modified\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(392,'392',NULL,1,'2019-11-28 15:54:46','2019-11-28 15:54:46',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI1911-0005 validated','2019-11-28 15:54:47','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI1911-0005 validated',21,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(393,'393',NULL,1,'2019-11-28 16:33:35','2019-11-28 16:33:35',40,'AC_PRODUCT_CREATE','Product FR-CAR created','2019-11-28 16:33:35','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR created',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(394,'394',NULL,1,'2019-11-28 16:34:08','2019-11-28 16:34:08',40,'AC_PRODUCT_DELETE','Product ppp deleted','2019-11-28 16:34:08','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct ppp deleted',14,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(395,'395',NULL,1,'2019-11-28 16:34:33','2019-11-28 16:34:33',40,'AC_PRODUCT_MODIFY','Product FR-CAR modified','2019-11-28 16:34:33','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(396,'396',NULL,1,'2019-11-28 16:34:46','2019-11-28 16:34:46',40,'AC_PRODUCT_MODIFY','Product FR-CAR modified','2019-11-28 16:34:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct FR-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(397,'397',NULL,1,'2019-11-28 16:36:56','2019-11-28 16:36:56',40,'AC_PRODUCT_MODIFY','Product POS-CAR modified','2019-11-28 16:36:56','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-CAR modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(398,'398',NULL,1,'2019-11-28 16:37:36','2019-11-28 16:37:36',40,'AC_PRODUCT_CREATE','Product POS-APPLE created','2019-11-28 16:37:36','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE created',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(399,'399',NULL,1,'2019-11-28 16:37:58','2019-11-28 16:37:58',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 16:37:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(400,'400',NULL,1,'2019-11-28 16:38:44','2019-11-28 16:38:44',40,'AC_PRODUCT_CREATE','Product POS-KIWI created','2019-11-28 16:38:44','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-KIWI created',26,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(401,'401',NULL,1,'2019-11-28 16:39:21','2019-11-28 16:39:21',40,'AC_PRODUCT_CREATE','Product POS-PEACH created','2019-11-28 16:39:21','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-PEACH created',27,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(402,'402',NULL,1,'2019-11-28 16:39:58','2019-11-28 16:39:58',40,'AC_PRODUCT_CREATE','Product POS-ORANGE created','2019-11-28 16:39:58','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-ORANGE created',28,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(403,'403',NULL,1,'2019-11-28 17:00:28','2019-11-28 17:00:28',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2019-11-28 17:00:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(404,'404',NULL,1,'2019-11-28 17:00:46','2019-11-28 17:00:46',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 17:00:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(405,'405',NULL,1,'2019-11-28 17:01:57','2019-11-28 17:01:57',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 17:01:57','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(406,'406',NULL,1,'2019-11-28 17:03:14','2019-11-28 17:03:14',40,'AC_PRODUCT_CREATE','Product POS-Eggs created','2019-11-28 17:03:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Eggs created',29,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(407,'407',NULL,1,'2019-11-28 17:04:17','2019-11-28 17:04:17',40,'AC_PRODUCT_MODIFY','Product POS-Eggs modified','2019-11-28 17:04:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Eggs modified',29,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(408,'408',NULL,1,'2019-11-28 17:09:14','2019-11-28 17:09:14',40,'AC_PRODUCT_CREATE','Product POS-Chips created','2019-11-28 17:09:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Chips created',30,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(409,'409',NULL,1,'2019-11-28 17:09:54','2019-11-28 17:09:54',40,'AC_PRODUCT_MODIFY','Product POS-Chips modified','2019-11-28 17:09:54','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-Chips modified',30,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(410,'410',NULL,1,'2019-11-28 18:46:20','2019-11-28 18:46:20',40,'AC_PRODUCT_MODIFY','Product POS-APPLE modified','2019-11-28 18:46:20','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-APPLE modified',25,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(411,'411',NULL,1,'2019-11-28 18:59:29','2019-11-28 18:59:29',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 18:59:29','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(412,'412',NULL,1,'2019-11-28 19:02:01','2019-11-28 19:02:01',40,'AC_PRODUCT_MODIFY','Product POS-CARROT modified','2019-11-28 19:02:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct POS-CARROT modified',24,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(413,'413',NULL,1,'2019-11-28 19:09:50','2019-11-28 19:09:50',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 19:09:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(414,'414',NULL,1,'2019-11-28 19:12:50','2019-11-28 19:12:50',40,'AC_PRODUCT_MODIFY','Product PEARPIE modified','2019-11-28 19:12:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PEARPIE modified',2,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(415,'415',NULL,1,'2019-11-29 12:46:29','2019-11-29 12:46:29',40,'AC_TICKET_CREATE','Ticket TS1911-0004 created','2019-11-29 12:46:29','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 created',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(416,'416',NULL,1,'2019-11-29 12:46:34','2019-11-29 12:46:34',40,'AC_TICKET_MODIFY','Ticket TS1911-0004 read by Alice Adminson','2019-11-29 12:46:34','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 read by Alice Adminson',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(417,'417',NULL,1,'2019-11-29 12:46:47','2019-11-29 12:46:47',40,'AC_TICKET_ASSIGNED','Ticket TS1911-0004 assigned','2019-11-29 12:46:47','2021-04-15 10:22:55',12,NULL,4,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0004 assigned\nOld user: None\nNew user: Commerson Charle1',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(418,'418',NULL,1,'2019-11-29 12:47:13',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #5gvo9bsjri55zef9] New message','2019-11-29 12:47:13','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'Where do you want to install Dolibarr ?
\r\nOn-Premise or on the Cloud ?',6,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(419,'419',NULL,1,'2019-11-29 12:50:45','2019-11-29 12:50:45',40,'AC_TICKET_CREATE','Ticket TS1911-0005 créé','2019-11-29 12:50:45','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nTicket TS1911-0005 créé',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(420,'420',NULL,1,'2019-11-29 12:52:32','2019-11-29 12:52:32',40,'AC_TICKET_MODIFY','Ticket TS1911-0005 read by Alice Adminson','2019-11-29 12:52:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 read by Alice Adminson',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(421,'421',NULL,1,'2019-11-29 12:52:53','2019-11-29 12:52:53',40,'AC_TICKET_ASSIGNED','Ticket TS1911-0005 assigned','2019-11-29 12:52:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 assigned\nOld user: None\nNew user: Commerson Charle1',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(422,'422',NULL,1,'2019-11-29 12:54:04',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #d51wjy4nym7wltg7] New message','2019-11-29 12:54:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'Hi.
\r\nThanks for your interest in using Dolibarr ERP CRM.
\r\nI need more information to give you the correct answer : Where do you want to install Dolibarr. On premise or on Cloud',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(423,'423',NULL,1,'2019-11-29 12:54:46',NULL,50,'TICKET_MSG','','2019-11-29 12:54:46','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,100,'',NULL,NULL,'I need it On-Premise.',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(424,'424',NULL,1,'2019-11-29 12:55:42',NULL,50,'TICKET_MSG','[MyBigCompany - ticket #d51wjy4nym7wltg7] New message','2019-11-29 12:55:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,100,'',NULL,NULL,'When used on-premise, you can download and install Dolibarr yourself from ou web portal: https://www.dolibarr.org
\r\nIt is completely free.',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(425,'425',NULL,1,'2019-11-29 12:55:48','2019-11-29 12:55:48',40,'AC_TICKET_CLOSE','Ticket TS1911-0005 closed','2019-11-29 12:55:48','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nTicket TS1911-0005 closed',7,'ticket',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(426,'426',NULL,1,'2019-11-29 12:56:47','2019-11-29 12:56:47',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2019-11-29 12:56:47','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(427,'427',NULL,1,'2019-11-29 12:57:14','2019-11-29 12:57:14',40,'AC_BOM_VALIDATE','BOM validated','2019-11-29 12:57:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(428,'428',NULL,1,'2019-12-20 16:40:14','2019-12-20 16:40:14',40,'AC_MO_DELETE','MO deleted','2019-12-20 16:40:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',3,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(429,'429',NULL,1,'2019-12-20 17:00:43','2019-12-20 17:00:43',40,'AC_MO_DELETE','MO deleted','2019-12-20 17:00:43','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',7,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(430,'430',NULL,1,'2019-12-20 17:00:56','2019-12-20 17:00:56',40,'AC_MO_DELETE','MO deleted','2019-12-20 17:00:56','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',6,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(431,'431',NULL,1,'2019-12-20 20:00:03','2019-12-20 20:00:03',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:00:03','2021-04-15 10:22:55',12,NULL,6,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',1,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(432,'432',NULL,1,'2019-12-20 20:22:11','2019-12-20 20:22:11',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',10,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(433,'433',NULL,1,'2019-12-20 20:22:11','2019-12-20 20:22:11',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',12,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(434,'434',NULL,1,'2019-12-20 20:22:20','2019-12-20 20:22:20',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:22:20','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',9,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(435,'435',NULL,1,'2019-12-20 20:27:07','2019-12-20 20:27:07',40,'AC_MO_DELETE','MO deleted','2019-12-20 20:27:07','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO deleted',13,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(436,'436',NULL,1,'2019-12-20 20:42:42','2019-12-20 20:42:42',40,'AC_ORDER_VALIDATE','Order CO7001-0027 validated','2019-12-20 20:42:42','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0027 validated',88,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(437,'437',NULL,1,'2019-12-20 20:46:25','2019-12-20 20:46:25',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:46:25','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(438,'438',NULL,1,'2019-12-20 20:46:45','2019-12-20 20:46:45',40,'AC_ORDER_SUPPLIER_CLASSIFY_BILLED','Purchase Order CF1007-0001 set billed','2019-12-20 20:46:45','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 set billed',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(439,'439',NULL,1,'2019-12-20 20:47:02','2019-12-20 20:47:02',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:02','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(440,'440',NULL,1,'2019-12-20 20:47:44','2019-12-20 20:47:44',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:44','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(441,'441',NULL,1,'2019-12-20 20:47:53','2019-12-20 20:47:53',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:47:53','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(442,'442',NULL,1,'2019-12-20 20:48:05','2019-12-20 20:48:05',40,'AC_ORDER_SUPPLIER_RECEIVE','Purchase Order CF1007-0001 received','2019-12-20 20:48:05','2021-04-15 10:22:55',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPurchase Order CF1007-0001 received ',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(443,'443',NULL,1,'2019-12-20 20:48:45','2019-12-20 20:48:45',40,'AC_ORDER_CLASSIFY_BILLED','Order CO7001-0016 classified billed','2019-12-20 20:48:45','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0016 classified billed',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(444,'444',NULL,1,'2019-12-20 20:48:55','2019-12-20 20:48:55',40,'AC_ORDER_CLOSE','Order CO7001-0018 classified delivered','2019-12-20 20:48:55','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0018 classified delivered',62,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(445,'445',NULL,1,'2019-12-20 20:49:43','2019-12-20 20:49:43',40,'AC_PROPAL_CLASSIFY_BILLED','Proposal PR1702-0027 classified billed','2019-12-20 20:49:43','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 classified billed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(446,'446',NULL,1,'2019-12-20 20:49:54','2019-12-20 20:49:54',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1702-0027 signed','2019-12-20 20:49:54','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 signed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(447,'447',NULL,1,'2019-12-20 20:50:14','2019-12-20 20:50:14',40,'AC_PROPAL_CLOSE_REFUSED','Proposal PR1702-0027 refused','2019-12-20 20:50:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 refused',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(448,'448',NULL,1,'2019-12-20 20:50:23','2019-12-20 20:50:23',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1702-0027 signed','2019-12-20 20:50:23','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1702-0027 signed',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(449,'449',NULL,1,'2019-12-21 17:18:22','2019-12-21 17:18:22',40,'AC_BOM_CLOSE','BOM disabled','2019-12-21 17:18:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM disabled',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(450,'450',NULL,1,'2019-12-21 17:18:38','2019-12-21 17:18:38',40,'AC_MEMBER_RESILIATE','Member Vick Smith terminated','2019-12-21 17:18:38','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith terminated\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(451,'451',NULL,1,'2019-12-21 19:46:33','2019-12-21 19:46:33',40,'AC_PROJECT_CREATE','Project PJ1912-0005 created','2019-12-21 19:46:33','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 created\nProject: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(452,'452',NULL,1,'2019-12-21 19:47:03','2019-12-21 19:47:03',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:03','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(453,'453',NULL,1,'2019-12-21 19:47:24','2019-12-21 19:47:24',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:24','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(454,'454',NULL,1,'2019-12-21 19:47:52','2019-12-21 19:47:52',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:47:52','2021-04-15 10:22:55',12,NULL,10,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(455,'455',NULL,1,'2019-12-21 19:48:06','2019-12-21 19:48:06',40,'AC_PROJECT_MODIFY','Project PJ1912-0005 modified','2019-12-21 19:48:06','2021-04-15 10:22:55',12,NULL,10,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0005 modified\nTask: PJ1912-0005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(456,'456',NULL,1,'2019-12-21 19:49:28','2019-12-21 19:49:28',40,'AC_PROJECT_CREATE','Project PJ1912-0006 created','2019-12-21 19:49:28','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 created\nProject: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(457,'457',NULL,1,'2019-12-21 19:52:12','2019-12-21 19:52:12',40,'AC_PROJECT_CREATE','Project PJ1912-0007 created','2019-12-21 19:52:12','2021-04-15 10:22:55',12,NULL,12,4,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0007 created\nProject: PJ1912-0007',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(458,'458',NULL,1,'2019-12-21 19:53:21','2019-12-21 19:53:21',40,'AC_PROJECT_CREATE','Project PJ1912-0008 created','2019-12-21 19:53:21','2021-04-15 10:22:55',12,NULL,13,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0008 created\nProject: PJ1912-0008',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(459,'459',NULL,1,'2019-12-21 19:53:42','2019-12-21 19:53:42',40,'AC_PROJECT_MODIFY','Project PJ1912-0008 modified','2019-12-21 19:53:42','2021-04-15 10:22:55',12,NULL,13,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0008 modified\nTask: PJ1912-0008',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(460,'460',NULL,1,'2019-12-21 19:55:23','2019-12-21 19:55:23',40,'AC_PROJECT_MODIFY','Project PJ1912-0006 modified','2019-12-21 19:55:23','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 modified\nTask: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(461,'461',NULL,1,'2019-12-21 20:10:21','2019-12-21 20:10:21',40,'AC_PROJECT_MODIFY','Project PJ1912-0006 modified','2019-12-21 20:10:21','2021-04-15 10:22:55',12,NULL,11,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PJ1912-0006 modified\nTask: PJ1912-0006',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(462,'462',NULL,1,'2019-12-11 10:00:00','2019-12-11 10:00:00',5,'AC_RDV','Meeting with all employees','2019-12-21 20:29:32','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(463,'463',NULL,1,'2019-12-06 00:00:00',NULL,11,'AC_INT','Intervention on customer site','2019-12-21 20:30:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(464,'464',NULL,1,'2019-12-23 14:16:59','2019-12-23 14:16:59',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2019-12-23 14:16:59','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(465,'465',NULL,1,'2019-12-23 14:17:18','2019-12-23 14:17:18',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2019-12-23 14:17:18','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(466,'466',NULL,1,'2019-11-23 14:25:00',NULL,50,'AC_OTH','Test','2019-12-23 17:25:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,-1,'',NULL,NULL,'18/11 17h06 : Message laissé. Me rappeler pour m'en dire plus. 
\r\n
\r\n20/11 10h17 "A rappeler suite au msg laissé le 14/11, dit que c'est urgent"
\r\n12h22 : message laissé. Je lui envoie un sms
\r\n
\r\n"Déclaration de sinistre originale" : constat de ce qui s'est passé.
\r\nElle envoie le chèque de solde dès demain.
\r\n
\r\n3/12 : Elle préfère avoir plus d'infos sur le sinistre pour l'assurance.
\r\nCourrier envoyé le 4/12/19 par mail et par courrier postal
\r\n
\r\n6/12 15h02 : ont obtenu le feu vert de l'assurance.
\r\nOn bloque 16/12 PM à partir de 14h30. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(467,'467',NULL,1,'2020-01-01 14:35:47','2020-01-01 14:35:47',40,'AC_MEMBER_VALIDATE','Adhérent aze aze validé','2020-01-01 14:35:47','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent aze aze validé\nAdhérent: aze aze\nType: Board members',5,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(468,'468',NULL,1,'2020-01-01 14:50:59','2020-01-01 14:50:59',40,'AC_MEMBER_VALIDATE','Adhérent azr azr validé','2020-01-01 14:50:59','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azr azr validé\nAdhérent: azr azr\nType: Board members',6,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(469,'469',NULL,1,'2020-01-01 15:00:16','2020-01-01 15:00:16',40,'AC_MEMBER_VALIDATE','Adhérent azt azt validé','2020-01-01 15:00:16','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azt azt validé\nAdhérent: azt azt\nType: Board members',7,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(470,'470',NULL,1,'2020-01-01 15:08:20','2020-01-01 15:08:20',40,'AC_MEMBER_VALIDATE','Adhérent azu azu validé','2020-01-01 15:08:20','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azu azu validé\nAdhérent: azu azu\nType: Board members',8,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(471,'471',NULL,1,'2020-01-01 15:27:24','2020-01-01 15:27:24',40,'AC_MEMBER_VALIDATE','Adhérent azi azi validé','2020-01-01 15:27:24','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azi azi validé\nAdhérent: azi azi\nType: Board members',9,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(472,'472',NULL,1,'2020-01-01 15:36:29','2020-01-01 15:36:29',40,'AC_MEMBER_VALIDATE','Adhérent azo azo validé','2020-01-01 15:36:29','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azo azo validé\nAdhérent: azo azo\nType: Board members',10,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(473,'473',NULL,1,'2020-01-01 15:44:25','2020-01-01 15:44:25',40,'AC_MEMBER_VALIDATE','Adhérent azp azp validé','2020-01-01 15:44:25','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azp azp validé\nAdhérent: azp azp\nType: Board members',11,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(478,'478',NULL,1,'2020-01-01 16:52:32','2020-01-01 16:52:32',40,'AC_MEMBER_VALIDATE','Adhérent azq azq validé','2020-01-01 16:52:32','2021-04-15 10:22:55',NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0,-1,'',NULL,NULL,'Auteur: \nAdhérent azq azq validé\nAdhérent: azq azq\nType: Board members',12,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(483,'483',NULL,1,'2020-01-01 17:49:05','2020-01-01 17:49:05',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 17:49:05','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(484,'484',NULL,1,'2020-01-01 17:50:41','2020-01-01 17:50:41',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 17:50:41','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',23,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(485,'485',NULL,1,'2020-01-01 17:50:44','2020-01-01 17:50:44',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 17:50:44','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',23,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(486,'486',NULL,1,'2020-01-01 17:51:22','2020-01-01 17:51:22',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-01 17:51:22','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(487,'487',NULL,1,'2020-01-01 20:17:00','2020-01-01 20:17:00',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 20:17:00','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(488,'488',NULL,1,'2020-01-01 20:17:46','2020-01-01 20:17:46',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:17:46','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',24,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(489,'489',NULL,1,'2020-01-01 20:17:51','2020-01-01 20:17:51',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:17:51','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',24,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(490,'490',NULL,1,'2020-01-01 20:20:22','2020-01-01 20:20:22',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:20:22','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',26,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(491,'491',NULL,1,'2020-01-01 20:20:31','2020-01-01 20:20:31',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:20:31','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',26,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(492,'492',NULL,1,'2020-01-01 20:21:35','2020-01-01 20:21:35',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-01 20:21:35','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(493,'493',NULL,1,'2020-01-01 20:21:42','2020-01-01 20:21:42',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-01 20:21:42','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(494,'494',NULL,1,'2020-01-01 20:21:55','2020-01-01 20:21:55',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0001 validated','2020-01-01 20:21:55','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 validated',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(495,'495',NULL,1,'2020-01-01 20:23:02','2020-01-01 20:23:02',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0007 validated','2020-01-01 20:23:02','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 validated',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(496,'496',NULL,1,'2020-01-01 20:23:17','2020-01-01 20:23:17',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 20:23:17','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(497,'497',NULL,1,'2020-01-01 20:25:36','2020-01-01 20:25:36',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI2001-0007 changed to paid','2020-01-01 20:25:36','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 changed to paid',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(498,'498',NULL,1,'2020-01-01 20:51:37','2020-01-01 20:51:37',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SA2001-0002 validated','2020-01-01 20:51:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0002 validated',30,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(499,'499',NULL,1,'2020-01-01 20:51:48','2020-01-01 20:51:48',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0002 changed to paid','2020-01-01 20:51:48','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0002 changed to paid',30,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(500,'500',NULL,1,'2020-01-01 21:02:39','2020-01-01 21:02:39',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:02:39','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(501,'501',NULL,1,'2020-01-01 21:03:01','2020-01-01 21:03:01',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:03:01','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(502,'502',NULL,1,'2020-01-01 21:11:10','2020-01-01 21:11:10',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:11:10','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(503,'503',NULL,1,'2020-01-01 21:20:07','2020-01-01 21:20:07',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 21:20:07','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(504,'504',NULL,1,'2020-01-01 21:21:28','2020-01-01 21:21:28',40,'AC_BILL_SUPPLIER_PAYED','Invoice SI2001-0007 changed to paid','2020-01-01 21:21:28','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0007 changed to paid',28,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(505,'505',NULL,1,'2020-01-01 22:06:30','2020-01-01 22:06:30',40,'AC_BILL_SUPPLIER_PAYED','Invoice SA2001-0001 changed to paid','2020-01-01 22:06:31','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SA2001-0001 changed to paid',27,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(506,'506',NULL,1,'2020-01-01 23:54:16','2020-01-01 23:54:16',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-01 23:54:16','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(507,'507',NULL,1,'2020-01-02 20:49:34','2020-01-02 20:49:34',40,'AC_BILL_PAYED','Invoice FA1601-0024 changed to paid','2020-01-02 20:49:34','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1601-0024 changed to paid',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(508,'508',NULL,1,'2020-01-02 23:02:35','2020-01-02 23:02:35',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-02 23:02:35','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(509,'509',NULL,1,'2020-01-02 23:45:01','2020-01-02 23:45:01',40,'AC_BOM_REOPEN','BOM reopen','2020-01-02 23:45:01','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM reopen',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(511,'511',NULL,1,'2020-01-02 23:57:42','2020-01-02 23:57:42',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-02 23:57:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(512,'512',NULL,1,'2020-01-03 13:33:54','2020-01-03 13:33:54',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-03 13:33:54','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(513,'513',NULL,1,'2020-01-03 13:34:11','2020-01-03 13:34:11',40,'AC_BOM_VALIDATE','BOM validated','2020-01-03 13:34:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(514,'514',NULL,1,'2020-01-03 13:35:45','2020-01-03 13:35:45',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-03 13:35:45','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',18,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(515,'515',NULL,1,'2020-01-03 14:10:41','2020-01-03 14:10:41',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-03 14:10:41','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',18,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(516,'516',NULL,1,'2020-01-06 00:39:58','2020-01-06 00:39:58',40,'AC_COMPANY_CREATE','Patient créé','2020-01-06 00:39:58','2021-04-15 10:22:55',12,NULL,NULL,29,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nPatient créé',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(517,'517',NULL,1,'2020-01-06 00:49:06','2020-01-06 00:49:06',40,'AC_BILL_SUPPLIER_UNVALIDATE','Invoice SI2001-0006 go back to draft status','2020-01-06 00:49:06','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 go back to draft status',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(518,'518',NULL,1,'2020-01-06 06:50:05','2020-01-06 06:50:05',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-06 06:50:05','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(519,'519',NULL,1,'2020-01-06 20:52:28','2020-01-06 20:52:28',40,'AC_OTH_AUTO','Consultation 2 recorded (Patient)','2020-01-06 20:52:28','2021-04-15 10:22:55',12,NULL,NULL,29,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Consultation 2 recorded (Patient)\nAuthor: admin',2,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(520,'520',NULL,1,'2020-01-07 20:25:02','2020-01-07 20:25:02',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 20:25:02','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(521,'521',NULL,1,'2020-01-07 21:12:37','2020-01-07 21:12:37',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:12:37','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(522,'522',NULL,1,'2020-01-07 21:13:00','2020-01-07 21:13:00',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:13:00','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(523,'523',NULL,1,'2020-01-07 21:13:49','2020-01-07 21:13:49',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:13:49','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(524,'524',NULL,1,'2020-01-07 21:46:58','2020-01-07 21:46:58',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:46:58','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(525,'525',NULL,1,'2020-01-07 21:52:34','2020-01-07 21:52:34',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:52:34','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(526,'526',NULL,1,'2020-01-07 21:53:44','2020-01-07 21:53:44',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:53:44','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(527,'527',NULL,1,'2020-01-07 21:53:58','2020-01-07 21:53:58',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:53:58','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(528,'528',NULL,1,'2020-01-07 21:54:12','2020-01-07 21:54:12',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 21:54:12','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(529,'529',NULL,1,'2020-01-07 22:00:55','2020-01-07 22:00:55',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 22:00:55','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(530,'530',NULL,1,'2020-01-07 22:39:52','2020-01-07 22:39:52',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 22:39:52','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(531,'531',NULL,1,'2020-01-07 23:09:04','2020-01-07 23:09:04',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:09:04','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(532,'532',NULL,1,'2020-01-07 23:39:09','2020-01-07 23:39:09',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1909-0033 signed','2020-01-07 23:39:09','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 signed',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(533,'533',NULL,1,'2020-01-07 23:43:06','2020-01-07 23:43:06',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR1909-0033 signed','2020-01-07 23:43:06','2021-04-15 10:22:55',12,NULL,6,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR1909-0033 signed',34,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(534,'534',NULL,1,'2020-01-07 23:50:40','2020-01-07 23:50:40',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:50:40','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(535,'535',NULL,1,'2020-01-07 23:51:27','2020-01-07 23:51:27',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-07 23:51:27','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(536,'536',NULL,1,'2020-01-08 00:25:23','2020-01-08 00:25:23',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:25:23','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(537,'537',NULL,1,'2020-01-08 00:25:43','2020-01-08 00:25:43',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:25:43','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(538,'538',NULL,1,'2020-01-08 00:29:24','2020-01-08 00:29:24',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:29:24','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(539,'539',NULL,1,'2020-01-08 00:29:43','2020-01-08 00:29:43',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 00:29:43','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(540,'540',NULL,1,'2020-01-08 01:09:15','2020-01-08 01:09:15',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:09:15','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(541,'541',NULL,1,'2020-01-08 01:15:02','2020-01-08 01:15:02',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:15:02','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(542,'542',NULL,1,'2020-01-08 01:17:16','2020-01-08 01:17:16',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 01:17:16','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(543,'543',NULL,1,'2020-01-08 05:31:44','2020-01-08 05:31:44',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 05:31:44','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(544,'544',NULL,1,'2020-01-08 05:39:46','2020-01-08 05:39:46',40,'AC_BOM_CLOSE','BOM disabled','2020-01-08 05:39:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM disabled',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(545,'545',NULL,1,'2020-01-08 05:39:50','2020-01-08 05:39:50',40,'AC_BOM_REOPEN','BOM reopen','2020-01-08 05:39:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM reopen',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(546,'546',NULL,1,'2020-01-08 06:06:50','2020-01-08 06:06:50',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 06:06:50','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',14,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(547,'547',NULL,1,'2020-01-08 19:34:53','2020-01-08 19:34:53',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-08 19:34:53','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(548,'548',NULL,1,'2020-01-08 19:40:27','2020-01-08 19:40:27',40,'AC_PRODUCT_MODIFY','Product APPLEPIE modified','2020-01-08 19:40:27','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct APPLEPIE modified',4,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(549,'549',NULL,1,'2020-01-08 19:40:46','2020-01-08 19:40:46',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-08 19:40:46','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(550,'550',NULL,1,'2020-01-08 19:40:59','2020-01-08 19:40:59',40,'AC_BOM_VALIDATE','BOM validated','2020-01-08 19:40:59','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(551,'551',NULL,1,'2020-01-08 19:41:11','2020-01-08 19:41:11',40,'AC_BOM_UNVALIDATE','BOM unvalidated','2020-01-08 19:41:11','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM unvalidated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(552,'552',NULL,1,'2020-01-08 19:41:49','2020-01-08 19:41:49',40,'AC_BOM_VALIDATE','BOM validated','2020-01-08 19:41:49','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',6,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(553,'553',NULL,1,'2020-01-08 20:12:55','2020-01-08 20:12:55',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-08 20:12:55','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(554,'554',NULL,1,'2020-01-08 20:21:22','2020-01-08 20:21:22',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 20:21:22','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(555,'555',NULL,1,'2020-01-08 20:41:19','2020-01-08 20:41:19',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-08 20:41:19','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',28,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(556,'556',NULL,1,'2020-01-08 22:25:19','2020-01-08 22:25:19',40,'AC_BOM_DELETE','BOM deleted','2020-01-08 22:25:19','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM deleted',7,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(557,'557',NULL,1,'2020-01-13 15:11:07','2020-01-13 15:11:07',40,'AC_MO_DELETE','MO_DELETEInDolibarr','2020-01-13 15:11:07','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO_DELETEInDolibarr',25,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(558,'558',NULL,1,'2020-01-13 15:11:54','2020-01-13 15:11:54',40,'AC_MRP_MO_VALIDATE','MO validated','2020-01-13 15:11:54','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO validated',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(559,'559',NULL,1,'2020-01-13 15:13:19','2020-01-13 15:13:19',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:13:19','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(560,'560',NULL,1,'2020-01-13 15:14:15','2020-01-13 15:14:15',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:14:15','2021-04-15 10:22:55',12,NULL,6,26,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',24,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(561,'561',NULL,1,'2020-01-13 15:29:30','2020-01-13 15:29:30',40,'AC_MRP_MO_PRODUCED','MO produced','2020-01-13 15:29:30','2021-04-15 10:22:55',12,NULL,7,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMO produced',5,'mo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(562,'562',NULL,1,'2020-01-13 17:19:24','2020-01-13 17:19:24',40,'AC_COMPANY_CREATE','Third party Italo created','2020-01-13 17:19:24','2021-04-15 10:22:55',12,NULL,NULL,30,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nThird party Italo created',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(563,'563',NULL,1,'2020-01-15 16:27:15','2020-01-15 16:27:15',40,'AC_PROJECT_MODIFY','Project RMLL modified','2020-01-15 16:27:15','2021-04-15 10:22:55',12,NULL,5,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject RMLL modified\nTask: RMLL',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(564,'564',NULL,1,'2020-01-15 16:40:50','2020-01-15 16:40:50',40,'AC_PROJECT_MODIFY','Project PROJINDIAN modified','2020-01-15 16:40:50','2021-04-15 10:22:55',12,NULL,3,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProject PROJINDIAN modified\nTask: PROJINDIAN',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(565,'565',NULL,1,'2020-01-16 02:22:16','2020-01-16 02:22:16',40,'AC_BILL_VALIDATE','Invoice AC2001-0001 validated','2020-01-16 02:22:16','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0001 validated',221,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(566,'566',NULL,1,'2020-01-16 02:22:24','2020-01-16 02:22:24',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0001 go back to draft status','2020-01-16 02:22:24','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0001 go back to draft status',221,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(567,'567',NULL,1,'2020-01-16 02:33:27','2020-01-16 02:33:27',40,'AC_BILL_VALIDATE','Invoice AC2001-0002 validated','2020-01-16 02:33:27','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0002 validated',224,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(568,'568',NULL,1,'2020-01-16 02:36:48','2020-01-16 02:36:48',40,'AC_BILL_PAYED','Invoice AC2001-0002 changed to paid','2020-01-16 02:36:48','2021-04-15 10:22:55',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0002 changed to paid',224,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(569,'569',NULL,1,'2020-01-16 02:42:12','2020-01-16 02:42:12',40,'AC_ORDER_CLASSIFY_BILLED','Order CO7001-0020 classified billed','2020-01-16 02:42:12','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified billed',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(570,'570',NULL,1,'2020-01-16 02:42:17','2020-01-16 02:42:17',40,'AC_ORDER_CLOSE','Order CO7001-0020 classified delivered','2020-01-16 02:42:17','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified delivered',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(571,'571',NULL,1,'2020-01-16 02:42:56','2020-01-16 02:42:56',40,'AC_ORDER_CLOSE','Order CO7001-0020 classified delivered','2020-01-16 02:42:56','2021-04-15 10:22:55',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder CO7001-0020 classified delivered',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(572,'572',NULL,1,'2020-01-16 18:05:43','2020-01-16 18:05:43',40,'AC_BILL_SUPPLIER_VALIDATE','Invoice SI2001-0006 validated','2020-01-16 18:05:43','2021-04-15 10:22:55',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice SI2001-0006 validated',22,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(573,'573',NULL,1,'2020-01-17 14:54:18','2020-01-17 14:54:18',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-17 14:54:18','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(574,'574',NULL,1,'2020-01-17 15:22:28','2020-01-17 15:22:28',40,'AC_PRODUCT_MODIFY','Product PINKDRESS modified','2020-01-17 15:22:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PINKDRESS modified',1,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(575,'575',NULL,1,'2020-01-19 14:22:27','2020-01-19 14:22:27',40,'AC_PROPAL_VALIDATE','Proposal PR2001-0034 validated','2020-01-19 14:22:27','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 validated',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(576,'576',NULL,1,'2020-01-19 14:22:34','2020-01-19 14:22:34',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR2001-0034 signed','2020-01-19 14:22:34','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 signed',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(577,'577',NULL,1,'2020-01-19 14:24:22','2020-01-19 14:24:22',40,'AC_PROPAL_VALIDATE','Proposal PR2001-0034 validated','2020-01-19 14:24:22','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 validated',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(578,'578',NULL,1,'2020-01-19 14:24:27','2020-01-19 14:24:27',40,'AC_PROPAL_CLOSE_SIGNED','Proposal PR2001-0034 signed','2020-01-19 14:24:27','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProposal PR2001-0034 signed',36,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(579,'579',NULL,1,'2020-01-19 14:51:43','2020-01-19 14:51:43',40,'AC_BILL_VALIDATE','Invoice AC2001-0003 validated','2020-01-19 14:51:43','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0003 validated',227,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(580,'580',NULL,1,'2020-01-19 14:51:48','2020-01-19 14:51:48',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0003 go back to draft status','2020-01-19 14:51:48','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0003 go back to draft status',227,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(581,'581',NULL,1,'2020-01-19 15:01:26','2020-01-19 15:01:26',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:01:26','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(582,'582',NULL,1,'2020-01-19 15:04:37','2020-01-19 15:04:37',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0004 go back to draft status','2020-01-19 15:04:37','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 go back to draft status',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(583,'583',NULL,1,'2020-01-19 15:04:53','2020-01-19 15:04:53',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:04:53','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(584,'584',NULL,1,'2020-01-19 15:09:14','2020-01-19 15:09:14',40,'AC_BILL_UNVALIDATE','Invoice AC2001-0004 go back to draft status','2020-01-19 15:09:14','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 go back to draft status',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(585,'585',NULL,1,'2020-01-19 15:13:07','2020-01-19 15:13:07',40,'AC_BILL_VALIDATE','Invoice AC2001-0004 validated','2020-01-19 15:13:07','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice AC2001-0004 validated',228,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(586,'586',NULL,1,'2020-01-20 12:20:11','2020-01-20 12:20:11',40,'AC_ORDER_SUPPLIER_CREATE','Order (PROV14) created','2020-01-20 12:20:11','2021-04-15 10:22:55',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nOrder (PROV14) created',14,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(588,'588',NULL,1,'2020-01-21 01:02:14','2020-01-21 01:02:14',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 2 for member Vick Smith added','2020-01-21 01:02:14','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 2 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2013 - 07/17/2014',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(589,'589',NULL,1,'2020-01-21 10:22:37','2020-01-21 10:22:37',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 3 for member Vick Smith added','2020-01-21 10:22:37','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 3 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2017 - 07/17/2018',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(590,'590',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 4 for member Vick Smith added','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 4 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2017 - 07/17/2018',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(591,'591',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_BILL_VALIDATE','Invoice FA1707-0026 validated','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1707-0026 validated',229,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(592,'592',NULL,1,'2020-01-21 10:23:17','2020-01-21 10:23:17',40,'AC_BILL_PAYED','Invoice FA1707-0026 changed to paid','2020-01-21 10:23:17','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1707-0026 changed to paid',229,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(593,'593',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 5 for member Vick Smith added','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 5 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2018 - 07/17/2019',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(594,'594',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_BILL_VALIDATE','Invoice FA1807-0027 validated','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1807-0027 validated',230,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(595,'595',NULL,1,'2020-01-21 10:23:28','2020-01-21 10:23:28',40,'AC_BILL_PAYED','Invoice FA1807-0027 changed to paid','2020-01-21 10:23:28','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1807-0027 changed to paid',230,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(596,'596',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_MEMBER_SUBSCRIPTION_CREATE','Subscription 6 for member Vick Smith added','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nSubscription 6 for member Vick Smith added\nMember: Vick Smith\nType: 2\nAmount: 50\nPeriod: 07/18/2019 - 07/17/2020',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(597,'597',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_BILL_VALIDATE','Invoice FA1907-0028 validated','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1907-0028 validated',231,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(598,'598',NULL,1,'2020-01-21 10:23:49','2020-01-21 10:23:49',40,'AC_BILL_PAYED','Invoice FA1907-0028 changed to paid','2020-01-21 10:23:49','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nInvoice FA1907-0028 changed to paid',231,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(599,'599',NULL,1,'2020-01-21 10:30:27','2020-01-21 10:30:27',40,'AC_MEMBER_MODIFY','Member Pierre Curie modified','2020-01-21 10:30:27','2021-04-15 10:22:55',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Pierre Curie modified\nMember: Pierre Curie\nType: Standard members',2,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(600,'600',NULL,1,'2020-01-21 10:30:36','2020-01-21 10:30:36',40,'AC_MEMBER_MODIFY','Member doe john modified','2020-01-21 10:30:36','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember doe john modified\nMember: doe john\nType: Standard members',3,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(601,'601',NULL,1,'2020-01-21 10:30:42','2020-01-21 10:30:42',40,'AC_MEMBER_MODIFY','Member smith smith modified','2020-01-21 10:30:42','2021-04-15 10:22:55',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember smith smith modified\nMember: smith smith\nType: Standard members',4,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(602,'602',NULL,1,'2020-01-21 10:30:57','2020-01-21 10:30:57',40,'AC_MEMBER_MODIFY','Member Vick Smith modified','2020-01-21 10:30:57','2021-04-15 10:22:55',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nMember Vick Smith modified\nMember: Vick Smith\nType: Standard members',1,'member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(603,'603',NULL,1,'2020-06-12 10:00:00','2020-06-12 11:30:00',5,'AC_RDV','Meetings','2020-06-12 19:26:44','2021-04-15 10:22:55',12,NULL,3,NULL,NULL,0,12,1,NULL,0,0,-1,'Room 24',5400,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(604,'604',NULL,1,'2020-06-01 10:00:00','2020-06-01 10:27:00',1,'AC_TEL','Called Mr X','2020-06-12 19:28:13','2021-04-15 10:22:55',12,12,3,NULL,NULL,0,12,1,NULL,0,0,100,NULL,1620,NULL,'Customer ask another call.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(605,'605',NULL,1,'2020-04-15 05:00:00','2020-04-15 06:00:00',5,'AC_RDV','Meet A2','2021-04-15 07:36:31','2021-04-15 10:36:31',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,0,'',3600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(606,'606',NULL,1,'2021-04-15 08:38:02','2021-04-15 08:38:02',40,'AC_PRODUCT_CREATE','Product PRODSER created','2021-04-15 08:38:02','2021-04-15 11:38:02',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nProduct PRODSER created',31,'product',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL),(607,'607',NULL,1,'2022-02-07 13:54:11','2022-02-07 13:54:11',40,'AC_BOM_VALIDATE','BOM validated','2022-02-07 13:54:11','2022-02-07 13:54:11',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,-1,'',NULL,NULL,'Author: admin\nBOM validated',7,'bom',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'default',NULL,NULL,0,0,NULL); /*!40000 ALTER TABLE `llx_actioncomm` ENABLE KEYS */; UNLOCK TABLES; @@ -383,7 +385,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_actioncomm_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -408,15 +410,15 @@ 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 utf8mb3_unicode_ci NOT NULL, + `typeremind` varchar(32) NOT NULL, `fk_user` int(11) NOT NULL, `offsetvalue` int(11) NOT NULL, - `offsetunit` varchar(1) COLLATE utf8mb3_unicode_ci NOT NULL, + `offsetunit` varchar(1) NOT NULL, `status` int(11) NOT NULL DEFAULT 0, `entity` int(11) NOT NULL DEFAULT 1, `fk_actioncomm` int(11) NOT NULL, `fk_email_template` int(11) DEFAULT NULL, - `lasterror` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lasterror` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_actioncomm_reminder_unique` (`fk_user`,`typeremind`,`offsetvalue`,`offsetunit`,`fk_actioncomm`), KEY `idx_actioncomm_reminder_rowid` (`rowid`), @@ -445,9 +447,9 @@ 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 utf8mb3_unicode_ci NOT NULL, + `element_type` varchar(50) NOT NULL, `fk_element` int(11) NOT NULL, - `answer_status` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `answer_status` varchar(50) DEFAULT NULL, `mandatory` smallint(6) DEFAULT NULL, `transparency` smallint(6) DEFAULT 1, PRIMARY KEY (`rowid`), @@ -475,47 +477,49 @@ DROP TABLE IF EXISTS `llx_adherent`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_adherent` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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, + `ref_ext` varchar(128) DEFAULT NULL, + `civility` varchar(6) DEFAULT NULL, + `lastname` varchar(50) DEFAULT NULL, + `firstname` varchar(50) DEFAULT NULL, + `login` varchar(50) DEFAULT NULL, + `pass` varchar(50) DEFAULT NULL, + `pass_crypted` varchar(128) DEFAULT NULL, `fk_adherent_type` int(11) NOT NULL, - `morphy` varchar(3) COLLATE utf8mb3_unicode_ci NOT NULL, - `societe` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `morphy` varchar(3) NOT NULL, + `societe` varchar(128) DEFAULT NULL, `fk_soc` int(11) 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, + `address` text DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `state_id` int(11) DEFAULT NULL, `country` int(11) DEFAULT NULL, - `email` varchar(255) COLLATE 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, + `email` varchar(255) DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `socialnetworks` text DEFAULT NULL, + `phone` varchar(30) DEFAULT NULL, + `phone_perso` varchar(30) DEFAULT NULL, + `phone_mobile` varchar(30) DEFAULT NULL, `birth` date DEFAULT NULL, - `photo` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `photo` varchar(255) DEFAULT NULL, `statut` smallint(6) NOT NULL DEFAULT 0, `public` smallint(6) NOT NULL DEFAULT 0, `datefin` datetime DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `default_lang` varchar(6) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `datevalid` datetime DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_author` int(11) DEFAULT NULL, `fk_user_mod` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `canvas` varchar(32) COLLATE 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, + `canvas` varchar(32) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `gender` varchar(10) DEFAULT NULL, + `ip` varchar(250) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_adherent_ref` (`ref`,`entity`), UNIQUE KEY `uk_adherent_login` (`login`,`entity`), @@ -532,7 +536,7 @@ CREATE TABLE `llx_adherent` ( LOCK TABLES `llx_adherent` WRITE; /*!40000 ALTER TABLE `llx_adherent` DISABLE KEYS */; -INSERT INTO `llx_adherent` VALUES (1,'1',1,NULL,NULL,'Smith','Vick','vsmith','vsx1n8tf',NULL,2,'phy',NULL,10,NULL,NULL,NULL,NULL,102,'vsmith@email.com',NULL,'[]',NULL,NULL,NULL,'1960-07-07','person5.jpeg',0,0,'2014-07-09 00:00:00',NULL,NULL,'2012-07-10 15:12:56','2012-07-08 23:50:00','2021-04-15 10:22:54',1,12,12,NULL,NULL,NULL,'woman'),(2,'2',1,NULL,NULL,'Curie','Pierre','pcurie','pcuriedolibarr',NULL,2,'phy',NULL,12,NULL,NULL,NULL,NULL,NULL,'pcurie@example.com',NULL,'[]',NULL,NULL,NULL,NULL,'pierrecurie.jpg',1,1,'2020-07-17 00:00:00',NULL,NULL,'2012-07-10 15:03:32','2012-07-10 15:03:09','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL),(3,'3',1,NULL,NULL,'john','doe','john','8bs6gty5',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,1,'johndoe@email.com',NULL,'[]',NULL,NULL,NULL,NULL,'person9.jpeg',1,0,'2014-07-17 00:00:00',NULL,NULL,'2013-07-18 21:28:00','2013-07-18 21:10:09','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL),(4,'4',1,NULL,NULL,'smith','smith','Smith','s6hjp10f',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,11,'smith@email.com',NULL,'[]',NULL,NULL,NULL,NULL,'person2.jpeg',1,0,'2018-07-17 00:00:00',NULL,NULL,'2013-07-18 21:27:52','2013-07-18 21:27:44','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL); +INSERT INTO `llx_adherent` VALUES (1,'1',1,NULL,NULL,'Smith','Vick','vsmith','vsx1n8tf',NULL,2,'phy',NULL,10,NULL,NULL,NULL,NULL,102,'vsmith@email.com',NULL,'[]',NULL,NULL,NULL,'1960-07-07','person5.jpeg',0,0,'2014-07-09 00:00:00',NULL,NULL,NULL,'2012-07-10 15:12:56','2012-07-08 23:50:00','2021-04-15 10:22:54',1,12,12,NULL,NULL,NULL,'woman',NULL),(2,'2',1,NULL,NULL,'Curie','Pierre','pcurie','pcuriedolibarr',NULL,2,'phy',NULL,12,NULL,NULL,NULL,NULL,NULL,'pcurie@example.com',NULL,'[]',NULL,NULL,NULL,NULL,'pierrecurie.jpg',1,1,'2020-07-17 00:00:00',NULL,NULL,NULL,'2012-07-10 15:03:32','2012-07-10 15:03:09','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL,NULL),(3,'3',1,NULL,NULL,'john','doe','john','8bs6gty5',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,1,'johndoe@email.com',NULL,'[]',NULL,NULL,NULL,NULL,'person9.jpeg',1,0,'2014-07-17 00:00:00',NULL,NULL,NULL,'2013-07-18 21:28:00','2013-07-18 21:10:09','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL,NULL),(4,'4',1,NULL,NULL,'smith','smith','Smith','s6hjp10f',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,11,'smith@email.com',NULL,'[]',NULL,NULL,NULL,NULL,'person2.jpeg',1,0,'2018-07-17 00:00:00',NULL,NULL,NULL,'2013-07-18 21:27:52','2013-07-18 21:27:44','2021-04-15 10:22:54',1,12,1,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_adherent` ENABLE KEYS */; UNLOCK TABLES; @@ -547,10 +551,10 @@ 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 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, + `aaa` varchar(255) DEFAULT NULL, + `sssss` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extradatamember` varchar(10) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_adherent_options` (`fk_object`), KEY `idx_adherent_extrafields` (`fk_object`) @@ -579,14 +583,15 @@ 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 utf8mb3_unicode_ci NOT NULL, - `subscription` varchar(3) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '1', + `libelle` varchar(50) NOT NULL, + `subscription` varchar(3) NOT NULL DEFAULT '1', `amount` double(24,8) DEFAULT NULL, - `vote` varchar(3) COLLATE 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, + `caneditamount` int(11) DEFAULT 0, + `vote` varchar(3) NOT NULL DEFAULT '1', + `note` text DEFAULT NULL, + `mail_valid` text DEFAULT NULL, + `morphy` varchar(3) DEFAULT NULL, + `duration` varchar(6) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_adherent_type_libelle` (`libelle`,`entity`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -598,7 +603,7 @@ CREATE TABLE `llx_adherent_type` ( LOCK TABLES `llx_adherent_type` WRITE; /*!40000 ALTER TABLE `llx_adherent_type` DISABLE KEYS */; -INSERT INTO `llx_adherent_type` VALUES (1,1,'2020-06-12 17:20:50',1,'Board members','1',NULL,'1','','','','1y'),(2,1,'2020-06-12 17:21:21',1,'Standard members','1',NULL,'1','','','','y'); +INSERT INTO `llx_adherent_type` VALUES (1,1,'2020-06-12 17:20:50',1,'Board members','1',NULL,0,'1','','','','1y'),(2,1,'2020-06-12 17:21:21',1,'Standard members','1',NULL,0,'1','','','','y'); /*!40000 ALTER TABLE `llx_adherent_type` ENABLE KEYS */; UNLOCK TABLES; @@ -613,8 +618,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `extradatamembertype` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extradatamembertype` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_adherent_type_extrafields` (`fk_object`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -640,11 +645,11 @@ 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 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, + `lang` varchar(5) NOT NULL DEFAULT '0', + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `email` text DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -668,22 +673,22 @@ 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 utf8mb3_unicode_ci NOT NULL, + `ref` varchar(128) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `fk_asset_model` int(11) DEFAULT NULL, `reversal_amount_ht` double(24,8) DEFAULT NULL, `acquisition_value_ht` double(24,8) NOT NULL, `fk_soc` int(11) DEFAULT NULL, - `note_public` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_private` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` mediumtext DEFAULT NULL, + `note_private` mediumtext DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `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, + `last_main_doc` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `status` int(11) NOT NULL, `recovered_vat` double(24,8) DEFAULT NULL, `reversal_date` date DEFAULT NULL, @@ -734,14 +739,14 @@ 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, + `asset` varchar(32) DEFAULT NULL, + `depreciation_asset` varchar(32) DEFAULT NULL, + `depreciation_expense` varchar(32) DEFAULT NULL, + `value_asset_sold` varchar(32) DEFAULT NULL, + `receivable_on_assignment` varchar(32) DEFAULT NULL, + `proceeds_from_sales` varchar(32) DEFAULT NULL, + `vat_collected` varchar(32) DEFAULT NULL, + `vat_deductible` varchar(32) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -775,9 +780,9 @@ 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, + `accelerated_depreciation` varchar(32) DEFAULT NULL, + `endowment_accelerated_depreciation` varchar(32) DEFAULT NULL, + `provision_accelerated_depreciation` varchar(32) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -810,13 +815,13 @@ DROP TABLE IF EXISTS `llx_asset_depreciation`; 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_mode` varchar(255) NOT NULL, + `ref` varchar(255) NOT NULL, `depreciation_date` datetime NOT NULL, `depreciation_ht` double(24,8) NOT NULL, `cumulative_depreciation_ht` double(24,8) NOT NULL, - `accountancy_code_debit` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `accountancy_code_credit` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_debit` varchar(32) DEFAULT NULL, + `accountancy_code_credit` varchar(32) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -932,7 +937,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_asset_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -957,17 +962,17 @@ DROP TABLE IF EXISTS `llx_asset_model`; 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, + `ref` varchar(128) NOT NULL, + `label` varchar(255) NOT NULL, `asset_type` smallint(6) NOT NULL, `fk_pays` int(11) DEFAULT 0, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` smallint(6) NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_asset_model` (`entity`,`ref`), @@ -1002,7 +1007,7 @@ 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, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_asset_model_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -1028,7 +1033,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_asset_type_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -1057,24 +1062,25 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `fk_account` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_rappro` int(11) DEFAULT NULL, - `fk_type` varchar(6) COLLATE 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, + `fk_type` varchar(6) DEFAULT NULL, + `num_releve` varchar(50) DEFAULT NULL, + `num_chq` varchar(50) DEFAULT NULL, `rappro` tinyint(4) DEFAULT 0, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bordereau` int(11) DEFAULT 0, - `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, + `banque` varchar(255) DEFAULT NULL, + `emetteur` varchar(255) DEFAULT NULL, + `author` varchar(40) DEFAULT NULL, + `numero_compte` varchar(32) DEFAULT NULL, `origin_id` int(11) DEFAULT NULL, - `origin_type` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `origin_type` varchar(64) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `amount_main_currency` double(24,8) DEFAULT NULL, + `position` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), KEY `idx_bank_datev` (`datev`), KEY `idx_bank_dateo` (`dateo`), @@ -1090,7 +1096,7 @@ CREATE TABLE `llx_bank` ( LOCK TABLES `llx_bank` WRITE; /*!40000 ALTER TABLE `llx_bank` DISABLE KEYS */; -INSERT INTO `llx_bank` VALUES (1,'2012-07-08 23:56:14','2021-07-11 17:49:28','2021-07-08','2021-07-08',2000.00000000,'(Initial balance)',1,NULL,1,'SOLD','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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); +INSERT INTO `llx_bank` VALUES (1,'2012-07-08 23:56:14','2022-12-11 21:23:22','2022-07-08','2022-07-08',2000.00000000,'(Initial balance)',1,NULL,1,'SOLD','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(2,'2012-07-09 00:00:24','2022-12-11 21:23:22','2022-07-09','2022-07-09',500.00000000,'(Initial balance)',2,NULL,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(3,'2012-07-10 13:33:42','2022-12-11 21:23:22','2022-07-10','2022-07-10',0.00000000,'(Solde initial)',3,NULL,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(5,'2013-07-18 20:50:24','2022-12-11 21:23:22','2022-07-08','2022-07-08',20.00000000,'(CustomerInvoicePayment)',1,1,NULL,'CB','201107',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(6,'2013-07-18 20:50:47','2022-12-11 21:23:22','2022-07-08','2022-07-08',10.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(8,'2013-08-01 03:34:11','2022-12-11 21:23:22','2022-08-15','2022-08-01',5.63000000,'(CustomerInvoicePayment)',1,1,1,'CB','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(12,'2013-08-05 23:11:37','2022-12-11 21:23:22','2022-08-12','2022-08-05',-10.00000000,'(SocialContributionPayment)',1,1,1,'VIR','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(13,'2013-08-06 20:33:54','2022-12-11 21:23:22','2022-08-06','2022-08-06',5.98000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(14,'2013-08-08 02:53:40','2022-12-11 21:23:22','2022-08-08','2022-08-08',26.10000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(15,'2013-08-08 02:55:58','2022-12-11 21:23:22','2022-08-08','2022-08-08',26.96000000,'(CustomerInvoicePayment)',1,1,1,'TIP','201211',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(16,'2014-12-09 15:28:44','2022-12-11 21:23:22','2022-12-09','2022-12-09',2.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(17,'2014-12-09 15:28:53','2022-12-11 21:23:22','2022-12-09','2022-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(18,'2014-12-09 17:35:55','2022-12-11 21:23:22','2022-12-09','2022-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(19,'2014-12-09 17:37:02','2022-12-11 21:23:22','2022-12-09','2022-12-09',2.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(20,'2014-12-09 18:35:07','2022-12-11 21:23:22','2022-12-09','2022-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(21,'2014-12-12 18:54:33','2022-02-07 13:37:54','2021-12-12','2021-12-12',1.00000000,'(CustomerInvoicePayment)',1,1,1,'TIP','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(22,'2015-03-06 16:48:16','2022-07-04 01:11:35','2022-03-06','2022-03-06',20.00000000,'(SubscriptionPayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(23,'2015-03-20 14:30:11','2022-07-04 01:11:35','2022-03-20','2022-03-20',10.00000000,'(SubscriptionPayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(24,'2016-03-02 19:57:58','2022-12-11 21:23:22','2022-07-09','2022-07-09',605.00000000,'(CustomerInvoicePayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'111',NULL,NULL,NULL,NULL,NULL,NULL,0),(26,'2016-03-02 20:01:39','2022-07-04 01:11:35','2022-03-19','2022-03-19',500.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(27,'2016-03-02 20:02:06','2022-07-04 01:11:35','2022-03-21','2022-03-21',400.00000000,'(CustomerInvoicePayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'ABC and Co',NULL,NULL,NULL,NULL,NULL,NULL,0),(28,'2016-03-03 19:22:32','2022-12-11 21:23:22','2022-10-03','2022-10-03',-400.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(29,'2016-03-03 19:23:16','2022-07-04 01:11:35','2022-03-10','2022-03-10',-300.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(30,'2018-01-22 18:56:34','2022-02-07 13:37:54','2022-01-22','2022-01-22',-900.00000000,'(SupplierInvoicePayment)',1,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(31,'2018-07-30 22:42:14','2022-12-11 21:23:22','2022-07-30','2022-07-30',0.00000000,'(Initial balance)',4,0,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(32,'2017-02-01 19:02:44','2022-02-07 13:37:54','2022-02-01','2022-02-01',-200.00000000,'(SupplierInvoicePayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(33,'2017-02-06 08:10:24','2022-07-04 01:11:35','2022-03-22','2022-03-22',150.00000000,'(CustomerInvoicePayment)',1,12,NULL,'CHQ',NULL,NULL,0,NULL,2,NULL,'Magic Food Store',NULL,NULL,NULL,NULL,NULL,NULL,0),(34,'2017-02-06 08:10:50','2022-07-04 01:11:35','2022-03-25','2022-03-25',140.00000000,'(CustomerInvoicePayment)',1,12,NULL,'PRE',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(36,'2017-02-16 02:22:09','2022-07-04 01:11:35','2022-02-16','2022-02-16',-1.00000000,'(ExpenseReportPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(37,'2017-02-21 16:07:43','2022-07-04 01:11:35','2022-02-21','2022-02-21',50.00000000,'(WithdrawalPayment)',1,12,NULL,'PRE',NULL,'T170201',0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(38,'2017-09-06 20:08:36','2022-12-11 21:23:22','2022-09-06','2022-09-06',10.00000000,'(DonationPayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(39,'2018-03-16 13:59:31','2022-07-04 01:11:35','2022-03-16','2022-03-16',10.00000000,'(CustomerInvoicePayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Indian SAS',NULL,'',NULL,NULL,NULL,NULL,0),(41,'2019-10-04 10:28:14','2022-02-07 13:37:54','2022-01-19','2022-01-19',5.63000000,'(CustomerInvoicePayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(42,'2019-10-08 13:18:50','2022-12-11 21:23:22','2022-10-08','2022-10-08',-1000.00000000,'Salary payment',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(43,'2019-12-26 01:48:30','2022-02-07 13:37:54','2021-12-25','2021-12-25',-5.00000000,'(SocialContributionPayment)',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(44,'2019-12-26 01:48:46','2022-02-07 13:37:54','2021-12-25','2021-12-25',-5.00000000,'(SocialContributionPayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(47,'2020-01-01 20:28:49','2022-02-07 13:37:54','2022-01-01','2022-01-01',304.69000000,'(SupplierInvoicePayment)',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(48,'2020-01-06 20:52:28','2022-02-07 13:37:54','2022-01-06','2022-01-06',10.00000000,'Patient payment',1,12,NULL,'CB',NULL,NULL,0,NULL,0,NULL,'Patient',NULL,'',NULL,NULL,NULL,NULL,0),(49,'2020-01-10 04:42:47','2022-02-07 13:37:54','2022-01-10','2022-01-10',-10.00000000,'Miscellaneous payment',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0),(50,'2020-01-16 02:36:48','2022-02-07 13:37:54','2022-01-16','2022-01-16',20.50000000,'(CustomerInvoicePayment)',4,12,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'Magic Food Store',NULL,'',NULL,NULL,NULL,NULL,0),(51,'2020-01-21 01:02:14','2022-12-11 21:23:22','2022-07-18','2022-07-18',50.00000000,'Subscription 2013',4,12,NULL,'CB',NULL,'12345',0,NULL,0,'Bank CBN',NULL,NULL,'',NULL,NULL,NULL,NULL,0),(52,'2020-01-21 10:22:37','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'Subscription 2017',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'smith smith',NULL,'',NULL,NULL,NULL,NULL,0),(53,'2020-01-21 10:23:17','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'(SubscriptionPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Pierre Curie',NULL,'',NULL,NULL,NULL,NULL,0),(54,'2020-01-21 10:23:28','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'(SubscriptionPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Pierre Curie',NULL,'',NULL,NULL,NULL,NULL,0),(55,'2020-01-21 10:23:49','2022-02-07 13:37:54','2022-01-21','2022-01-21',50.00000000,'(SubscriptionPayment)',4,12,NULL,'CB',NULL,NULL,0,NULL,0,NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,0); /*!40000 ALTER TABLE `llx_bank` ENABLE KEYS */; UNLOCK TABLES; @@ -1105,43 +1111,43 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(12) NOT NULL, + `label` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `bank` varchar(60) COLLATE 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, + `bank` varchar(60) DEFAULT NULL, + `code_banque` varchar(128) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + `bic` varchar(11) DEFAULT NULL, + `iban_prefix` varchar(34) DEFAULT NULL, + `country_iban` varchar(2) DEFAULT NULL, + `cle_iban` varchar(2) DEFAULT NULL, + `domiciliation` varchar(255) DEFAULT NULL, `pti_in_ctti` smallint(6) DEFAULT 0, `state_id` int(11) DEFAULT NULL, `fk_pays` int(11) NOT NULL, - `proprio` varchar(60) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `owner_address` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `proprio` varchar(60) DEFAULT NULL, + `owner_address` text DEFAULT NULL, `courant` smallint(6) NOT NULL DEFAULT 0, `clos` smallint(6) NOT NULL DEFAULT 0, `rappro` smallint(6) DEFAULT 1, - `url` varchar(128) COLLATE 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, + `url` varchar(128) DEFAULT NULL, + `account_number` varchar(32) DEFAULT NULL, + `accountancy_journal` varchar(20) DEFAULT NULL, + `currency_code` varchar(3) NOT NULL, `min_allowed` int(11) DEFAULT 0, `min_desired` int(11) DEFAULT 0, - `comment` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `comment` text DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `note_public` text COLLATE 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, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_accountancy_journal` int(11) DEFAULT NULL, - `ics` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ics_transfer` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ics` varchar(32) DEFAULT NULL, + `ics_transfer` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_bank_account_label` (`label`,`entity`), KEY `idx_fk_accountancy_journal` (`fk_accountancy_journal`), @@ -1170,7 +1176,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_bank_account_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -1194,7 +1200,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -1233,6 +1239,32 @@ LOCK TABLES `llx_bank_class` WRITE; /*!40000 ALTER TABLE `llx_bank_class` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_bank_extrafields` +-- + +DROP TABLE IF EXISTS `llx_bank_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_bank_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_bank_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_bank_extrafields` +-- + +LOCK TABLES `llx_bank_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_bank_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_bank_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_bank_url` -- @@ -1244,11 +1276,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 utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `type` varchar(24) COLLATE utf8mb3_unicode_ci NOT NULL, + `url` varchar(255) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `type` varchar(24) NOT NULL, PRIMARY KEY (`rowid`), - UNIQUE KEY `uk_bank_url` (`fk_bank`,`url_id`,`type`) + UNIQUE KEY `uk_bank_url` (`fk_bank`,`url_id`,`type`), + KEY `idx_bank_url_url_id` (`url_id`) ) ENGINE=InnoDB AUTO_INCREMENT=99 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1272,21 +1305,21 @@ DROP TABLE IF EXISTS `llx_blockedlog`; CREATE TABLE `llx_blockedlog` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `action` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `action` varchar(50) DEFAULT NULL, `amounts` double(24,8) 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, + `signature` varchar(100) NOT NULL, + `signature_line` varchar(100) NOT NULL, + `element` varchar(50) DEFAULT NULL, `fk_object` int(11) DEFAULT NULL, - `ref_object` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_object` varchar(255) DEFAULT NULL, `date_object` datetime DEFAULT NULL, - `object_data` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `object_data` mediumtext DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `certified` int(11) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, - `user_fullname` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `object_version` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT '', + `user_fullname` varchar(255) DEFAULT NULL, + `object_version` varchar(32) DEFAULT '', PRIMARY KEY (`rowid`), KEY `signature` (`signature`), KEY `fk_object_element` (`fk_object`,`element`), @@ -1316,8 +1349,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `signature` varchar(100) COLLATE utf8mb3_unicode_ci NOT NULL, + `blockchain` longtext NOT NULL, + `signature` varchar(100) NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), KEY `signature` (`signature`) @@ -1343,11 +1376,11 @@ DROP TABLE IF EXISTS `llx_bom_bom`; CREATE TABLE `llx_bom_bom` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(128) COLLATE 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, + `ref` varchar(128) NOT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, `qty` double(24,8) DEFAULT NULL, `efficiency` double(8,4) DEFAULT 1.0000, @@ -1357,11 +1390,11 @@ CREATE TABLE `llx_bom_bom` ( `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) NOT NULL, `duration` double(24,8) DEFAULT NULL, `fk_warehouse` int(11) DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `bomtype` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_bom_bom_ref` (`ref`,`entity`), @@ -1395,7 +1428,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_bom_bom_extrafields_fk_object` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -1422,13 +1455,14 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `qty` double(24,8) NOT NULL, `efficiency` double(8,4) NOT NULL DEFAULT 1.0000, `position` int(11) NOT NULL, `qty_frozen` smallint(6) DEFAULT 0, `disable_stock_change` smallint(6) DEFAULT 0, + `fk_unit` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_bom_bomline_rowid` (`rowid`), KEY `idx_bom_bomline_fk_product` (`fk_product`), @@ -1443,7 +1477,7 @@ CREATE TABLE `llx_bom_bomline` ( LOCK TABLES `llx_bom_bomline` WRITE; /*!40000 ALTER TABLE `llx_bom_bomline` DISABLE KEYS */; -INSERT INTO `llx_bom_bomline` VALUES (4,6,25,NULL,NULL,NULL,4.00000000,1.0000,1,0,0),(5,6,3,NULL,NULL,NULL,1.00000000,1.0000,3,0,1),(6,6,2,NULL,NULL,NULL,1.00000000,1.0000,2,1,0),(9,6,1,NULL,NULL,NULL,3.00000000,1.0000,0,0,0),(10,7,30,NULL,NULL,NULL,1.00000000,1.0000,2,0,0),(11,7,29,NULL,NULL,NULL,1.00000000,1.0000,4,0,0); +INSERT INTO `llx_bom_bomline` VALUES (4,6,25,NULL,NULL,NULL,4.00000000,1.0000,1,0,0,NULL),(5,6,3,NULL,NULL,NULL,1.00000000,1.0000,3,0,1,NULL),(6,6,2,NULL,NULL,NULL,1.00000000,1.0000,2,1,0,NULL),(9,6,1,NULL,NULL,NULL,3.00000000,1.0000,0,0,0,NULL),(10,7,30,NULL,NULL,NULL,1.00000000,1.0000,2,0,0,NULL),(11,7,29,NULL,NULL,NULL,1.00000000,1.0000,4,0,0,NULL); /*!40000 ALTER TABLE `llx_bom_bomline` ENABLE KEYS */; UNLOCK TABLES; @@ -1458,7 +1492,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1483,10 +1517,10 @@ CREATE TABLE `llx_bookmark` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_user` int(11) NOT NULL, `dateb` datetime 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, + `url` text DEFAULT NULL, + `target` varchar(16) DEFAULT NULL, + `title` varchar(64) DEFAULT NULL, + `favicon` varchar(24) DEFAULT NULL, `position` int(11) DEFAULT 0, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), @@ -1515,15 +1549,15 @@ 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 utf8mb3_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `amount` double(24,8) NOT NULL, `nbcheque` smallint(6) NOT NULL, `fk_bank_account` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `statut` smallint(6) NOT NULL DEFAULT 0, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), UNIQUE KEY `uk_bordereau_cheque` (`ref`,`entity`) @@ -1552,16 +1586,16 @@ CREATE TABLE `llx_boxes` ( `entity` int(11) NOT NULL DEFAULT 1, `box_id` int(11) NOT NULL, `position` smallint(6) NOT NULL, - `box_order` varchar(3) COLLATE utf8mb3_unicode_ci NOT NULL, + `box_order` varchar(3) NOT NULL, `fk_user` int(11) NOT NULL DEFAULT 0, `maxline` int(11) DEFAULT NULL, - `params` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `params` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_boxes` (`entity`,`box_id`,`position`,`fk_user`), KEY `idx_boxes_boxid` (`box_id`), KEY `idx_boxes_fk_user` (`fk_user`), CONSTRAINT `fk_boxes_box_id` FOREIGN KEY (`box_id`) REFERENCES `llx_boxes_def` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=1468 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1476 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1570,7 +1604,7 @@ CREATE TABLE `llx_boxes` ( LOCK TABLES `llx_boxes` WRITE; /*!40000 ALTER TABLE `llx_boxes` DISABLE KEYS */; -INSERT INTO `llx_boxes` VALUES (253,2,323,0,'0',0,NULL,NULL),(304,2,324,0,'0',0,NULL,NULL),(305,2,325,0,'0',0,NULL,NULL),(306,2,326,0,'0',0,NULL,NULL),(307,2,327,0,'0',0,NULL,NULL),(308,2,328,0,'0',0,NULL,NULL),(309,2,329,0,'0',0,NULL,NULL),(310,2,330,0,'0',0,NULL,NULL),(311,2,331,0,'0',0,NULL,NULL),(312,2,332,0,'0',0,NULL,NULL),(313,2,333,0,'0',0,NULL,NULL),(314,1,347,0,'A27',0,NULL,NULL),(315,1,348,0,'B20',0,NULL,NULL),(316,1,349,0,'B10',0,NULL,NULL),(317,1,350,0,'B18',0,NULL,NULL),(344,1,374,0,'B08',0,NULL,NULL),(347,1,377,0,'B16',0,NULL,NULL),(348,1,378,0,'B06',0,NULL,NULL),(358,1,388,0,'B38',0,NULL,NULL),(359,1,389,0,'A13',0,NULL,NULL),(360,1,390,0,'B36',0,NULL,NULL),(362,1,392,0,'A35',0,NULL,NULL),(363,1,393,0,'A11',0,NULL,NULL),(366,1,396,0,'B12',0,NULL,NULL),(387,1,403,0,'B22',0,NULL,NULL),(392,1,409,0,'A15',0,NULL,NULL),(393,1,410,0,'A33',0,NULL,NULL),(394,1,411,0,'A25',0,NULL,NULL),(395,1,412,0,'B30',0,NULL,NULL),(396,1,413,0,'A23',0,NULL,NULL),(397,1,414,0,'B28',0,NULL,NULL),(398,1,415,0,'A21',0,NULL,NULL),(399,1,416,0,'B26',0,NULL,NULL),(400,1,417,0,'A19',0,NULL,NULL),(401,1,418,0,'B24',0,NULL,NULL),(501,1,419,0,'A17',0,NULL,NULL),(1019,1,392,0,'A01',2,NULL,NULL),(1021,1,412,0,'A03',2,NULL,NULL),(1022,1,347,0,'A04',2,NULL,NULL),(1023,1,393,0,'A05',2,NULL,NULL),(1025,1,389,0,'A07',2,NULL,NULL),(1026,1,416,0,'A08',2,NULL,NULL),(1027,1,396,0,'B01',2,NULL,NULL),(1028,1,377,0,'B02',2,NULL,NULL),(1031,1,419,0,'B05',2,NULL,NULL),(1036,1,424,0,'A29',0,NULL,NULL),(1037,1,425,0,'B32',0,NULL,NULL),(1038,1,426,0,'B34',0,NULL,NULL),(1150,1,430,0,'A37',0,NULL,NULL),(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); +INSERT INTO `llx_boxes` VALUES (253,2,323,0,'0',0,NULL,NULL),(304,2,324,0,'0',0,NULL,NULL),(305,2,325,0,'0',0,NULL,NULL),(306,2,326,0,'0',0,NULL,NULL),(307,2,327,0,'0',0,NULL,NULL),(308,2,328,0,'0',0,NULL,NULL),(309,2,329,0,'0',0,NULL,NULL),(310,2,330,0,'0',0,NULL,NULL),(311,2,331,0,'0',0,NULL,NULL),(312,2,332,0,'0',0,NULL,NULL),(313,2,333,0,'0',0,NULL,NULL),(314,1,347,0,'A15',0,NULL,NULL),(315,1,348,0,'A29',0,NULL,NULL),(316,1,349,0,'A25',0,NULL,NULL),(317,1,350,0,'B28',0,NULL,NULL),(344,1,374,0,'B24',0,NULL,NULL),(347,1,377,0,'A27',0,NULL,NULL),(348,1,378,0,'A23',0,NULL,NULL),(358,1,388,0,'B38',0,NULL,NULL),(359,1,389,0,'B08',0,NULL,NULL),(360,1,390,0,'A37',0,NULL,NULL),(362,1,392,0,'A19',0,NULL,NULL),(363,1,393,0,'A07',0,NULL,NULL),(366,1,396,0,'B26',0,NULL,NULL),(387,1,403,0,'B30',0,NULL,NULL),(392,1,409,0,'A09',0,NULL,NULL),(393,1,410,0,'B18',0,NULL,NULL),(394,1,411,0,'B14',0,NULL,NULL),(395,1,412,0,'B34',0,NULL,NULL),(396,1,413,0,'A13',0,NULL,NULL),(397,1,414,0,'A33',0,NULL,NULL),(398,1,415,0,'B12',0,NULL,NULL),(399,1,416,0,'B32',0,NULL,NULL),(400,1,417,0,'A11',0,NULL,NULL),(401,1,418,0,'A31',0,NULL,NULL),(501,1,419,0,'B10',0,NULL,NULL),(1019,1,392,0,'A01',2,NULL,NULL),(1021,1,412,0,'A03',2,NULL,NULL),(1022,1,347,0,'A04',2,NULL,NULL),(1023,1,393,0,'A05',2,NULL,NULL),(1025,1,389,0,'A07',2,NULL,NULL),(1026,1,416,0,'A08',2,NULL,NULL),(1027,1,396,0,'B01',2,NULL,NULL),(1028,1,377,0,'B02',2,NULL,NULL),(1031,1,419,0,'B05',2,NULL,NULL),(1036,1,424,0,'B16',0,NULL,NULL),(1037,1,425,0,'A35',0,NULL,NULL),(1038,1,426,0,'B36',0,NULL,NULL),(1150,1,430,0,'B20',0,NULL,NULL),(1152,1,429,0,'A01',1,NULL,NULL),(1153,1,429,0,'B01',2,NULL,NULL),(1154,1,429,0,'A01',11,NULL,NULL),(1156,1,429,0,'A05',0,NULL,NULL),(1183,1,433,0,'B06',0,NULL,NULL),(1235,1,404,0,'B01',1,NULL,NULL),(1236,1,404,0,'B01',2,NULL,NULL),(1237,1,404,0,'B01',11,NULL,NULL),(1239,1,404,0,'A17',0,NULL,NULL),(1407,1,412,0,'A01',12,NULL,NULL),(1408,1,378,0,'A02',12,NULL,NULL),(1409,1,404,0,'A03',12,NULL,NULL),(1410,1,377,0,'A04',12,NULL,NULL),(1411,1,392,0,'B01',12,NULL,NULL),(1412,1,429,0,'B02',12,NULL,NULL),(1414,1,414,0,'B04',12,NULL,NULL),(1415,1,413,0,'B05',12,NULL,NULL),(1416,1,426,0,'B06',12,NULL,NULL),(1418,1,445,0,'B22',0,NULL,NULL),(1426,1,450,2,'B40',0,NULL,NULL),(1427,1,451,2,'A41',0,NULL,NULL),(1428,1,452,2,'A39',0,NULL,NULL),(1429,1,453,2,'B42',0,NULL,NULL),(1430,1,454,11,'B44',0,NULL,NULL),(1431,1,455,11,'B48',0,NULL,NULL),(1432,1,456,11,'A43',0,NULL,NULL),(1433,1,457,11,'A47',0,NULL,NULL),(1434,1,461,11,'A45',0,NULL,NULL),(1435,1,462,11,'B46',0,NULL,NULL),(1436,1,448,0,'A01',1,NULL,NULL),(1437,1,448,0,'B01',2,NULL,NULL),(1438,1,448,0,'A01',11,NULL,NULL),(1439,1,448,0,'A01',12,NULL,NULL),(1440,1,448,0,'B04',0,NULL,NULL),(1441,1,449,0,'B01',1,NULL,NULL),(1442,1,449,0,'A01',2,NULL,NULL),(1443,1,449,0,'B01',11,NULL,NULL),(1444,1,449,0,'A01',12,NULL,NULL),(1445,1,449,0,'A21',0,NULL,NULL),(1449,1,452,2,'A01',12,NULL,NULL),(1450,1,451,2,'B01',12,NULL,NULL),(1451,1,450,2,'B02',12,NULL,NULL),(1452,1,453,2,'B03',12,NULL,NULL),(1468,1,486,0,'A03',0,NULL,NULL),(1469,1,487,0,'B02',0,NULL,NULL),(1470,1,488,0,'A01',0,NULL,NULL),(1471,1,438,0,'A01',1,NULL,NULL),(1472,1,438,0,'B01',2,NULL,NULL),(1473,1,438,0,'A01',11,NULL,NULL),(1474,1,438,0,'B01',12,NULL,NULL),(1475,1,438,0,'A01',0,NULL,NULL); /*!40000 ALTER TABLE `llx_boxes` ENABLE KEYS */; UNLOCK TABLES; @@ -1583,14 +1617,14 @@ DROP TABLE IF EXISTS `llx_boxes_def`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_boxes_def` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `file` varchar(200) COLLATE utf8mb3_unicode_ci NOT NULL, + `file` varchar(200) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `note` varchar(130) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` varchar(130) DEFAULT NULL, `fk_user` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_boxes_def` (`file`,`entity`,`note`) -) ENGINE=InnoDB AUTO_INCREMENT=486 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=489 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1599,7 +1633,7 @@ CREATE TABLE `llx_boxes_def` ( LOCK TABLES `llx_boxes_def` WRITE; /*!40000 ALTER TABLE `llx_boxes_def` DISABLE KEYS */; -INSERT INTO `llx_boxes_def` VALUES (323,'box_actions.php',2,'2015-03-13 15:29:19',NULL,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); +INSERT INTO `llx_boxes_def` VALUES (323,'box_actions.php',2,'2015-03-13 15:29:19',NULL,0),(324,'box_clients.php',2,'2015-03-13 20:21:35',NULL,0),(325,'box_prospect.php',2,'2015-03-13 20:21:35',NULL,0),(326,'box_contacts.php',2,'2015-03-13 20:21:35',NULL,0),(327,'box_activity.php',2,'2015-03-13 20:21:35','(WarningUsingThisBoxSlowDown)',0),(328,'box_propales.php',2,'2015-03-13 20:32:38',NULL,0),(329,'box_comptes.php',2,'2015-03-13 20:33:09',NULL,0),(330,'box_factures_imp.php',2,'2015-03-13 20:33:09',NULL,0),(331,'box_factures.php',2,'2015-03-13 20:33:09',NULL,0),(332,'box_produits.php',2,'2015-03-13 20:33:09',NULL,0),(333,'box_produits_alerte_stock.php',2,'2015-03-13 20:33:09',NULL,0),(347,'box_clients.php',1,'2017-11-15 22:05:57',NULL,0),(348,'box_prospect.php',1,'2017-11-15 22:05:57',NULL,0),(349,'box_contacts.php',1,'2017-11-15 22:05:57',NULL,0),(350,'box_activity.php',1,'2017-11-15 22:05:57','(WarningUsingThisBoxSlowDown)',0),(374,'box_services_contracts.php',1,'2017-11-15 22:38:37',NULL,0),(377,'box_project.php',1,'2017-11-15 22:38:44',NULL,0),(378,'box_task.php',1,'2017-11-15 22:38:44',NULL,0),(388,'box_contracts.php',1,'2017-11-15 22:39:52',NULL,0),(389,'box_services_expired.php',1,'2017-11-15 22:39:52',NULL,0),(390,'box_ficheinter.php',1,'2017-11-15 22:39:56',NULL,0),(392,'box_graph_propales_permonth.php',1,'2017-11-15 22:41:47',NULL,0),(393,'box_propales.php',1,'2017-11-15 22:41:47',NULL,0),(396,'box_graph_product_distribution.php',1,'2017-11-15 22:41:47',NULL,0),(403,'box_goodcustomers.php',1,'2018-07-30 11:13:20','(WarningUsingThisBoxSlowDown)',0),(404,'box_external_rss.php',1,'2018-07-30 11:15:25','1 (Dolibarr.org News)',0),(409,'box_produits.php',1,'2018-07-30 13:38:11',NULL,0),(410,'box_produits_alerte_stock.php',1,'2018-07-30 13:38:11',NULL,0),(411,'box_commandes.php',1,'2018-07-30 13:38:11',NULL,0),(412,'box_graph_orders_permonth.php',1,'2018-07-30 13:38:11',NULL,0),(413,'box_graph_invoices_supplier_permonth.php',1,'2018-07-30 13:38:11',NULL,0),(414,'box_graph_orders_supplier_permonth.php',1,'2018-07-30 13:38:11',NULL,0),(415,'box_fournisseurs.php',1,'2018-07-30 13:38:11',NULL,0),(416,'box_factures_fourn_imp.php',1,'2018-07-30 13:38:11',NULL,0),(417,'box_factures_fourn.php',1,'2018-07-30 13:38:11',NULL,0),(418,'box_supplier_orders.php',1,'2018-07-30 13:38:11',NULL,0),(419,'box_actions.php',1,'2018-07-30 15:42:32',NULL,0),(424,'box_factures_imp.php',1,'2017-02-07 18:56:12',NULL,0),(425,'box_factures.php',1,'2017-02-07 18:56:12',NULL,0),(426,'box_graph_invoices_permonth.php',1,'2017-02-07 18:56:12',NULL,0),(429,'box_lastlogin.php',1,'2017-08-27 13:29:14',NULL,0),(430,'box_bookmarks.php',1,'2018-01-19 11:27:34',NULL,0),(432,'box_birthdays.php',1,'2019-06-05 08:45:40',NULL,0),(433,'box_last_ticket',1,'2019-06-05 09:15:29',NULL,0),(436,'box_accountancy_last_manual_entries.php',1,'2019-11-28 11:52:58',NULL,0),(437,'box_accountancy_suspense_account.php',1,'2019-11-28 11:52:58',NULL,0),(438,'box_supplier_orders_awaiting_reception.php',1,'2019-11-28 11:52:59',NULL,0),(445,'box_shipments.php',1,'2020-01-13 14:38:20',NULL,0),(446,'box_funnel_of_prospection.php',1,'2020-12-10 12:24:40',NULL,0),(447,'box_customers_outstanding_bill_reached.php',1,'2020-12-10 12:24:40',NULL,0),(448,'box_scheduled_jobs.php',1,'2021-04-15 10:22:49',NULL,0),(449,'box_dolibarr_state_board.php',1,'2021-04-15 10:22:54',NULL,0),(450,'box_members_last_modified.php',1,'2021-04-15 10:22:54',NULL,0),(451,'box_members_last_subscriptions.php',1,'2021-04-15 10:22:54',NULL,0),(452,'box_members_subscriptions_by_year.php',1,'2021-04-15 10:22:54',NULL,0),(453,'box_members_by_type.php',1,'2021-04-15 10:22:54',NULL,0),(454,'box_graph_ticket_by_severity.php',1,'2021-04-15 10:22:55',NULL,0),(455,'box_graph_nb_ticket_last_x_days.php',1,'2021-04-15 10:22:55',NULL,0),(456,'box_graph_nb_tickets_type.php',1,'2021-04-15 10:22:55',NULL,0),(457,'box_graph_new_vs_close_ticket.php',1,'2021-04-15 10:22:55',NULL,0),(461,'box_last_ticket.php',1,'2021-04-15 10:23:01',NULL,0),(462,'box_last_modified_ticket.php',1,'2021-04-15 10:23:01',NULL,0),(470,'box_ticket_by_severity.php',1,'2021-07-11 17:49:47',NULL,0),(471,'box_nb_ticket_last_x_days.php',1,'2021-07-11 17:49:47',NULL,0),(472,'box_nb_tickets_type.php',1,'2021-07-11 17:49:47',NULL,0),(473,'box_new_vs_close_ticket.php',1,'2021-07-11 17:49:47',NULL,0),(486,'box_boms.php',1,'2022-12-11 21:23:42',NULL,0),(487,'box_comptes.php',1,'2022-12-11 21:23:42',NULL,0),(488,'box_mos.php',1,'2022-12-11 21:23:43',NULL,0); /*!40000 ALTER TABLE `llx_boxes_def` ENABLE KEYS */; UNLOCK TABLES; @@ -1613,9 +1647,9 @@ DROP TABLE IF EXISTS `llx_budget`; CREATE TABLE `llx_budget` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(255) NOT NULL, `status` int(11) DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `date_start` date DEFAULT NULL, `date_end` date DEFAULT NULL, `datec` datetime DEFAULT NULL, @@ -1646,7 +1680,7 @@ DROP TABLE IF EXISTS `llx_budget_lines`; CREATE TABLE `llx_budget_lines` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_budget` int(11) NOT NULL, - `fk_project_ids` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `fk_project_ids` varchar(255) NOT NULL, `amount` double(24,8) NOT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), @@ -1678,12 +1712,12 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, - `range_account` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(255) NOT NULL, + `range_account` varchar(255) NOT NULL, `sens` tinyint(4) NOT NULL DEFAULT 0, `category_type` tinyint(4) NOT NULL DEFAULT 0, - `formula` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `formula` varchar(255) NOT NULL, `position` int(11) DEFAULT 0, `fk_country` int(11) DEFAULT NULL, `active` int(11) DEFAULT 1, @@ -1711,15 +1745,15 @@ DROP TABLE IF EXISTS `llx_c_action_trigger`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_action_trigger` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(64) COLLATE 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, + `code` varchar(128) DEFAULT NULL, + `label` varchar(128) NOT NULL, + `description` varchar(255) DEFAULT NULL, + `elementtype` varchar(64) DEFAULT NULL, `rang` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_action_trigger_code` (`code`), KEY `idx_action_trigger_rang` (`rang`) -) ENGINE=InnoDB AUTO_INCREMENT=455 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=595 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1728,7 +1762,7 @@ CREATE TABLE `llx_c_action_trigger` ( LOCK TABLES `llx_c_action_trigger` WRITE; /*!40000 ALTER TABLE `llx_c_action_trigger` DISABLE KEYS */; -INSERT INTO `llx_c_action_trigger` VALUES (131,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1),(132,'COMPANY_CREATE','Third party created','Executed when a third party is created','societe',1),(133,'PROPAL_VALIDATE','Customer proposal validated','Executed when a commercial proposal is validated','propal',2),(134,'PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3),(135,'ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4),(136,'ORDER_CLOSE','Customer order classify delivered','Executed when a customer order is set delivered','commande',5),(137,'ORDER_CLASSIFY_BILLED','Customer order classify billed','Executed when a customer order is set to billed','commande',5),(138,'ORDER_CANCEL','Customer order canceled','Executed when a customer order is canceled','commande',5),(139,'ORDER_SENTBYMAIL','Customer order sent by mail','Executed when a customer order is sent by mail ','commande',5),(140,'BILL_VALIDATE','Customer invoice validated','Executed when a customer invoice is approved','facture',6),(141,'BILL_PAYED','Customer invoice payed','Executed when a customer invoice is payed','facture',7),(142,'BILL_CANCEL','Customer invoice canceled','Executed when a customer invoice is conceled','facture',8),(143,'BILL_SENTBYMAIL','Customer invoice sent by mail','Executed when a customer invoice is sent by mail','facture',9),(144,'BILL_UNVALIDATE','Customer invoice unvalidated','Executed when a customer invoice status set back to draft','facture',10),(145,'ORDER_SUPPLIER_VALIDATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(146,'ORDER_SUPPLIER_APPROVE','Supplier order request approved','Executed when a supplier order is approved','order_supplier',12),(147,'ORDER_SUPPLIER_REFUSE','Supplier order request refused','Executed when a supplier order is refused','order_supplier',13),(148,'ORDER_SUPPLIER_SENTBYMAIL','Supplier order sent by mail','Executed when a supplier order is sent by mail','order_supplier',14),(149,'BILL_SUPPLIER_VALIDATE','Supplier invoice validated','Executed when a supplier invoice is validated','invoice_supplier',15),(150,'BILL_SUPPLIER_PAYED','Supplier invoice payed','Executed when a supplier invoice is payed','invoice_supplier',16),(151,'BILL_SUPPLIER_SENTBYMAIL','Supplier invoice sent by mail','Executed when a supplier invoice is sent by mail','invoice_supplier',17),(152,'BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',17),(153,'CONTRACT_VALIDATE','Contract validated','Executed when a contract is validated','contrat',18),(154,'SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20),(155,'SHIPPING_SENTBYMAIL','Shipping sent by mail','Executed when a shipping is sent by mail','shipping',21),(156,'MEMBER_VALIDATE','Member validated','Executed when a member is validated','member',22),(158,'MEMBER_RESILIATE','Member resiliated','Executed when a member is resiliated','member',24),(159,'MEMBER_MODIFY','Member modified','Executed when a member is modified','member',24),(160,'MEMBER_DELETE','Member deleted','Executed when a member is deleted','member',25),(161,'FICHINTER_VALIDATE','Intervention validated','Executed when a intervention is validated','ficheinter',19),(162,'FICHINTER_CLASSIFY_BILLED','Intervention set billed','Executed when a intervention is set to billed (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(163,'FICHINTER_CLASSIFY_UNBILLED','Intervention set unbilled','Executed when a intervention is set to unbilled (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(164,'FICHINTER_REOPEN','Intervention opened','Executed when a intervention is re-opened','ficheinter',19),(165,'FICHINTER_SENTBYMAIL','Intervention sent by mail','Executed when a intervention is sent by mail','ficheinter',19),(166,'PROJECT_CREATE','Project creation','Executed when a project is created','project',140),(167,'PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2),(168,'PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2),(169,'PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2),(170,'TASK_CREATE','Task created','Executed when a project task is created','project',35),(171,'TASK_MODIFY','Task modified','Executed when a project task is modified','project',36),(172,'TASK_DELETE','Task deleted','Executed when a project task is deleted','project',37),(173,'BILL_SUPPLIER_UNVALIDATE','Supplier invoice unvalidated','Executed when a supplier invoice status is set back to draft','invoice_supplier',15),(174,'PROJECT_MODIFY','Project modified','Executed when a project is modified','project',141),(175,'PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',142),(176,'ORDER_SUPPLIER_CREATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(177,'ORDER_SUPPLIER_SUBMIT','Supplier order request submited','Executed when a supplier order is approved','order_supplier',12),(178,'ORDER_SUPPLIER_RECEIVE','Supplier order request received','Executed when a supplier order is received','order_supplier',12),(179,'ORDER_SUPPLIER_CLASSIFY_BILLED','Supplier order set billed','Executed when a supplier order is set as billed','order_supplier',14),(180,'PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',30),(181,'PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30),(182,'PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',30),(183,'EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expensereport',201),(185,'EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202),(186,'EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203),(187,'EXPENSE_REPORT_PAID','Expense report billed','Executed when an expense report is set as billed','expensereport',204),(192,'HOLIDAY_CREATE','Leave request created','Executed when a leave request is created','holiday',221),(193,'HOLIDAY_VALIDATE','Leave request validated','Executed when a leave request is validated','holiday',222),(194,'HOLIDAY_APPROVE','Leave request approved','Executed when a leave request is approved','holiday',223),(210,'MEMBER_SENTBYMAIL','Mails sent from member card','Executed when you send email from member card','member',23),(211,'CONTRACT_SENTBYMAIL','Contract sent by mail','Executed when a contract is sent by mail','contrat',18),(212,'PROPOSAL_SUPPLIER_VALIDATE','Price request validated','Executed when a commercial proposal is validated','proposal_supplier',10),(213,'PROPOSAL_SUPPLIER_SENTBYMAIL','Price request sent by mail','Executed when a commercial proposal is sent by mail','proposal_supplier',10),(214,'PROPOSAL_SUPPLIER_CLOSE_SIGNED','Price request closed signed','Executed when a customer proposal is closed signed','proposal_supplier',10),(215,'PROPOSAL_SUPPLIER_CLOSE_REFUSED','Price request closed refused','Executed when a customer proposal is closed refused','proposal_supplier',10),(216,'MEMBER_SUBSCRIPTION_CREATE','Member subscribtion recorded','Executed when a member subscribtion is deleted','member',24),(217,'MEMBER_SUBSCRIPTION_MODIFY','Member subscribtion modified','Executed when a member subscribtion is modified','member',24),(218,'MEMBER_SUBSCRIPTION_DELETE','Member subscribtion deleted','Executed when a member subscribtion is deleted','member',24),(225,'COMPANY_DELETE','Third party deleted','Executed when you delete third party','societe',1),(226,'PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2),(227,'ORDER_DELETE','Customer order deleted','Executed when a customer order is deleted','commande',5),(228,'BILL_DELETE','Customer invoice deleted','Executed when a customer invoice is deleted','facture',9),(229,'PROPOSAL_SUPPLIER_DELETE','Price request deleted','Executed when a customer proposal delete','proposal_supplier',10),(230,'ORDER_SUPPLIER_DELETE','Supplier order deleted','Executed when a supplier order is deleted','order_supplier',14),(231,'BILL_SUPPLIER_DELETE','Supplier invoice deleted','Executed when a supplier invoice is deleted','invoice_supplier',17),(232,'CONTRACT_DELETE','Contract deleted','Executed when a contract is deleted','contrat',18),(233,'FICHINTER_DELETE','Intervention is deleted','Executed when a intervention is deleted','ficheinter',35),(234,'EXPENSE_REPORT_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204),(249,'TICKET_CREATE','Ticket created','Executed when a ticket is created','ticket',161),(250,'TICKET_MODIFY','Ticket modified','Executed when a ticket is modified','ticket',163),(251,'TICKET_ASSIGNED','Ticket assigned','Executed when a ticket is assigned to another user','ticket',164),(252,'TICKET_CLOSE','Ticket closed','Executed when a ticket is closed','ticket',165),(253,'TICKET_SENTBYMAIL','Ticket message sent by email','Executed when a message is sent from the ticket record','ticket',166),(254,'TICKET_DELETE','Ticket deleted','Executed when a ticket is deleted','ticket',167),(261,'USER_SENTBYMAIL','Email sent','Executed when an email is sent from user card','user',300),(262,'BOM_VALIDATE','BOM validated','Executed when a BOM is validated','bom',650),(263,'BOM_UNVALIDATE','BOM unvalidated','Executed when a BOM is unvalidated','bom',651),(264,'BOM_CLOSE','BOM disabled','Executed when a BOM is disabled','bom',652),(265,'BOM_REOPEN','BOM reopen','Executed when a BOM is re-open','bom',653),(266,'BOM_DELETE','BOM deleted','Executed when a BOM deleted','bom',654),(351,'MRP_MO_VALIDATE','MO validated','Executed when a MO is validated','bom',660),(352,'MRP_MO_PRODUCED','MO produced','Executed when a MO is produced','bom',661),(353,'MRP_MO_DELETE','MO deleted','Executed when a MO is deleted','bom',662),(354,'MRP_MO_CANCEL','MO canceled','Executed when a MO is canceled','bom',663),(365,'CONTACT_CREATE','Contact address created','Executed when a contact is created','contact',50),(366,'CONTACT_SENTBYMAIL','Mails sent from third party card','Executed when you send email from contact adress card','contact',51),(367,'CONTACT_DELETE','Contact address deleted','Executed when a contact is deleted','contact',52),(368,'RECRUITMENTJOBPOSITION_CREATE','Job created','Executed when a job is created','recruitment',7500),(369,'RECRUITMENTJOBPOSITION_MODIFY','Job modified','Executed when a job is modified','recruitment',7502),(370,'RECRUITMENTJOBPOSITION_SENTBYMAIL','Mails sent from job record','Executed when you send email from job record','recruitment',7504),(371,'RECRUITMENTJOBPOSITION_DELETE','Job deleted','Executed when a job is deleted','recruitment',7506),(372,'RECRUITMENTCANDIDATURE_CREATE','Candidature created','Executed when a candidature is created','recruitment',7510),(373,'RECRUITMENTCANDIDATURE_MODIFY','Candidature modified','Executed when a candidature is modified','recruitment',7512),(374,'RECRUITMENTCANDIDATURE_SENTBYMAIL','Mails sent from candidature record','Executed when you send email from candidature record','recruitment',7514),(375,'RECRUITMENTCANDIDATURE_DELETE','Candidature deleted','Executed when a candidature is deleted','recruitment',7516),(392,'COMPANY_MODIFY','Third party update','Executed when you update third party','societe',1),(393,'CONTACT_MODIFY','Contact address update','Executed when a contact is updated','contact',51),(394,'ORDER_SUPPLIER_CANCEL','Supplier order request canceled','Executed when a supplier order is canceled','order_supplier',13),(395,'MEMBER_EXCLUDE','Member excluded','Executed when a member is excluded','member',27),(396,'USER_CREATE','User created','Executed when a user is created','user',301),(397,'USER_MODIFY','User update','Executed when a user is updated','user',302),(398,'USER_DELETE','User update','Executed when a user is deleted','user',303),(399,'USER_NEW_PASSWORD','User update','Executed when a user is change password','user',304),(400,'USER_ENABLEDISABLE','User update','Executed when a user is enable or disable','user',305),(402,'HOLIDAY_MODIFY','Holiday modified','Executed when a holiday is modified','holiday',801),(405,'HOLIDAY_CANCEL','Holiday canceled','Executed when a holiday is canceled','holiday',802),(406,'HOLIDAY_DELETE','Holiday deleted','Executed when a holiday is deleted','holiday',804),(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); +INSERT INTO `llx_c_action_trigger` VALUES (131,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1),(132,'COMPANY_CREATE','Third party created','Executed when a third party is created','societe',1),(133,'PROPAL_VALIDATE','Customer proposal validated','Executed when a commercial proposal is validated','propal',2),(134,'PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3),(135,'ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4),(136,'ORDER_CLOSE','Customer order classify delivered','Executed when a customer order is set delivered','commande',5),(137,'ORDER_CLASSIFY_BILLED','Customer order classify billed','Executed when a customer order is set to billed','commande',5),(138,'ORDER_CANCEL','Customer order canceled','Executed when a customer order is canceled','commande',5),(139,'ORDER_SENTBYMAIL','Customer order sent by mail','Executed when a customer order is sent by mail ','commande',5),(140,'BILL_VALIDATE','Customer invoice validated','Executed when a customer invoice is approved','facture',6),(141,'BILL_PAYED','Customer invoice payed','Executed when a customer invoice is payed','facture',7),(142,'BILL_CANCEL','Customer invoice canceled','Executed when a customer invoice is conceled','facture',8),(143,'BILL_SENTBYMAIL','Customer invoice sent by mail','Executed when a customer invoice is sent by mail','facture',9),(144,'BILL_UNVALIDATE','Customer invoice unvalidated','Executed when a customer invoice status set back to draft','facture',10),(145,'ORDER_SUPPLIER_VALIDATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(146,'ORDER_SUPPLIER_APPROVE','Supplier order request approved','Executed when a supplier order is approved','order_supplier',12),(147,'ORDER_SUPPLIER_REFUSE','Supplier order request refused','Executed when a supplier order is refused','order_supplier',13),(148,'ORDER_SUPPLIER_SENTBYMAIL','Supplier order sent by mail','Executed when a supplier order is sent by mail','order_supplier',14),(149,'BILL_SUPPLIER_VALIDATE','Supplier invoice validated','Executed when a supplier invoice is validated','invoice_supplier',15),(150,'BILL_SUPPLIER_PAYED','Supplier invoice payed','Executed when a supplier invoice is payed','invoice_supplier',16),(151,'BILL_SUPPLIER_SENTBYMAIL','Supplier invoice sent by mail','Executed when a supplier invoice is sent by mail','invoice_supplier',17),(152,'BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',17),(153,'CONTRACT_VALIDATE','Contract validated','Executed when a contract is validated','contrat',18),(154,'SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20),(155,'SHIPPING_SENTBYMAIL','Shipping sent by mail','Executed when a shipping is sent by mail','shipping',21),(156,'MEMBER_VALIDATE','Member validated','Executed when a member is validated','member',22),(158,'MEMBER_RESILIATE','Member resiliated','Executed when a member is resiliated','member',24),(159,'MEMBER_MODIFY','Member modified','Executed when a member is modified','member',24),(160,'MEMBER_DELETE','Member deleted','Executed when a member is deleted','member',25),(161,'FICHINTER_VALIDATE','Intervention validated','Executed when a intervention is validated','ficheinter',19),(162,'FICHINTER_CLASSIFY_BILLED','Intervention set billed','Executed when a intervention is set to billed (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(163,'FICHINTER_CLASSIFY_UNBILLED','Intervention set unbilled','Executed when a intervention is set to unbilled (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(164,'FICHINTER_REOPEN','Intervention opened','Executed when a intervention is re-opened','ficheinter',19),(165,'FICHINTER_SENTBYMAIL','Intervention sent by mail','Executed when a intervention is sent by mail','ficheinter',19),(166,'PROJECT_CREATE','Project creation','Executed when a project is created','project',140),(167,'PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2),(168,'PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2),(169,'PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2),(170,'TASK_CREATE','Task created','Executed when a project task is created','project',35),(171,'TASK_MODIFY','Task modified','Executed when a project task is modified','project',36),(172,'TASK_DELETE','Task deleted','Executed when a project task is deleted','project',37),(173,'BILL_SUPPLIER_UNVALIDATE','Supplier invoice unvalidated','Executed when a supplier invoice status is set back to draft','invoice_supplier',15),(174,'PROJECT_MODIFY','Project modified','Executed when a project is modified','project',141),(175,'PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',142),(176,'ORDER_SUPPLIER_CREATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(177,'ORDER_SUPPLIER_SUBMIT','Supplier order request submited','Executed when a supplier order is approved','order_supplier',12),(178,'ORDER_SUPPLIER_RECEIVE','Supplier order request received','Executed when a supplier order is received','order_supplier',12),(179,'ORDER_SUPPLIER_CLASSIFY_BILLED','Supplier order set billed','Executed when a supplier order is set as billed','order_supplier',14),(180,'PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',30),(181,'PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30),(182,'PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',30),(183,'EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expensereport',201),(185,'EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202),(186,'EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203),(187,'EXPENSE_REPORT_PAID','Expense report billed','Executed when an expense report is set as billed','expensereport',204),(192,'HOLIDAY_CREATE','Leave request created','Executed when a leave request is created','holiday',221),(193,'HOLIDAY_VALIDATE','Leave request validated','Executed when a leave request is validated','holiday',222),(194,'HOLIDAY_APPROVE','Leave request approved','Executed when a leave request is approved','holiday',223),(210,'MEMBER_SENTBYMAIL','Mails sent from member card','Executed when you send email from member card','member',23),(211,'CONTRACT_SENTBYMAIL','Contract sent by mail','Executed when a contract is sent by mail','contrat',18),(212,'PROPOSAL_SUPPLIER_VALIDATE','Price request validated','Executed when a commercial proposal is validated','proposal_supplier',10),(213,'PROPOSAL_SUPPLIER_SENTBYMAIL','Price request sent by mail','Executed when a commercial proposal is sent by mail','proposal_supplier',10),(214,'PROPOSAL_SUPPLIER_CLOSE_SIGNED','Price request closed signed','Executed when a customer proposal is closed signed','proposal_supplier',10),(215,'PROPOSAL_SUPPLIER_CLOSE_REFUSED','Price request closed refused','Executed when a customer proposal is closed refused','proposal_supplier',10),(216,'MEMBER_SUBSCRIPTION_CREATE','Member subscribtion recorded','Executed when a member subscribtion is deleted','member',24),(217,'MEMBER_SUBSCRIPTION_MODIFY','Member subscribtion modified','Executed when a member subscribtion is modified','member',24),(218,'MEMBER_SUBSCRIPTION_DELETE','Member subscribtion deleted','Executed when a member subscribtion is deleted','member',24),(225,'COMPANY_DELETE','Third party deleted','Executed when you delete third party','societe',1),(226,'PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2),(227,'ORDER_DELETE','Customer order deleted','Executed when a customer order is deleted','commande',5),(228,'BILL_DELETE','Customer invoice deleted','Executed when a customer invoice is deleted','facture',9),(229,'PROPOSAL_SUPPLIER_DELETE','Price request deleted','Executed when a customer proposal delete','proposal_supplier',10),(230,'ORDER_SUPPLIER_DELETE','Supplier order deleted','Executed when a supplier order is deleted','order_supplier',14),(231,'BILL_SUPPLIER_DELETE','Supplier invoice deleted','Executed when a supplier invoice is deleted','invoice_supplier',17),(232,'CONTRACT_DELETE','Contract deleted','Executed when a contract is deleted','contrat',18),(233,'FICHINTER_DELETE','Intervention is deleted','Executed when a intervention is deleted','ficheinter',35),(234,'EXPENSE_REPORT_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204),(249,'TICKET_CREATE','Ticket created','Executed when a ticket is created','ticket',161),(250,'TICKET_MODIFY','Ticket modified','Executed when a ticket is modified','ticket',163),(251,'TICKET_ASSIGNED','Ticket assigned','Executed when a ticket is assigned to another user','ticket',164),(252,'TICKET_CLOSE','Ticket closed','Executed when a ticket is closed','ticket',165),(253,'TICKET_SENTBYMAIL','Ticket message sent by email','Executed when a message is sent from the ticket record','ticket',166),(254,'TICKET_DELETE','Ticket deleted','Executed when a ticket is deleted','ticket',167),(261,'USER_SENTBYMAIL','Email sent','Executed when an email is sent from user card','user',300),(262,'BOM_VALIDATE','BOM validated','Executed when a BOM is validated','bom',650),(263,'BOM_UNVALIDATE','BOM unvalidated','Executed when a BOM is unvalidated','bom',651),(264,'BOM_CLOSE','BOM disabled','Executed when a BOM is disabled','bom',652),(265,'BOM_REOPEN','BOM reopen','Executed when a BOM is re-open','bom',653),(266,'BOM_DELETE','BOM deleted','Executed when a BOM deleted','bom',654),(351,'MRP_MO_VALIDATE','MO validated','Executed when a MO is validated','bom',660),(352,'MRP_MO_PRODUCED','MO produced','Executed when a MO is produced','bom',661),(353,'MRP_MO_DELETE','MO deleted','Executed when a MO is deleted','bom',662),(354,'MRP_MO_CANCEL','MO canceled','Executed when a MO is canceled','bom',663),(365,'CONTACT_CREATE','Contact address created','Executed when a contact is created','contact',50),(366,'CONTACT_SENTBYMAIL','Mails sent from third party card','Executed when you send email from contact adress card','contact',51),(367,'CONTACT_DELETE','Contact address deleted','Executed when a contact is deleted','contact',52),(368,'RECRUITMENTJOBPOSITION_CREATE','Job created','Executed when a job is created','recruitment',7500),(369,'RECRUITMENTJOBPOSITION_MODIFY','Job modified','Executed when a job is modified','recruitment',7502),(370,'RECRUITMENTJOBPOSITION_SENTBYMAIL','Mails sent from job record','Executed when you send email from job record','recruitment',7504),(371,'RECRUITMENTJOBPOSITION_DELETE','Job deleted','Executed when a job is deleted','recruitment',7506),(372,'RECRUITMENTCANDIDATURE_CREATE','Candidature created','Executed when a candidature is created','recruitment',7510),(373,'RECRUITMENTCANDIDATURE_MODIFY','Candidature modified','Executed when a candidature is modified','recruitment',7512),(374,'RECRUITMENTCANDIDATURE_SENTBYMAIL','Mails sent from candidature record','Executed when you send email from candidature record','recruitment',7514),(375,'RECRUITMENTCANDIDATURE_DELETE','Candidature deleted','Executed when a candidature is deleted','recruitment',7516),(392,'COMPANY_MODIFY','Third party update','Executed when you update third party','societe',1),(393,'CONTACT_MODIFY','Contact address update','Executed when a contact is updated','contact',51),(394,'ORDER_SUPPLIER_CANCEL','Supplier order request canceled','Executed when a supplier order is canceled','order_supplier',13),(395,'MEMBER_EXCLUDE','Member excluded','Executed when a member is excluded','member',27),(396,'USER_CREATE','User created','Executed when a user is created','user',301),(397,'USER_MODIFY','User update','Executed when a user is updated','user',302),(398,'USER_DELETE','User update','Executed when a user is deleted','user',303),(399,'USER_NEW_PASSWORD','User update','Executed when a user is change password','user',304),(400,'USER_ENABLEDISABLE','User update','Executed when a user is enable or disable','user',305),(402,'HOLIDAY_MODIFY','Holiday modified','Executed when a holiday is modified','holiday',801),(405,'HOLIDAY_CANCEL','Holiday canceled','Executed when a holiday is canceled','holiday',802),(406,'HOLIDAY_DELETE','Holiday deleted','Executed when a holiday is deleted','holiday',804),(407,'PROPAL_MODIFY','Customer proposal modified','Executed when a customer proposal is modified','propal',2),(408,'ORDER_MODIFY','Customer order modified','Executed when a customer order is set modified','commande',5),(409,'BILL_MODIFY','Customer invoice modified','Executed when a customer invoice is modified','facture',7),(410,'PROPOSAL_SUPPLIER_MODIFY','Price request modified','Executed when a commercial proposal is modified','proposal_supplier',10),(411,'ORDER_SUPPLIER_MODIFY','Supplier order request modified','Executed when a supplier order is modified','order_supplier',13),(412,'BILL_SUPPLIER_MODIFY','Supplier invoice modified','Executed when a supplier invoice is modified','invoice_supplier',15),(413,'CONTRACT_MODIFY','Contract modified','Executed when a contract is modified','contrat',18),(414,'SHIPPING_MODIFY','Shipping modified','Executed when a shipping is modified','shipping',20),(415,'FICHINTER_MODIFY','Intervention modify','Executed when a intervention is modify','ficheinter',30),(417,'EXPENSE_REPORT_MODIFY','Expense report modified','Executed when an expense report is modified','expensereport',202),(455,'PROJECT_SENTBYMAIL','Project sent by mail','Executed when a project is sent by email','project',144),(511,'SHIPPING_DELETE','Shipping sent is deleted','Executed when a shipping is deleted','shipping',21),(512,'RECEPTION_VALIDATE','Reception validated','Executed when a reception is validated','reception',22),(513,'RECEPTION_SENTBYMAIL','Reception sent by mail','Executed when a reception is sent by mail','reception',22),(543,'PROJECT_VALIDATE','Project validation','Executed when a project is validated','project',141),(584,'ACTION_CREATE','Action added','Executed when an action is added to the agenda','agenda',700),(591,'BILLREC_CREATE','Template invoices created','Executed when a Template invoices is created','facturerec',900),(592,'BILLREC_MODIFY','Template invoices update','Executed when a Template invoices is updated','facturerec',901),(593,'BILLREC_DELETE','Template invoices deleted','Executed when a Template invoices is deleted','facturerec',902),(594,'BILLREC_AUTOCREATEBILL','Template invoices use to create invoices with auto batch','Executed when a Template invoices is use to create invoice with auto batch','facturerec',903); /*!40000 ALTER TABLE `llx_c_action_trigger` ENABLE KEYS */; UNLOCK TABLES; @@ -1741,15 +1775,15 @@ 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 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, + `code` varchar(50) NOT NULL, + `type` varchar(50) NOT NULL DEFAULT 'system', + `libelle` varchar(128) DEFAULT NULL, + `module` varchar(50) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `todo` tinyint(4) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, - `color` varchar(9) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `picto` varchar(48) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `color` varchar(9) DEFAULT NULL, + `picto` varchar(48) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_actioncomm` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -1775,8 +1809,8 @@ DROP TABLE IF EXISTS `llx_c_asset_disposal_type`; 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, + `code` varchar(16) NOT NULL, + `label` varchar(50) NOT NULL, `active` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_asset_disposal_type` (`code`,`entity`) @@ -1801,11 +1835,11 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(30) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `position` int(11) NOT NULL DEFAULT 0, - `type_duration` varchar(1) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type_duration` varchar(1) DEFAULT NULL, `qty` double DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_availability` (`code`) @@ -1831,14 +1865,14 @@ DROP TABLE IF EXISTS `llx_c_barcode_type`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_barcode_type` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(16) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(16) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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, + `libelle` varchar(128) DEFAULT NULL, + `coder` varchar(16) NOT NULL, + `example` varchar(16) NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_barcode_type` (`code`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1860,13 +1894,13 @@ 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(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `libelle` varchar(128) DEFAULT NULL, `deductible` smallint(6) NOT NULL DEFAULT 0, `active` tinyint(4) NOT NULL DEFAULT 1, - `code` varchar(12) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(12) NOT NULL, `fk_pays` int(11) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `accountancy_code` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, + `accountancy_code` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4110 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1890,10 +1924,10 @@ DROP TABLE IF EXISTS `llx_c_civility`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_civility` ( `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, + `code` varchar(6) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_civility` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -1918,9 +1952,9 @@ 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 utf8mb3_unicode_ci NOT NULL, - `code_iso` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(2) NOT NULL, + `code_iso` varchar(3) DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `favorite` tinyint(4) NOT NULL DEFAULT 0, `eec` tinyint(4) NOT NULL DEFAULT 0, @@ -1949,9 +1983,9 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `unicode` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_iso` varchar(3) NOT NULL, + `label` varchar(128) DEFAULT NULL, + `unicode` varchar(32) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`code_iso`), UNIQUE KEY `uk_c_currencies_code_iso` (`code_iso`) @@ -1977,12 +2011,12 @@ 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 utf8mb3_unicode_ci NOT NULL, + `code_departement` varchar(6) NOT NULL, `fk_region` int(11) DEFAULT NULL, - `cheflieu` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cheflieu` varchar(50) DEFAULT NULL, `tncc` int(11) DEFAULT NULL, - `ncc` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `nom` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ncc` varchar(50) DEFAULT NULL, + `nom` varchar(50) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_departements` (`code_departement`,`fk_region`), @@ -2011,10 +2045,10 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(64) NOT NULL, + `label` varchar(255) DEFAULT NULL, `price` double(24,8) DEFAULT NULL, - `organization` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `organization` varchar(255) DEFAULT NULL, `fk_pays` int(11) NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), @@ -2041,10 +2075,10 @@ 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 utf8mb3_unicode_ci NOT NULL, - `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(12) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_effectif` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -2056,7 +2090,7 @@ CREATE TABLE `llx_c_effectif` ( LOCK TABLES `llx_c_effectif` WRITE; /*!40000 ALTER TABLE `llx_c_effectif` DISABLE KEYS */; -INSERT INTO `llx_c_effectif` VALUES (0,'EF0','-',1,NULL),(1,'EF1-5','1 - 5',1,NULL),(2,'EF6-10','6 - 10',1,NULL),(3,'EF11-50','11 - 50',1,NULL),(4,'EF51-100','51 - 100',1,NULL),(5,'EF100-500','100 - 500',1,NULL),(6,'EF500-','> 500',1,NULL); +INSERT INTO `llx_c_effectif` VALUES (0,'EF0','-',1,NULL),(1,'EF1-5','1 - 5',1,NULL),(2,'EF6-10','6 - 10',1,NULL),(3,'EF11-50','11 - 50',1,NULL),(4,'EF51-100','51 - 100',1,NULL),(5,'EF101-500','101 - 500',1,NULL),(6,'EF500-','> 500',1,NULL); /*!40000 ALTER TABLE `llx_c_effectif` ENABLE KEYS */; UNLOCK TABLES; @@ -2073,9 +2107,9 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `email` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, - `signature` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `email` varchar(255) NOT NULL, + `signature` text DEFAULT NULL, `position` smallint(6) DEFAULT 0, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), @@ -2102,21 +2136,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 utf8mb3_unicode_ci DEFAULT NULL, - `type_template` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `lang` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, + `type_template` varchar(32) DEFAULT NULL, + `lang` varchar(6) DEFAULT NULL, `private` smallint(6) NOT NULL DEFAULT 0, `fk_user` int(11) DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `position` smallint(6) DEFAULT NULL, `active` tinyint(4) NOT NULL 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', + `topic` text DEFAULT NULL, + `content` mediumtext DEFAULT NULL, + `content_lines` text DEFAULT NULL, + `enabled` varchar(255) DEFAULT '1', + `joinfiles` varchar(255) DEFAULT '1', + `email_from` varchar(255) DEFAULT NULL, + `email_to` varchar(255) DEFAULT NULL, + `email_tocc` varchar(255) DEFAULT NULL, + `email_tobcc` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_email_templates` (`entity`,`label`,`lang`), KEY `idx_type` (`type_template`) @@ -2129,7 +2167,7 @@ CREATE TABLE `llx_c_email_templates` ( LOCK TABLES `llx_c_email_templates` WRITE; /*!40000 ALTER TABLE `llx_c_email_templates` DISABLE KEYS */; -INSERT INTO `llx_c_email_templates` VALUES (1,1,NULL,'propal_send','',1,NULL,NULL,'2018-01-19 11:17:48','My Private email template for proposals',1,1,'Hello __FIRSTNAME__','We wish you a happy new year
__USER_SIGNATURE__',NULL,'1','1'),(2,0,'adherent','member','',0,NULL,NULL,'2018-01-19 11:17:48','(SendAnEMailToMember)',1,1,'__(CardContent)__','__(Hello)__,

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

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

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

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

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

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

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

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

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

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

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

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

\n\n__(YourMembershipWasCanceled)__
\n

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

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

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

\n\n__(YourCandidatureAnswer)__
\n

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

__(ThisIsContentOfYourOrganizationEventConfRequestWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


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

__(ThisIsContentOfYourOrganizationEventBoothRequestWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


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

__(ThisIsContentOfYourOrganizationEventBoothSubscriptionWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


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

__(ThisIsContentOfYourOrganizationEventEventSubscriptionWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


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

__(ThisIsContentOfYourOrganizationEventBulkMailToAttendees)__

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

__(ThisIsContentOfYourOrganizationEventBulkMailToSpeakers)__

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

Dear __MEMBER_FULLNAME__,

\n__(YourMembershipWillSoonExpireContent)__

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

Hello,

\n__(YourPartnershipWillSoonBeCanceledContent)__

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

Hello,

\n__(YourPartnershipCanceledContent)__

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

Hello,

\n__(YourPartnershipRefusedContent)__

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

Hello,

\n__(YourPartnershipAcceptedContent)__

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

__(OrganizationEventConfRequestWasReceived)__


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

__(OrganizationEventBoothRequestWasReceived)__


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

__(OrganizationEventPaymentOfBoothWasReceived)__


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

__(OrganizationEventPaymentOfRegistrationWasReceived)__

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

__(OrganizationEventBulkMailToAttendees)__

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

__(OrganizationEventBulkMailToSpeakers)__

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

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

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

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

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

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

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

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

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

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

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

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

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

\n\n__(YourMembershipWasCanceled)__
\n

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

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

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

\n\n__(YourCandidatureAnswer)__
\n

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

__(ThisIsContentOfYourOrganizationEventConfRequestWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


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

__(ThisIsContentOfYourOrganizationEventBoothRequestWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


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

__(ThisIsContentOfYourOrganizationEventBoothSubscriptionWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


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

__(ThisIsContentOfYourOrganizationEventEventSubscriptionWasReceived)__

__ONLINE_PAYMENT_TEXT_AND_URL__


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

__(ThisIsContentOfYourOrganizationEventBulkMailToAttendees)__

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

__(ThisIsContentOfYourOrganizationEventBulkMailToSpeakers)__

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

Dear __MEMBER_FULLNAME__,

\n__(YourMembershipWillSoonExpireContent)__

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

Hello,

\n__(YourPartnershipWillSoonBeCanceledContent)__

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

Hello,

\n__(YourPartnershipCanceledContent)__

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

Hello,

\n__(YourPartnershipRefusedContent)__

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

Hello,

\n__(YourPartnershipAcceptedContent)__

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

__(OrganizationEventConfRequestWasReceived)__


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

__(OrganizationEventBoothRequestWasReceived)__


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

__(OrganizationEventPaymentOfBoothWasReceived)__


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

__(OrganizationEventPaymentOfRegistrationWasReceived)__

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

__(OrganizationEventBulkMailToAttendees)__

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

__(OrganizationEventBulkMailToSpeakers)__

__(Sincerely)__
__USER_SIGNATURE__',NULL,'1',NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_c_email_templates` ENABLE KEYS */; UNLOCK TABLES; @@ -2142,7 +2180,7 @@ 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(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `active` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) @@ -2196,16 +2234,16 @@ 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 utf8mb3_unicode_ci NOT NULL, + `element` varchar(64) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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', + `name` varchar(32) NOT NULL, + `alias` varchar(32) NOT NULL, + `title` varchar(32) NOT NULL, + `align` varchar(6) DEFAULT 'left', `sort` tinyint(4) NOT NULL DEFAULT 1, `search` tinyint(4) NOT NULL DEFAULT 0, `visible` tinyint(4) NOT NULL DEFAULT 1, - `enabled` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT '1', + `enabled` varchar(255) DEFAULT '1', `rang` int(11) DEFAULT 0, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -2230,11 +2268,11 @@ DROP TABLE IF EXISTS `llx_c_format_cards`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_format_cards` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(50) COLLATE 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, + `code` varchar(50) NOT NULL, + `name` varchar(50) NOT NULL, + `paper_size` varchar(20) NOT NULL, + `orientation` varchar(1) NOT NULL, + `metric` varchar(5) NOT NULL, `leftmargin` double(24,8) NOT NULL, `topmargin` double(24,8) NOT NULL, `nx` int(11) NOT NULL, @@ -2272,10 +2310,10 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `libelle` varchar(255) DEFAULT NULL, `isvatexempted` tinyint(4) NOT NULL DEFAULT 0, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_forme_juridique` (`code`) @@ -2301,8 +2339,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(255) NOT NULL, `affect` int(11) NOT NULL, `delay` int(11) NOT NULL, `newbymonth` double(8,5) NOT NULL DEFAULT 0.00000, @@ -2334,8 +2372,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -2361,8 +2399,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(128) DEFAULT NULL, `c_level` tinyint(4) NOT NULL DEFAULT 0, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) @@ -2390,17 +2428,17 @@ CREATE TABLE `llx_c_hrm_public_holiday` ( `id` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 0, `fk_country` int(11) DEFAULT NULL, - `code` varchar(62) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `dayrule` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT '', + `code` varchar(62) DEFAULT NULL, + `dayrule` varchar(64) DEFAULT '', `day` int(11) DEFAULT NULL, `month` int(11) DEFAULT NULL, `year` int(11) DEFAULT NULL, `active` int(11) DEFAULT 1, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_hrm_public_holiday` (`entity`,`code`), UNIQUE KEY `uk_c_hrm_public_holiday2` (`entity`,`fk_country`,`dayrule`,`day`,`month`,`year`) -) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=83 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2409,7 +2447,7 @@ CREATE TABLE `llx_c_hrm_public_holiday` ( LOCK TABLES `llx_c_hrm_public_holiday` WRITE; /*!40000 ALTER TABLE `llx_c_hrm_public_holiday` DISABLE KEYS */; -INSERT INTO `llx_c_hrm_public_holiday` VALUES (1,0,0,'NEWYEARDAY1','',1,1,0,1,NULL),(2,0,0,'LABORDAY1','',1,5,0,1,NULL),(3,0,0,'ASSOMPTIONDAY1','',15,8,0,1,NULL),(4,0,0,'CHRISTMASDAY1','',25,12,0,1,NULL),(5,0,1,'FR-VICTORYDAY','',8,5,0,1,NULL),(6,0,1,'FR-NATIONALDAY','',14,7,0,1,NULL),(7,0,1,'FR-ASSOMPTION','',15,8,0,1,NULL),(8,0,1,'FR-TOUSSAINT','',1,11,0,1,NULL),(9,0,1,'FR-ARMISTICE','',11,11,0,1,NULL),(10,0,1,'FR-EASTER','eastermonday',0,0,0,1,NULL),(11,0,1,'FR-ASCENSION','ascension',0,0,0,1,NULL),(12,0,1,'FR-PENTECOST','pentecost',0,0,0,1,NULL),(13,0,3,'IT-LIBEAZIONE','',25,4,0,1,NULL),(14,0,3,'IT-EPIPHANY','',1,6,0,1,NULL),(15,0,3,'IT-REPUBBLICA','',2,6,0,1,NULL),(16,0,3,'IT-TUTTISANTIT','',1,11,0,1,NULL),(17,0,3,'IT-IMMACULE','',8,12,0,1,NULL),(18,0,3,'IT-SAINTSTEFAN','',26,12,0,1,NULL),(19,0,4,'ES-EASTER','easter',0,0,0,1,NULL),(20,0,4,'ES-REYE','',1,6,0,1,NULL),(21,0,4,'ES-HISPANIDAD','',12,10,0,1,NULL),(22,0,4,'ES-TOUSSAINT','',1,11,0,1,NULL),(23,0,4,'ES-CONSTITUIZION','',6,12,0,1,NULL),(24,0,4,'ES-IMMACULE','',8,12,0,1,NULL),(25,0,41,'AT-EASTER','eastermonday',0,0,0,1,NULL),(26,0,41,'AT-ASCENSION','ascension',0,0,0,1,NULL),(27,0,41,'AT-PENTECOST','pentecost',0,0,0,1,NULL),(28,0,41,'AT-FRONLEICHNAM','fronleichnam',0,0,0,1,NULL),(29,0,41,'AT-KONEGIE','',1,6,0,1,NULL),(30,0,41,'AT-26OKT','',26,10,0,1,NULL),(31,0,41,'AT-TOUSSAINT','',1,11,0,1,NULL),(32,0,41,'AT-IMMACULE','',8,12,0,1,NULL),(33,0,41,'AT-24DEC','',24,12,0,1,NULL),(34,0,41,'AT-SAINTSTEFAN','',26,12,0,1,NULL),(35,0,41,'AT-Silvester','',31,12,0,1,NULL),(36,0,117,'IN-REPUBLICDAY','',26,1,0,1,NULL),(37,0,117,'IN-GANDI','',2,10,0,1,NULL); +INSERT INTO `llx_c_hrm_public_holiday` VALUES (1,0,0,'NEWYEARDAY1','',1,1,0,1,NULL),(2,0,0,'LABORDAY1','',1,5,0,1,NULL),(3,0,0,'ASSOMPTIONDAY1','',15,8,0,1,NULL),(4,0,0,'CHRISTMASDAY1','',25,12,0,1,NULL),(5,0,1,'FR-VICTORYDAY','',8,5,0,1,NULL),(6,0,1,'FR-NATIONALDAY','',14,7,0,1,NULL),(7,0,1,'FR-ASSOMPTION','',15,8,0,1,NULL),(8,0,1,'FR-TOUSSAINT','',1,11,0,1,NULL),(9,0,1,'FR-ARMISTICE','',11,11,0,1,NULL),(10,0,1,'FR-EASTER','eastermonday',0,0,0,1,NULL),(11,0,1,'FR-ASCENSION','ascension',0,0,0,1,NULL),(12,0,1,'FR-PENTECOST','pentecost',0,0,0,1,NULL),(13,0,3,'IT-LIBEAZIONE','',25,4,0,1,NULL),(14,0,3,'IT-EPIPHANY','',1,6,0,1,NULL),(15,0,3,'IT-REPUBBLICA','',2,6,0,1,NULL),(16,0,3,'IT-TUTTISANTIT','',1,11,0,1,NULL),(17,0,3,'IT-IMMACULE','',8,12,0,1,NULL),(18,0,3,'IT-SAINTSTEFAN','',26,12,0,1,NULL),(19,0,4,'ES-EASTER','easter',0,0,0,1,NULL),(20,0,4,'ES-REYE','',1,6,0,1,NULL),(21,0,4,'ES-HISPANIDAD','',12,10,0,1,NULL),(22,0,4,'ES-TOUSSAINT','',1,11,0,1,NULL),(23,0,4,'ES-CONSTITUIZION','',6,12,0,1,NULL),(24,0,4,'ES-IMMACULE','',8,12,0,1,NULL),(25,0,41,'AT-EASTER','eastermonday',0,0,0,1,NULL),(26,0,41,'AT-ASCENSION','ascension',0,0,0,1,NULL),(27,0,41,'AT-PENTECOST','pentecost',0,0,0,1,NULL),(28,0,41,'AT-FRONLEICHNAM','fronleichnam',0,0,0,1,NULL),(29,0,41,'AT-KONEGIE','',1,6,0,1,NULL),(30,0,41,'AT-26OKT','',26,10,0,1,NULL),(31,0,41,'AT-TOUSSAINT','',1,11,0,1,NULL),(32,0,41,'AT-IMMACULE','',8,12,0,1,NULL),(33,0,41,'AT-24DEC','',24,12,0,1,NULL),(34,0,41,'AT-SAINTSTEFAN','',26,12,0,1,NULL),(35,0,41,'AT-Silvester','',31,12,0,1,NULL),(36,0,117,'IN-REPUBLICDAY','',26,1,0,1,NULL),(37,0,117,'IN-GANDI','',2,10,0,1,NULL),(75,0,2,'BE-VICTORYDAY','',8,5,0,1,NULL),(76,0,2,'BE-NATIONALDAY','',21,7,0,1,NULL),(77,0,2,'BE-ASSOMPTION','',15,8,0,1,NULL),(78,0,2,'BE-TOUSSAINT','',1,11,0,1,NULL),(79,0,2,'BE-ARMISTICE','',11,11,0,1,NULL),(80,0,2,'BE-EASTER','eastermonday',0,0,0,1,NULL),(81,0,2,'BE-ASCENSION','ascension',0,0,0,1,NULL),(82,0,2,'BE-PENTECOST','pentecost',0,0,0,1,NULL); /*!40000 ALTER TABLE `llx_c_hrm_public_holiday` ENABLE KEYS */; UNLOCK TABLES; @@ -2422,10 +2460,10 @@ 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 utf8mb3_unicode_ci NOT NULL, - `libelle` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(3) NOT NULL, + `libelle` varchar(255) NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `label` varchar(100) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(100) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_incoterms` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -2450,10 +2488,10 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(30) DEFAULT NULL, + `libelle` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_methode_commande_fournisseur` (`code`), UNIQUE KEY `uk_c_input_method` (`code`) @@ -2479,10 +2517,10 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(30) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_input_reason` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -2507,8 +2545,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(10) DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, `position` int(11) DEFAULT NULL, `percent` double(5,2) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, @@ -2537,12 +2575,12 @@ 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 utf8mb3_unicode_ci NOT NULL, - `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(6) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, `type` smallint(6) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `accountancy_code` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code` varchar(32) DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_paiement_code` (`entity`,`code`) @@ -2555,7 +2593,7 @@ CREATE TABLE `llx_c_paiement` ( LOCK TABLES `llx_c_paiement` WRITE; /*!40000 ALTER TABLE `llx_c_paiement` DISABLE KEYS */; -INSERT INTO `llx_c_paiement` VALUES (1,1,'TIP','TIP',2,0,NULL,NULL,0),(2,1,'VIR','Virement',2,1,NULL,NULL,0),(3,1,'PRE','Prélèvement',2,1,NULL,NULL,0),(4,1,'LIQ','Espèces',2,1,NULL,NULL,0),(6,1,'CB','Carte Bancaire',2,1,NULL,NULL,0),(7,1,'CHQ','Chèque',2,1,NULL,NULL,0),(50,1,'VAD','Paiement en ligne',2,0,NULL,NULL,0),(51,1,'TRA','Traite',2,0,NULL,NULL,0),(52,1,'LCR','LCR',2,0,NULL,NULL,0),(53,1,'FAC','Factor',2,0,NULL,NULL,0),(100,1,'KLA','Klarna',1,0,NULL,NULL,0),(101,1,'SOF','Sofort',1,0,NULL,NULL,0),(102,1,'BAN','Bancontact',1,0,NULL,NULL,0),(103,1,'IDE','iDeal',1,0,NULL,NULL,0),(104,1,'GIR','Giropay',1,0,NULL,NULL,0); +INSERT INTO `llx_c_paiement` VALUES (1,1,'TIP','TIP',2,0,NULL,NULL,0),(2,1,'VIR','Virement',2,1,NULL,NULL,0),(3,1,'PRE','Prélèvement',2,1,NULL,NULL,0),(4,1,'LIQ','Espèces',2,1,NULL,NULL,0),(6,1,'CB','Carte Bancaire',2,1,NULL,NULL,0),(7,1,'CHQ','Chèque',2,1,NULL,NULL,0),(50,1,'VAD','Paiement en ligne',2,0,NULL,NULL,0),(51,1,'TRA','Traite',2,0,NULL,NULL,0),(52,1,'LCR','LCR',2,0,NULL,NULL,0),(53,1,'FAC','Factor',2,0,NULL,NULL,0),(100,1,'KLA','Klarna',1,0,NULL,NULL,0),(101,1,'SOF','Sofort',1,0,NULL,NULL,0),(102,1,'BANCON','Bancontact',1,0,NULL,NULL,0),(103,1,'IDE','iDeal',1,0,NULL,NULL,0),(104,1,'GIR','Giropay',1,0,NULL,NULL,0); /*!40000 ALTER TABLE `llx_c_paiement` ENABLE KEYS */; UNLOCK TABLES; @@ -2568,13 +2606,13 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(128) DEFAULT NULL, `width` float(6,2) DEFAULT 0.00, `height` float(6,2) DEFAULT 0.00, - `unit` varchar(5) COLLATE utf8mb3_unicode_ci NOT NULL, + `unit` varchar(5) NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=226 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2599,10 +2637,10 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(32) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `keyword` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `keyword` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_partnership_type` (`entity`,`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -2627,16 +2665,16 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(16) DEFAULT NULL, `sortorder` smallint(6) DEFAULT NULL, `active` tinyint(4) DEFAULT 1, - `libelle` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `libelle_facture` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `libelle` varchar(255) DEFAULT NULL, + `libelle_facture` text DEFAULT NULL, `type_cdr` tinyint(4) DEFAULT NULL, `nbjour` smallint(6) DEFAULT NULL, `decalage` smallint(6) DEFAULT NULL, - `deposit_percent` varchar(63) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `deposit_percent` varchar(63) DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_payment_term_code` (`entity`,`code`) @@ -2662,8 +2700,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `expression` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `title` varchar(20) NOT NULL, + `expression` varchar(255) NOT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2686,8 +2724,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(20) NOT NULL, + `description` text DEFAULT NULL, `value` double(24,8) DEFAULT 0.00000000, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -2712,12 +2750,12 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `parameters` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, + `parameters` text DEFAULT NULL, `fk_variable` int(11) NOT NULL, `update_interval` int(11) DEFAULT 0, `next_update` int(11) DEFAULT 0, - `last_status` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_status` text DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2741,7 +2779,7 @@ 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(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_product_nature` (`code`) @@ -2768,8 +2806,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(16) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_productbatch_qcstatus` (`code`,`entity`) @@ -2795,8 +2833,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(12) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_propalst` (`code`) @@ -2821,11 +2859,11 @@ DROP TABLE IF EXISTS `llx_c_prospectcontactlevel`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_prospectcontactlevel` ( - `code` varchar(12) CHARACTER SET utf8mb4 NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `label` varchar(128) DEFAULT NULL, `sortorder` smallint(6) DEFAULT NULL, `active` smallint(6) NOT NULL DEFAULT 1, - `module` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL, + `module` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2848,11 +2886,11 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(12) NOT NULL, + `label` varchar(128) DEFAULT NULL, `sortorder` smallint(6) DEFAULT NULL, `active` smallint(6) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2876,8 +2914,8 @@ DROP TABLE IF EXISTS `llx_c_recruitment_origin`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_recruitment_origin` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(32) CHARACTER SET utf8mb4 NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -2903,9 +2941,9 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `cheflieu` varchar(50) DEFAULT NULL, `tncc` int(11) DEFAULT NULL, - `nom` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `nom` varchar(50) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `code_region` (`code_region`), @@ -2935,11 +2973,11 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `note` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `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', + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, + `revenuestamp_type` varchar(16) NOT NULL DEFAULT 'fixed', PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=102 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2964,12 +3002,12 @@ 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 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, + `code` varchar(30) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, + `description` text DEFAULT NULL, + `tracking` varchar(255) DEFAULT NULL, `active` tinyint(4) DEFAULT 0, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_shipment_mode` (`code`,`entity`) @@ -2995,8 +3033,8 @@ 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(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `description` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, `active` int(11) NOT NULL DEFAULT 1, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) @@ -3022,10 +3060,10 @@ 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 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, + `code` varchar(100) DEFAULT NULL, + `label` varchar(150) DEFAULT NULL, + `url` text DEFAULT NULL, + `icon` varchar(20) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_c_socialnetworks_code` (`code`) @@ -3051,10 +3089,10 @@ 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(24) COLLATE utf8mb3_unicode_ci NOT NULL, - `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(24) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `picto` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `picto` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_stcomm` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3079,9 +3117,9 @@ DROP TABLE IF EXISTS `llx_c_stcommcontact`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_stcommcontact` ( `id` int(11) NOT NULL, - `code` varchar(12) CHARACTER SET utf8mb4 NOT NULL, - `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `picto` varchar(128) CHARACTER SET utf8mb4 DEFAULT NULL, + `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `libelle` varchar(128) DEFAULT NULL, + `picto` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_stcommcontact` (`code`) @@ -3108,14 +3146,14 @@ 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 utf8mb3_unicode_ci NOT NULL, + `code` varchar(32) NOT NULL, `pos` int(11) NOT NULL DEFAULT 0, - `label` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) NOT NULL, `active` int(11) DEFAULT 1, `use_default` int(11) DEFAULT 1, - `description` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, `fk_parent` int(11) NOT NULL DEFAULT 0, - `force_severity` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `force_severity` varchar(32) DEFAULT NULL, `public` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_code` (`code`,`entity`) @@ -3142,12 +3180,12 @@ 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 utf8mb3_unicode_ci NOT NULL, - `pos` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(32) NOT NULL, + `pos` varchar(32) NOT NULL, + `label` varchar(128) NOT NULL, `active` int(11) DEFAULT 1, `use_default` int(11) DEFAULT 1, - `description` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_code` (`code`,`entity`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3173,13 +3211,13 @@ 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 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, + `code` varchar(32) NOT NULL, + `pos` varchar(32) NOT NULL, + `label` varchar(128) NOT NULL, + `color` varchar(10) DEFAULT NULL, `active` int(11) DEFAULT 1, `use_default` int(11) DEFAULT 1, - `description` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_code` (`code`,`entity`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3205,12 +3243,12 @@ 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 utf8mb3_unicode_ci NOT NULL, - `pos` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(32) NOT NULL, + `pos` varchar(32) NOT NULL, + `label` varchar(128) NOT NULL, `active` int(11) DEFAULT 1, `use_default` int(11) DEFAULT 1, - `description` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_code` (`code`,`entity`) ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3236,8 +3274,8 @@ DROP TABLE IF EXISTS `llx_c_transport_mode`; CREATE TABLE `llx_c_transport_mode` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `code` varchar(3) CHARACTER SET utf8mb4 NOT NULL, - `label` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `code` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=321 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3263,17 +3301,18 @@ 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 utf8mb3_unicode_ci DEFAULT '', + `code` varchar(10) DEFAULT '', `taux` double NOT NULL, - `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', + `localtax1` varchar(20) DEFAULT NULL, + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', + `localtax2` varchar(20) DEFAULT NULL, + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `recuperableonly` int(11) NOT NULL DEFAULT 0, - `note` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `accountancy_code_sell` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `accountancy_code_buy` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, + `use_default` tinyint(4) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_tva_id` (`fk_pays`,`code`,`taux`,`recuperableonly`) ) ENGINE=InnoDB AUTO_INCREMENT=2478 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3285,7 +3324,7 @@ CREATE TABLE `llx_c_tva` ( LOCK TABLES `llx_c_tva` WRITE; /*!40000 ALTER TABLE `llx_c_tva` DISABLE KEYS */; -INSERT INTO `llx_c_tva` VALUES (11,1,'',20,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL),(12,1,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(13,1,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(14,1,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',1,NULL,NULL),(15,1,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(16,1,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(17,1,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(21,2,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(22,2,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(23,2,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(24,2,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(31,3,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(32,3,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(33,3,'',4,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(34,3,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(41,4,'',21,'5.2','3','-19:-15:-9','5',0,'VAT standard rate',1,NULL,NULL),(42,4,'',10,'1.4','3','-19:-15:-9','5',0,'VAT reduced rate',1,NULL,NULL),(43,4,'',4,'0.5','3','-19:-15:-9','5',0,'VAT super-reduced rate',1,NULL,NULL),(44,4,'',0,'0','3','-19:-15:-9','5',0,'VAT Rate 0',1,NULL,NULL),(51,5,'',19,NULL,'0',NULL,'0',0,'allgemeine Ust.',1,NULL,NULL),(52,5,'',7,NULL,'0',NULL,'0',0,'ermäßigte USt.',1,NULL,NULL),(53,5,'',0,NULL,'0',NULL,'0',0,'keine USt.',1,NULL,NULL),(54,5,'',5.5,NULL,'0',NULL,'0',0,'USt. Forst',0,NULL,NULL),(55,5,'',10.7,NULL,'0',NULL,'0',0,'USt. Landwirtschaft',0,NULL,NULL),(61,6,'',8,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(62,6,'',3.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(63,6,'',2.5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(64,6,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(71,7,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(72,7,'',17.5,NULL,'0',NULL,'0',0,'VAT standard rate before 2011',1,NULL,NULL),(73,7,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(74,7,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(81,8,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(82,8,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(83,8,'',13.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(84,8,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(85,8,'',4.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(91,9,'',17,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(92,9,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate 0',1,NULL,NULL),(93,9,'',3,NULL,'0',NULL,'0',0,'VAT super reduced rate 0',1,NULL,NULL),(94,9,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(101,10,'',6,'1','4','0','0',0,'VAT 6%',1,NULL,NULL),(102,10,'',12,'1','4','0','0',0,'VAT 12%',1,NULL,NULL),(103,10,'',18,'1','4','0','0',0,'VAT 18%',1,NULL,NULL),(104,10,'',7.5,'1','4','0','0',0,'VAT 6% Majoré à 25% (7.5%)',1,NULL,NULL),(105,10,'',15,'1','4','0','0',0,'VAT 12% Majoré à 25% (15%)',1,NULL,NULL),(106,10,'',22.5,'1','4','0','0',0,'VAT 18% Majoré à 25% (22.5%)',1,NULL,NULL),(107,10,'',0,'1','4','0','0',0,'VAT Rate 0',1,NULL,NULL),(111,11,'',0,NULL,'0',NULL,'0',0,'No Sales Tax',1,NULL,NULL),(112,11,'',4,NULL,'0',NULL,'0',0,'Sales Tax 4%',1,NULL,NULL),(113,11,'',6,NULL,'0',NULL,'0',0,'Sales Tax 6%',1,NULL,NULL),(121,12,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(122,12,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(123,12,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(124,12,'',7,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(125,12,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(141,14,'',7,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(142,14,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(143,14,'',5,'9.975','1',NULL,'0',0,'GST/TPS and PST/TVQ rate for Province',1,NULL,NULL),(171,17,'',19,NULL,'0',NULL,'0',0,'Algemeen BTW tarief',1,NULL,NULL),(172,17,'',6,NULL,'0',NULL,'0',0,'Verlaagd BTW tarief',1,NULL,NULL),(173,17,'',0,NULL,'0',NULL,'0',0,'0 BTW tarief',1,NULL,NULL),(174,17,'',21,NULL,'0',NULL,'0',0,'Algemeen BTW tarief (vanaf 1 oktober 2012)',0,NULL,NULL),(201,20,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(202,20,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(203,20,'',6,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(204,20,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(211,21,'',0,'0','0','0','0',0,'IVA Rate 0',1,NULL,NULL),(212,21,'',18,'7.5','2','0','0',0,'IVA standard rate',1,NULL,NULL),(221,22,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(222,22,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(223,22,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(231,23,'',21,NULL,'0',NULL,'0',0,'IVA standard rate',1,NULL,NULL),(232,23,'',10.5,NULL,'0',NULL,'0',0,'IVA reduced rate',1,NULL,NULL),(233,23,'',0,NULL,'0',NULL,'0',0,'IVA Rate 0',1,NULL,NULL),(241,24,'',19.25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(242,24,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(251,25,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(252,25,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(253,25,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(254,25,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(261,26,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(271,27,'',19.6,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL),(272,27,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(273,27,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(274,27,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',0,NULL,NULL),(275,27,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(276,27,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(277,27,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(281,28,'',10,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(282,28,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(411,41,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(412,41,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(413,41,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(461,46,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(462,46,'',15,NULL,'0',NULL,'0',0,'VAT 15%',1,NULL,NULL),(463,46,'',7.5,NULL,'0',NULL,'0',0,'VAT 7.5%',1,NULL,NULL),(561,56,'',0,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(591,59,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(592,59,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(593,59,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(671,67,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(672,67,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(801,80,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(802,80,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(861,86,'',13,NULL,'0',NULL,'0',0,'IVA 13',1,NULL,NULL),(862,86,'',0,NULL,'0',NULL,'0',0,'SIN IVA',1,NULL,NULL),(1141,114,'',0,NULL,'0',NULL,'0',0,'No ISV',1,NULL,NULL),(1142,114,'',12,NULL,'0',NULL,'0',0,'ISV 12%',1,NULL,NULL),(1161,116,'',25.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1162,116,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1163,116,'',0,NULL,'0',NULL,'0',0,'VAT rate 0',1,NULL,NULL),(1171,117,'',12.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1172,117,'',4,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1173,117,'',1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1174,117,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1176,117,'CGST+SGST',0,'9','1','9','1',0,'CGST+SGST - Same state sales',1,NULL,NULL),(1177,117,'IGST',18,'0','0','0','0',0,'IGST',1,NULL,NULL),(1231,123,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1232,123,'',5,NULL,'0',NULL,'0',0,'VAT Rate 5',1,NULL,NULL),(1401,140,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1402,140,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1403,140,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1404,140,'',3,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1405,140,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1481,148,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1482,148,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1483,148,'',5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1484,148,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1511,151,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1512,151,'',14,NULL,'0',NULL,'0',0,'VAT Rate 14',1,NULL,NULL),(1521,152,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1522,152,'',15,NULL,'0',NULL,'0',0,'VAT Rate 15',1,NULL,NULL),(1541,154,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(1542,154,'',16,NULL,'0',NULL,'0',0,'VAT 16%',1,NULL,NULL),(1543,154,'',10,NULL,'0',NULL,'0',0,'VAT Frontero',1,NULL,NULL),(1662,166,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1663,166,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1692,169,'',5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1693,169,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1731,173,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1732,173,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1733,173,'',8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1734,173,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1781,178,'',7,NULL,'0',NULL,'0',0,'ITBMS standard rate',1,NULL,NULL),(1782,178,'',0,NULL,'0',NULL,'0',0,'ITBMS Rate 0',1,NULL,NULL),(1811,181,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1812,181,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1841,184,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1842,184,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1843,184,'',3,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1844,184,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1881,188,'',24,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1882,188,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1883,188,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1884,188,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1931,193,'',0,NULL,'0',NULL,'0',0,'No VAT in SPM',1,NULL,NULL),(2011,201,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(2012,201,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(2013,201,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2021,202,'',22,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(2022,202,'',9.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(2023,202,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2051,205,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(2052,205,'',14,NULL,'0',NULL,'0',0,'VAT 14%',1,NULL,NULL),(2131,213,'',5,NULL,'0',NULL,'0',0,'VAT 5%',1,NULL,NULL),(2261,226,'',20,NULL,'0',NULL,'0',0,'VAT standart rate',1,NULL,NULL),(2262,226,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2321,232,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(2322,232,'',12,NULL,'0',NULL,'0',0,'VAT 12%',1,NULL,NULL),(2323,232,'',8,NULL,'0',NULL,'0',0,'VAT 8%',1,NULL,NULL),(2461,246,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2462,102,'',23,'0','0','0','0',0,'Κανονικός Φ.Π.Α.',1,NULL,NULL),(2463,102,'',0,'0','0','0','0',0,'Μηδενικό Φ.Π.Α.',1,NULL,NULL),(2464,102,'',13,'0','0','0','0',0,'Μειωμένος Φ.Π.Α.',1,NULL,NULL),(2465,102,'',6.5,'0','0','0','0',0,'Υπερμειωμένος Φ.Π.Α.',1,NULL,NULL),(2466,102,'',16,'0','0','0','0',0,'Νήσων κανονικός Φ.Π.Α.',1,NULL,NULL),(2467,102,'',9,'0','0','0','0',0,'Νήσων μειωμένος Φ.Π.Α.',1,NULL,NULL),(2468,102,'',5,'0','0','0','0',0,'Νήσων υπερμειωμένος Φ.Π.Α.',1,NULL,NULL),(2469,1,'85',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(2470,1,'85NPR',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(2471,1,'85NPROM',8.5,'2','3',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer',0,NULL,NULL),(2472,1,'85NPROMOMR',8.5,'2','3','2.5','3',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer et Octroi de Mer Regional',0,NULL,NULL),(2477,117,'',19.6,'0','0','0','0',0,'aaa',1,'101','10'); +INSERT INTO `llx_c_tva` VALUES (11,1,'',20,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL,0),(12,1,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL,0),(13,1,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL,0),(14,1,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',1,NULL,NULL,0),(15,1,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL,0),(16,1,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(17,1,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(21,2,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(22,2,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(23,2,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL,0),(24,2,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(31,3,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(32,3,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(33,3,'',4,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(34,3,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(41,4,'',21,'5.2','3','-19:-15:-9','5',0,'VAT standard rate',1,NULL,NULL,0),(42,4,'',10,'1.4','3','-19:-15:-9','5',0,'VAT reduced rate',1,NULL,NULL,0),(43,4,'',4,'0.5','3','-19:-15:-9','5',0,'VAT super-reduced rate',1,NULL,NULL,0),(44,4,'',0,'0','3','-19:-15:-9','5',0,'VAT Rate 0',1,NULL,NULL,0),(51,5,'',19,NULL,'0',NULL,'0',0,'allgemeine Ust.',1,NULL,NULL,0),(52,5,'',7,NULL,'0',NULL,'0',0,'ermäßigte USt.',1,NULL,NULL,0),(53,5,'',0,NULL,'0',NULL,'0',0,'keine USt.',1,NULL,NULL,0),(54,5,'',5.5,NULL,'0',NULL,'0',0,'USt. Forst',0,NULL,NULL,0),(55,5,'',10.7,NULL,'0',NULL,'0',0,'USt. Landwirtschaft',0,NULL,NULL,0),(61,6,'',8,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(62,6,'',3.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(63,6,'',2.5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(64,6,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(71,7,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(72,7,'',17.5,NULL,'0',NULL,'0',0,'VAT standard rate before 2011',1,NULL,NULL,0),(73,7,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(74,7,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(81,8,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(82,8,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(83,8,'',13.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(84,8,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(85,8,'',4.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(91,9,'',17,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(92,9,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate 0',1,NULL,NULL,0),(93,9,'',3,NULL,'0',NULL,'0',0,'VAT super reduced rate 0',1,NULL,NULL,0),(94,9,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(101,10,'',6,'1','4','0','0',0,'VAT 6%',1,NULL,NULL,0),(102,10,'',12,'1','4','0','0',0,'VAT 12%',1,NULL,NULL,0),(103,10,'',18,'1','4','0','0',0,'VAT 18%',1,NULL,NULL,0),(104,10,'',7.5,'1','4','0','0',0,'VAT 6% Majoré à 25% (7.5%)',1,NULL,NULL,0),(105,10,'',15,'1','4','0','0',0,'VAT 12% Majoré à 25% (15%)',1,NULL,NULL,0),(106,10,'',22.5,'1','4','0','0',0,'VAT 18% Majoré à 25% (22.5%)',1,NULL,NULL,0),(107,10,'',0,'1','4','0','0',0,'VAT Rate 0',1,NULL,NULL,0),(111,11,'',0,NULL,'0',NULL,'0',0,'No Sales Tax',1,NULL,NULL,0),(112,11,'',4,NULL,'0',NULL,'0',0,'Sales Tax 4%',1,NULL,NULL,0),(113,11,'',6,NULL,'0',NULL,'0',0,'Sales Tax 6%',1,NULL,NULL,0),(121,12,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(122,12,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(123,12,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(124,12,'',7,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(125,12,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(141,14,'',7,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(142,14,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(143,14,'',5,'9.975','1',NULL,'0',0,'GST/TPS and PST/TVQ rate for Province',1,NULL,NULL,0),(171,17,'',19,NULL,'0',NULL,'0',0,'Algemeen BTW tarief',1,NULL,NULL,0),(172,17,'',6,NULL,'0',NULL,'0',0,'Verlaagd BTW tarief',1,NULL,NULL,0),(173,17,'',0,NULL,'0',NULL,'0',0,'0 BTW tarief',1,NULL,NULL,0),(174,17,'',21,NULL,'0',NULL,'0',0,'Algemeen BTW tarief (vanaf 1 oktober 2012)',0,NULL,NULL,0),(201,20,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(202,20,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(203,20,'',6,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(204,20,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(211,21,'',0,'0','0','0','0',0,'IVA Rate 0',1,NULL,NULL,0),(212,21,'',18,'7.5','2','0','0',0,'IVA standard rate',1,NULL,NULL,0),(221,22,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(222,22,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(223,22,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(231,23,'',21,NULL,'0',NULL,'0',0,'IVA standard rate',1,NULL,NULL,0),(232,23,'',10.5,NULL,'0',NULL,'0',0,'IVA reduced rate',1,NULL,NULL,0),(233,23,'',0,NULL,'0',NULL,'0',0,'IVA Rate 0',1,NULL,NULL,0),(241,24,'',19.25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(242,24,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(251,25,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(252,25,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(253,25,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(254,25,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(261,26,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(271,27,'',19.6,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL,0),(272,27,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL,0),(273,27,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL,0),(274,27,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',0,NULL,NULL,0),(275,27,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL,0),(276,27,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(277,27,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(281,28,'',10,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(282,28,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(411,41,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(412,41,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(413,41,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(461,46,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL,0),(462,46,'',15,NULL,'0',NULL,'0',0,'VAT 15%',1,NULL,NULL,0),(463,46,'',7.5,NULL,'0',NULL,'0',0,'VAT 7.5%',1,NULL,NULL,0),(561,56,'',0,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(591,59,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(592,59,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(593,59,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(671,67,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(672,67,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(801,80,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(802,80,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(861,86,'',13,NULL,'0',NULL,'0',0,'IVA 13',1,NULL,NULL,0),(862,86,'',0,NULL,'0',NULL,'0',0,'SIN IVA',1,NULL,NULL,0),(1141,114,'',0,NULL,'0',NULL,'0',0,'No ISV',1,NULL,NULL,0),(1142,114,'',12,NULL,'0',NULL,'0',0,'ISV 12%',1,NULL,NULL,0),(1161,116,'',25.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1162,116,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1163,116,'',0,NULL,'0',NULL,'0',0,'VAT rate 0',1,NULL,NULL,0),(1171,117,'',12.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1172,117,'',4,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1173,117,'',1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(1174,117,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1176,117,'CGST+SGST',0,'9','1','9','1',0,'CGST+SGST - Same state sales',1,NULL,NULL,0),(1177,117,'IGST',18,'0','0','0','0',0,'IGST',1,NULL,NULL,0),(1231,123,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1232,123,'',5,NULL,'0',NULL,'0',0,'VAT Rate 5',1,NULL,NULL,0),(1401,140,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1402,140,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1403,140,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1404,140,'',3,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(1405,140,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1481,148,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1482,148,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1483,148,'',5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL,0),(1484,148,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1511,151,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1512,151,'',14,NULL,'0',NULL,'0',0,'VAT Rate 14',1,NULL,NULL,0),(1521,152,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1522,152,'',15,NULL,'0',NULL,'0',0,'VAT Rate 15',1,NULL,NULL,0),(1541,154,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL,0),(1542,154,'',16,NULL,'0',NULL,'0',0,'VAT 16%',1,NULL,NULL,0),(1543,154,'',10,NULL,'0',NULL,'0',0,'VAT Frontero',1,NULL,NULL,0),(1662,166,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1663,166,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1692,169,'',5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1693,169,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1731,173,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1732,173,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1733,173,'',8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1734,173,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1781,178,'',7,NULL,'0',NULL,'0',0,'ITBMS standard rate',1,NULL,NULL,0),(1782,178,'',0,NULL,'0',NULL,'0',0,'ITBMS Rate 0',1,NULL,NULL,0),(1811,181,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1812,181,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1841,184,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1842,184,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1843,184,'',3,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1844,184,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1881,188,'',24,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(1882,188,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1883,188,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(1884,188,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(1931,193,'',0,NULL,'0',NULL,'0',0,'No VAT in SPM',1,NULL,NULL,0),(2011,201,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(2012,201,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(2013,201,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(2021,202,'',22,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL,0),(2022,202,'',9.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL,0),(2023,202,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(2051,205,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL,0),(2052,205,'',14,NULL,'0',NULL,'0',0,'VAT 14%',1,NULL,NULL,0),(2131,213,'',5,NULL,'0',NULL,'0',0,'VAT 5%',1,NULL,NULL,0),(2261,226,'',20,NULL,'0',NULL,'0',0,'VAT standart rate',1,NULL,NULL,0),(2262,226,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(2321,232,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL,0),(2322,232,'',12,NULL,'0',NULL,'0',0,'VAT 12%',1,NULL,NULL,0),(2323,232,'',8,NULL,'0',NULL,'0',0,'VAT 8%',1,NULL,NULL,0),(2461,246,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL,0),(2462,102,'',23,'0','0','0','0',0,'Κανονικός Φ.Π.Α.',1,NULL,NULL,0),(2463,102,'',0,'0','0','0','0',0,'Μηδενικό Φ.Π.Α.',1,NULL,NULL,0),(2464,102,'',13,'0','0','0','0',0,'Μειωμένος Φ.Π.Α.',1,NULL,NULL,0),(2465,102,'',6.5,'0','0','0','0',0,'Υπερμειωμένος Φ.Π.Α.',1,NULL,NULL,0),(2466,102,'',16,'0','0','0','0',0,'Νήσων κανονικός Φ.Π.Α.',1,NULL,NULL,0),(2467,102,'',9,'0','0','0','0',0,'Νήσων μειωμένος Φ.Π.Α.',1,NULL,NULL,0),(2468,102,'',5,'0','0','0','0',0,'Νήσων υπερμειωμένος Φ.Π.Α.',1,NULL,NULL,0),(2469,1,'85',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL,0),(2470,1,'85NPR',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL,0),(2471,1,'85NPROM',8.5,'2','3',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer',0,NULL,NULL,0),(2472,1,'85NPROMOMR',8.5,'2','3','2.5','3',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer et Octroi de Mer Regional',0,NULL,NULL,0),(2477,117,'',19.6,'0','0','0','0',0,'aaa',1,'101','10',0); /*!40000 ALTER TABLE `llx_c_tva` ENABLE KEYS */; UNLOCK TABLES; @@ -3298,12 +3337,12 @@ 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 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, + `element` varchar(30) NOT NULL, + `source` varchar(8) NOT NULL DEFAULT 'external', + `code` varchar(32) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_type_contact_id` (`element`,`source`,`code`) @@ -3329,11 +3368,11 @@ 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 utf8mb3_unicode_ci NOT NULL, + `code` varchar(32) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_type_container_id` (`code`,`entity`) ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3358,11 +3397,11 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `accountancy_code` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(12) NOT NULL, + `label` varchar(128) DEFAULT NULL, + `accountancy_code` varchar(32) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, `type` int(11) DEFAULT 0, PRIMARY KEY (`id`), @@ -3389,8 +3428,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(32) NOT NULL, + `label` varchar(128) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_type_resource_id` (`label`,`code`) @@ -3416,11 +3455,11 @@ 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 utf8mb3_unicode_ci NOT NULL, - `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(12) NOT NULL, + `libelle` varchar(128) DEFAULT NULL, `fk_country` int(11) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`id`), UNIQUE KEY `uk_c_typent` (`code`) @@ -3446,13 +3485,13 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(3) DEFAULT NULL, `sortorder` smallint(6) DEFAULT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `short_label` varchar(5) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, + `short_label` varchar(5) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `scale` int(11) DEFAULT NULL, - `unit_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `unit_type` varchar(10) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_c_units_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3477,11 +3516,11 @@ DROP TABLE IF EXISTS `llx_c_ziptown`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_c_ziptown` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(5) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(5) DEFAULT NULL, `fk_county` int(11) DEFAULT NULL, `fk_pays` int(11) NOT NULL DEFAULT 0, - `zip` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL, - `town` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `zip` varchar(10) NOT NULL, + `town` varchar(255) NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_ziptown_fk_pays` (`zip`,`town`,`fk_pays`), @@ -3514,8 +3553,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(8) NOT NULL, + `label` varchar(64) NOT NULL, `active` smallint(6) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3539,8 +3578,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(8) NOT NULL, + `label` varchar(64) NOT NULL, `position` int(11) DEFAULT 10, `active` smallint(6) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) @@ -3568,24 +3607,24 @@ CREATE TABLE `llx_cabinetmed_cons` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_soc` int(11) DEFAULT NULL, `datecons` date NOT NULL, - `typepriseencharge` varchar(8) COLLATE 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, + `typepriseencharge` varchar(8) DEFAULT NULL, + `motifconsprinc` varchar(64) DEFAULT NULL, + `diaglesprinc` varchar(64) DEFAULT NULL, + `motifconssec` text DEFAULT NULL, + `diaglessec` text DEFAULT NULL, + `hdm` text DEFAULT NULL, + `examenclinique` text DEFAULT NULL, + `examenprescrit` text DEFAULT NULL, + `traitementprescrit` text DEFAULT NULL, + `comment` text DEFAULT NULL, + `typevisit` varchar(8) NOT NULL, + `infiltration` varchar(255) DEFAULT NULL, + `codageccam` varchar(16) DEFAULT NULL, `montant_cheque` double(24,8) DEFAULT NULL, `montant_espece` double(24,8) DEFAULT NULL, `montant_carte` double(24,8) DEFAULT NULL, `montant_tiers` double(24,8) DEFAULT NULL, - `banque` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `banque` varchar(128) DEFAULT NULL, `date_c` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user` int(11) DEFAULT NULL, @@ -3620,8 +3659,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `aaa` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `aaa` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_cabinetmed_cons_extrafields` (`fk_object`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3646,12 +3685,12 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(8) NOT NULL, + `label` varchar(64) NOT NULL, `active` smallint(6) NOT NULL DEFAULT 1, - `icd` varchar(12) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `icd` varchar(12) DEFAULT NULL, `position` int(11) DEFAULT 10, - `lang` varchar(12) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lang` varchar(12) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3678,10 +3717,10 @@ 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 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, + `examprinc` varchar(64) DEFAULT NULL, + `examsec` text DEFAULT NULL, + `concprinc` varchar(64) DEFAULT NULL, + `concsec` text DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -3709,9 +3748,9 @@ CREATE TABLE `llx_cabinetmed_exambio` ( `fk_soc` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `dateexam` date NOT NULL, - `resultat` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `conclusion` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `comment` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `resultat` text DEFAULT NULL, + `conclusion` text DEFAULT NULL, + `comment` text DEFAULT NULL, `suivipr_ad` int(11) DEFAULT NULL, `suivipr_ag` int(11) DEFAULT NULL, `suivipr_vs` int(11) DEFAULT NULL, @@ -3748,9 +3787,9 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL, - `biorad` varchar(8) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(8) NOT NULL, + `label` varchar(64) NOT NULL, + `biorad` varchar(8) NOT NULL, `position` int(11) DEFAULT 10, `active` smallint(6) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) @@ -3776,8 +3815,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL, + `code` varchar(8) NOT NULL, + `label` varchar(64) NOT NULL, `position` int(11) DEFAULT 10, `active` smallint(6) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) @@ -3803,15 +3842,15 @@ DROP TABLE IF EXISTS `llx_cabinetmed_patient`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_cabinetmed_patient` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `note_antemed` text COLLATE 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, + `note_antemed` text DEFAULT NULL, + `note_antechirgen` text DEFAULT NULL, + `note_antechirortho` text DEFAULT NULL, + `note_anterhum` text DEFAULT NULL, + `note_other` text DEFAULT NULL, + `note_traitclass` text DEFAULT NULL, + `note_traitallergie` text DEFAULT NULL, + `note_traitintol` text DEFAULT NULL, + `note_traitspec` text DEFAULT NULL, `alert_antemed` smallint(6) DEFAULT NULL, `alert_antechirgen` smallint(6) DEFAULT NULL, `alert_antechirortho` smallint(6) DEFAULT NULL, @@ -3845,48 +3884,48 @@ DROP TABLE IF EXISTS `llx_cabinetmed_societe`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_cabinetmed_societe` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `nom` varchar(60) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `nom` varchar(60) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ref_int` varchar(60) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(128) DEFAULT NULL, + `ref_int` varchar(60) DEFAULT NULL, `statut` smallint(6) DEFAULT 0, `parent` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `datea` datetime DEFAULT NULL, `status` smallint(6) DEFAULT 1, - `code_client` varchar(24) COLLATE 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, + `code_client` varchar(24) DEFAULT NULL, + `code_fournisseur` varchar(24) DEFAULT NULL, + `code_compta` varchar(24) DEFAULT NULL, + `code_compta_fournisseur` varchar(24) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `cp` varchar(10) DEFAULT NULL, + `ville` varchar(50) DEFAULT NULL, `fk_departement` int(11) DEFAULT 0, `fk_pays` int(11) DEFAULT 0, - `tel` varchar(20) COLLATE 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, + `tel` varchar(20) DEFAULT NULL, + `fax` varchar(20) DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `email` varchar(128) DEFAULT NULL, `fk_effectif` int(11) DEFAULT 0, `fk_typent` int(11) DEFAULT 0, `fk_forme_juridique` int(11) DEFAULT 0, `fk_currency` int(11) DEFAULT 0, - `siren` varchar(128) COLLATE 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, + `siren` varchar(128) DEFAULT NULL, + `siret` varchar(128) DEFAULT NULL, + `ape` varchar(128) DEFAULT NULL, + `idprof4` varchar(128) DEFAULT NULL, + `idprof5` varchar(128) DEFAULT NULL, + `idprof6` varchar(128) DEFAULT NULL, + `tva_intra` varchar(20) DEFAULT NULL, `capital` double DEFAULT NULL, `fk_stcomm` int(11) NOT NULL DEFAULT 0, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `prefix_comm` varchar(5) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, + `prefix_comm` varchar(5) DEFAULT NULL, `client` smallint(6) DEFAULT 0, `fournisseur` smallint(6) DEFAULT 0, - `supplier_account` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `fk_prospectlevel` varchar(12) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `supplier_account` varchar(32) DEFAULT NULL, + `fk_prospectlevel` varchar(12) DEFAULT NULL, `customer_bad` smallint(6) DEFAULT 0, `customer_rate` double DEFAULT 0, `supplier_rate` double DEFAULT 0, @@ -3898,13 +3937,13 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `barcode` varchar(255) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT 0, `price_level` int(11) DEFAULT NULL, - `default_lang` varchar(6) COLLATE 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, + `default_lang` varchar(6) DEFAULT NULL, + `logo` varchar(255) DEFAULT NULL, + `canvas` varchar(32) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3928,15 +3967,15 @@ DROP TABLE IF EXISTS `llx_categorie`; CREATE TABLE `llx_categorie` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_parent` int(11) NOT NULL DEFAULT 0, - `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(255) NOT NULL, `type` int(11) NOT NULL DEFAULT 1, `entity` int(11) NOT NULL DEFAULT 1, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, `visible` tinyint(4) NOT NULL DEFAULT 1, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `color` varchar(8) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `color` varchar(8) DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, @@ -3945,7 +3984,7 @@ CREATE TABLE `llx_categorie` ( UNIQUE KEY `uk_categorie_ref` (`entity`,`fk_parent`,`label`,`type`), KEY `idx_categorie_type` (`type`), KEY `idx_categorie_label` (`label`) -) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3954,7 +3993,7 @@ CREATE TABLE `llx_categorie` ( LOCK TABLES `llx_categorie` WRITE; /*!40000 ALTER TABLE `llx_categorie` DISABLE KEYS */; -INSERT INTO `llx_categorie` VALUES (1,0,'Preferred Partners',1,1,'This category is used to tag suppliers that are Prefered Partners',NULL,0,NULL,'005fbf',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(2,0,'MyCategory',1,1,'This is description of MyCategory for customer and prospects
',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(3,7,'Hot products',1,1,'This is description of hot products
',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(4,0,'Merchant',1,1,'Category dedicated to merchant third parties',NULL,0,NULL,'bf5f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(5,7,'Bio Fairtrade',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(6,7,'Bio AB',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(7,9,'Bio',0,1,'This product is a BIO product',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(8,7,'Bio Dynamic',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(9,0,'High Quality Product',0,1,'Label dedicated for High quality products',NULL,0,NULL,'7f7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(10,0,'Reserved for VIP',0,1,'Product of thi category are reserved to VIP customers',NULL,0,NULL,'7f0000',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(11,9,'ISO',0,1,'Product of this category has an ISO label',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(12,0,'VIP',2,1,'',NULL,0,NULL,'bf5f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(13,0,'Region North',2,1,'Customer of North Region',NULL,0,NULL,'7f007f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(14,0,'Regular customer',2,1,'',NULL,0,NULL,'5fbf00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(15,13,'Region North A',2,1,'',NULL,0,NULL,'bf00bf',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(17,0,'MyTag1',4,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(18,0,'Met during meeting',4,1,'',NULL,0,NULL,'ff7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(19,17,'MySubTag1',4,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(20,13,'Region North B',2,1,'',NULL,0,NULL,'bf005f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(21,0,'Region South',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(22,21,'Region South A',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(23,21,'Region South B',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(24,0,'Limited Edition',0,1,'This is a limited edition',NULL,0,NULL,'ff7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(25,0,'Imported products',0,1,'For product we have to import from another country',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(26,28,'Friends',4,1,'Category of friends contact',NULL,0,NULL,'00bf00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(27,28,'Family',4,1,'Category of family contacts',NULL,0,NULL,'007f3f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(28,0,'Personal contacts',4,1,'For personal contacts',NULL,0,NULL,'007f3f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(29,0,'Online only merchant',1,1,'',NULL,0,NULL,'aaaaff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(30,0,'Important',6,1,'Tag for important project',NULL,0,NULL,'7f003f','',NULL,'2020-06-12 17:12:24',NULL,NULL),(31,0,'POS Products',0,1,'All products available in store (POS)',NULL,0,NULL,'5f00bf','',NULL,'2020-06-12 17:12:24',NULL,NULL),(32,31,'Fruits',0,1,'',NULL,0,NULL,'aa56ff','',NULL,'2020-06-12 17:12:24',NULL,NULL),(33,31,'Vegetables',0,1,'',NULL,0,NULL,'aa56ff','',NULL,'2020-06-12 17:12:24',NULL,NULL),(34,31,'Pies',0,1,'Categories for Pies available on POS',NULL,0,NULL,'aa56ff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(35,31,'Other',0,1,'',NULL,0,NULL,'aa56ff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(36,0,'VIP',3,1,'VIP member',NULL,0,NULL,'007f00','',NULL,'2020-06-12 17:12:24',NULL,NULL),(37,0,'Board members',3,1,'',NULL,0,NULL,'bf00bf','',NULL,'2020-06-12 17:12:24',NULL,NULL),(38,0,'Main center',9,1,'',NULL,0,NULL,'bf5f00',NULL,'2020-06-12 19:17:30','2020-06-12 17:17:30',12,NULL),(39,0,'Center B',9,1,'Center B',NULL,0,NULL,'ff7f00',NULL,'2020-06-12 19:17:55','2020-06-12 17:17:55',12,NULL),(40,0,'Bank foreign',5,1,'',NULL,0,NULL,'00bfbf',NULL,'2021-04-15 10:26:42','2021-04-15 13:26:42',12,NULL),(41,0,'Bank old company',5,1,'',NULL,0,NULL,'7f7f00',NULL,'2021-04-15 10:26:52','2021-04-15 13:26:52',12,NULL),(42,0,'Event Urgent',10,1,'',NULL,0,NULL,'7f003f',NULL,'2021-04-15 10:42:53','2021-04-15 13:42:53',12,NULL),(43,0,'Event hidden',10,1,'',NULL,0,NULL,'cccccc',NULL,'2021-04-15 10:43:06','2021-04-15 13:43:06',12,NULL),(44,0,'Event Managers',10,1,'',NULL,0,NULL,'007f7f',NULL,'2021-04-15 10:43:34','2021-04-15 13:43:34',12,NULL); +INSERT INTO `llx_categorie` VALUES (1,0,'Preferred Partners',1,1,'This category is used to tag suppliers that are Prefered Partners',NULL,0,NULL,'005fbf',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(2,0,'MyCategory',1,1,'This is description of MyCategory for customer and prospects
',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(3,7,'Hot products',1,1,'This is description of hot products
',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(4,0,'Merchant',1,1,'Category dedicated to merchant third parties',NULL,0,NULL,'bf5f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(5,7,'Bio Fairtrade',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(6,7,'Bio AB',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(7,9,'Bio',0,1,'This product is a BIO product',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(8,7,'Bio Dynamic',0,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(9,0,'High Quality Product',0,1,'Label dedicated for High quality products',NULL,0,NULL,'7f7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(10,0,'Reserved for VIP',0,1,'Product of thi category are reserved to VIP customers',NULL,0,NULL,'7f0000',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(11,9,'ISO',0,1,'Product of this category has an ISO label',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(12,0,'VIP',2,1,'',NULL,0,NULL,'bf5f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(13,0,'Region North',2,1,'Customer of North Region',NULL,0,NULL,'7f007f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(14,0,'Regular customer',2,1,'',NULL,0,NULL,'5fbf00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(15,13,'Region North A',2,1,'',NULL,0,NULL,'bf00bf',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(17,0,'MyTag1',4,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(18,0,'Met during meeting',4,1,'',NULL,0,NULL,'ff7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(19,17,'MySubTag1',4,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(20,13,'Region North B',2,1,'',NULL,0,NULL,'bf005f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(21,0,'Region South',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(22,21,'Region South A',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(23,21,'Region South B',2,1,'',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(24,0,'Limited Edition',0,1,'This is a limited edition',NULL,0,NULL,'ff7f00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(25,0,'Imported products',0,1,'For product we have to import from another country',NULL,0,NULL,NULL,NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(26,28,'Friends',4,1,'Category of friends contact',NULL,0,NULL,'00bf00',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(27,28,'Family',4,1,'Category of family contacts',NULL,0,NULL,'007f3f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(28,0,'Personal contacts',4,1,'For personal contacts',NULL,0,NULL,'007f3f',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(29,0,'Online only merchant',1,1,'',NULL,0,NULL,'aaaaff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(30,0,'Important',6,1,'Tag for important project',NULL,0,NULL,'7f003f','',NULL,'2020-06-12 17:12:24',NULL,NULL),(31,0,'POS Products',0,1,'All products available in store (POS)',NULL,0,NULL,'5f00bf','',NULL,'2020-06-12 17:12:24',NULL,NULL),(32,31,'Fruits',0,1,'',NULL,0,NULL,'aa56ff','',NULL,'2020-06-12 17:12:24',NULL,NULL),(33,31,'Vegetables',0,1,'',NULL,0,NULL,'aa56ff','',NULL,'2020-06-12 17:12:24',NULL,NULL),(34,31,'Pies',0,1,'Categories for Pies available on POS',NULL,0,NULL,'aa56ff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(35,31,'Other',0,1,'',NULL,0,NULL,'aa56ff',NULL,NULL,'2020-06-12 17:12:24',NULL,NULL),(36,0,'VIP',3,1,'VIP member',NULL,0,NULL,'007f00','',NULL,'2020-06-12 17:12:24',NULL,NULL),(37,0,'Board members',3,1,'',NULL,0,NULL,'bf00bf','',NULL,'2020-06-12 17:12:24',NULL,NULL),(38,0,'Main center',9,1,'',NULL,0,NULL,'bf5f00',NULL,'2020-06-12 19:17:30','2020-06-12 17:17:30',12,NULL),(39,0,'Center B',9,1,'Center B',NULL,0,NULL,'ff7f00',NULL,'2020-06-12 19:17:55','2020-06-12 17:17:55',12,NULL),(40,0,'Bank foreign',5,1,'',NULL,0,NULL,'00bfbf',NULL,'2021-04-15 10:26:42','2021-04-15 13:26:42',12,NULL),(41,0,'Bank old company',5,1,'',NULL,0,NULL,'7f7f00',NULL,'2021-04-15 10:26:52','2021-04-15 13:26:52',12,NULL),(42,0,'Event Urgent',10,1,'',NULL,0,NULL,'7f003f',NULL,'2021-04-15 10:42:53','2021-04-15 13:42:53',12,NULL),(43,0,'Event hidden',10,1,'',NULL,0,NULL,'cccccc',NULL,'2021-04-15 10:43:06','2021-04-15 13:43:06',12,NULL),(44,0,'Event Managers',10,1,'',NULL,0,NULL,'007f7f',NULL,'2021-04-15 10:43:34','2021-04-15 13:43:34',12,NULL),(45,0,'Admin',13,1,'',NULL,0,NULL,'bf5f00',NULL,'2022-12-11 21:26:18','2022-12-11 21:26:18',12,NULL),(46,0,'Production',13,1,'',NULL,0,NULL,'007f7f',NULL,'2022-12-11 21:26:35','2022-12-11 21:26:35',12,NULL),(47,0,'Customers',12,1,'',NULL,0,NULL,'bf5f00',NULL,'2022-12-11 21:27:30','2022-12-11 21:27:30',12,NULL),(48,0,'Sales Representatives',12,1,'',NULL,0,NULL,'7f3f00',NULL,'2022-12-11 21:27:47','2022-12-11 21:27:47',12,NULL),(49,0,'Security',12,1,'',NULL,0,NULL,'bf0000',NULL,'2022-12-11 21:28:06','2022-12-11 21:28:06',12,NULL); /*!40000 ALTER TABLE `llx_categorie` ENABLE KEYS */; UNLOCK TABLES; @@ -3968,7 +4007,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_account`), KEY `idx_categorie_account_fk_categorie` (`fk_categorie`), KEY `idx_categorie_account_fk_account` (`fk_account`), @@ -3997,7 +4036,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_actioncomm`), KEY `idx_categorie_actioncomm_fk_categorie` (`fk_categorie`), KEY `idx_categorie_actioncomm_fk_actioncomm` (`fk_actioncomm`), @@ -4025,7 +4064,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_socpeople`), KEY `idx_categorie_contact_fk_categorie` (`fk_categorie`), KEY `idx_categorie_contact_fk_socpeople` (`fk_socpeople`), @@ -4054,7 +4093,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_soc`), KEY `idx_categorie_fournisseur_fk_categorie` (`fk_categorie`), KEY `idx_categorie_fournisseur_fk_societe` (`fk_soc`), @@ -4083,7 +4122,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_knowledgemanagement`), KEY `idx_categorie_knowledgemanagement_fk_categorie` (`fk_categorie`), KEY `idx_categorie_knowledgemanagement_fk_knowledgemanagement` (`fk_knowledgemanagement`), @@ -4111,9 +4150,9 @@ 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 utf8mb3_unicode_ci NOT NULL DEFAULT '0', - `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lang` varchar(5) NOT NULL DEFAULT '0', + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_category_lang` (`fk_category`,`lang`), CONSTRAINT `fk_category_lang_fk_category` FOREIGN KEY (`fk_category`) REFERENCES `llx_categorie` (`rowid`) @@ -4167,7 +4206,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_product`), KEY `idx_categorie_product_fk_categorie` (`fk_categorie`), KEY `idx_categorie_product_fk_product` (`fk_product`), @@ -4196,7 +4235,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_project`), KEY `idx_categorie_project_fk_categorie` (`fk_categorie`), KEY `idx_categorie_project_fk_project` (`fk_project`), @@ -4226,7 +4265,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_soc`), KEY `idx_categorie_societe_fk_categorie` (`fk_categorie`), KEY `idx_categorie_societe_fk_societe` (`fk_soc`), @@ -4255,7 +4294,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_ticket`), KEY `idx_categorie_ticket_fk_categorie` (`fk_categorie`), KEY `idx_categorie_ticket_fk_ticket` (`fk_ticket`), @@ -4283,7 +4322,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_user`), KEY `idx_categorie_user_fk_categorie` (`fk_categorie`), KEY `idx_categorie_user_fk_user` (`fk_user`), @@ -4311,7 +4350,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_warehouse`), KEY `idx_categorie_warehouse_fk_categorie` (`fk_categorie`), KEY `idx_categorie_warehouse_fk_warehouse` (`fk_warehouse`), @@ -4340,7 +4379,7 @@ DROP TABLE IF EXISTS `llx_categorie_website_page`; CREATE TABLE `llx_categorie_website_page` ( `fk_categorie` int(11) NOT NULL, `fk_website_page` int(11) NOT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`fk_categorie`,`fk_website_page`), KEY `idx_categorie_website_page_fk_categorie` (`fk_categorie`), KEY `idx_categorie_website_page_fk_website_page` (`fk_website_page`), @@ -4371,7 +4410,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_categories_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -4396,7 +4435,7 @@ DROP TABLE IF EXISTS `llx_chargesociales`; CREATE TABLE `llx_chargesociales` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `date_ech` datetime NOT NULL, - `libelle` varchar(80) COLLATE utf8mb3_unicode_ci NOT NULL, + `libelle` varchar(80) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_type` int(11) NOT NULL, `fk_account` int(11) DEFAULT NULL, @@ -4407,15 +4446,15 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `ref` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(16) 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, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -4442,11 +4481,11 @@ CREATE TABLE `llx_commande` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_soc` int(11) NOT NULL, `fk_projet` int(11) DEFAULT NULL, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(255) DEFAULT NULL, + `ref_client` varchar(255) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, `date_cloture` datetime DEFAULT NULL, @@ -4464,16 +4503,17 @@ CREATE TABLE `llx_commande` ( `total_tva` double(24,8) DEFAULT 0.00000000, `localtax1` double(24,8) DEFAULT 0.00000000, `localtax2` double(24,8) DEFAULT 0.00000000, + `revenuestamp` double(24,8) DEFAULT 0.00000000, `total_ht` double(24,8) DEFAULT 0.00000000, `total_ttc` double(24,8) DEFAULT 0.00000000, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `facture` tinyint(4) DEFAULT 0, `fk_account` int(11) DEFAULT NULL, - `fk_currency` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_currency` varchar(3) DEFAULT NULL, `fk_cond_reglement` int(11) DEFAULT NULL, - `deposit_percent` varchar(63) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `deposit_percent` varchar(63) DEFAULT NULL, `fk_mode_reglement` int(11) DEFAULT NULL, `date_livraison` datetime DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, @@ -4481,19 +4521,19 @@ CREATE TABLE `llx_commande` ( `fk_availability` int(11) DEFAULT NULL, `fk_input_reason` int(11) DEFAULT NULL, `fk_delivery_address` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `last_main_doc` varchar(255) COLLATE 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, + `last_main_doc` varchar(255) DEFAULT NULL, + `module_source` varchar(32) DEFAULT NULL, + `pos_source` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_commande_ref` (`ref`,`entity`), KEY `idx_commande_fk_soc` (`fk_soc`), @@ -4517,7 +4557,7 @@ CREATE TABLE `llx_commande` ( LOCK TABLES `llx_commande` WRITE; /*!40000 ALTER TABLE `llx_commande` DISABLE KEYS */; -INSERT INTO `llx_commande` VALUES (1,'2022-02-07 13:37:54',1,NULL,'CO1107-0002',1,NULL,NULL,'','2013-07-20 15:23:12','2021-08-08 13:59:09',NULL,'2021-07-20',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,1,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); +INSERT INTO `llx_commande` VALUES (1,'2022-12-11 21:23:22',1,NULL,'CO1107-0002',1,NULL,NULL,'','2013-07-20 15:23:12','2022-08-08 13:59:09',NULL,'2022-07-20',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,1,NULL,1,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(2,'2022-12-11 21:23:22',1,NULL,'CO1107-0003',1,NULL,NULL,'','2013-07-20 23:20:12','2022-02-12 17:06:51',NULL,'2022-07-21',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(3,'2022-12-11 21:23:22',1,NULL,'CO1107-0004',1,NULL,NULL,'','2013-07-20 23:22:53','2022-02-17 18:27:56',NULL,'2022-07-21',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,30.00000000,30.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(5,'2022-12-11 21:23:22',1,NULL,'CO1108-0001',1,NULL,NULL,'','2013-08-08 03:04:11','2022-08-08 03:04:21',NULL,'2022-08-08',1,NULL,1,NULL,NULL,2,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(6,'2022-07-04 01:11:35',19,NULL,'(PROV6)',1,NULL,NULL,'','2015-02-17 16:22:14',NULL,NULL,'2022-02-17',1,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'','','einstein',0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,'commande/(PROV6)/(PROV6).pdf',NULL,NULL),(17,'2022-07-04 01:11:35',4,NULL,'CO7001-0005',1,NULL,NULL,NULL,'2017-02-15 23:50:34','2021-02-15 23:50:34',NULL,'2022-05-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,509.00000000,509.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,509.00000000,0.00000000,509.00000000,NULL,NULL,NULL),(18,'2022-02-07 13:37:54',7,4,'CO7001-0006',1,NULL,NULL,NULL,'2017-02-15 23:51:23','2021-02-15 23:51:23',NULL,'2022-02-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,900.00000000,900.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,900.00000000,0.00000000,900.00000000,NULL,NULL,NULL),(20,'2022-07-04 01:11:35',4,NULL,'CO7001-0007',1,NULL,NULL,NULL,'2017-02-15 23:55:52','2021-02-15 23:55:52',NULL,'2022-04-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,330.00000000,330.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,330.00000000,0.00000000,330.00000000,NULL,NULL,NULL),(29,'2022-07-04 01:11:35',4,NULL,'CO7001-0008',1,NULL,NULL,NULL,'2017-02-16 00:03:44','2022-02-16 00:03:44',NULL,'2022-02-12',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,457.00000000,457.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,457.00000000,0.00000000,457.00000000,NULL,NULL,NULL),(34,'2022-02-07 13:37:54',11,NULL,'CO7001-0009',1,NULL,NULL,NULL,'2017-02-16 00:05:01','2021-02-16 00:05:01',NULL,'2022-01-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,124.00000000,124.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,124.00000000,0.00000000,124.00000000,NULL,NULL,NULL),(38,'2022-02-07 13:37:54',3,NULL,'CO7001-0010',1,NULL,NULL,NULL,'2017-02-16 00:05:01','2021-02-16 00:05:01',NULL,'2022-02-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,2,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL,NULL,NULL),(40,'2022-02-07 13:37:54',11,NULL,'CO7001-0011',1,NULL,NULL,NULL,'2017-02-16 00:05:10','2021-02-16 00:05:11',NULL,'2022-01-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,1210.00000000,1210.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1210.00000000,0.00000000,1210.00000000,NULL,NULL,NULL),(43,'2022-07-04 01:11:35',10,NULL,'CO7001-0012',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2022-02-16 00:05:11',NULL,'2022-02-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,478.00000000,478.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,478.00000000,0.00000000,478.00000000,NULL,NULL,NULL),(47,'2022-12-11 21:23:22',1,NULL,'CO7001-0013',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2022-02-16 00:05:11',NULL,'2022-11-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,55.00000000,55.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,55.00000000,0.00000000,55.00000000,NULL,NULL,NULL),(48,'2022-12-11 21:23:22',4,NULL,'CO7001-0014',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2022-02-16 00:05:11',NULL,'2022-07-30',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,540.00000000,540.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,540.00000000,0.00000000,540.00000000,NULL,NULL,NULL),(50,'2022-02-07 13:37:54',1,NULL,'CO7001-0015',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2022-02-16 00:05:26',NULL,'2021-12-12',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,118.00000000,118.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,118.00000000,0.00000000,118.00000000,NULL,NULL,NULL),(54,'2022-07-04 01:11:35',12,NULL,'CO7001-0016',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2021-02-16 00:05:26','2021-02-16 03:05:56','2022-06-03',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,220.00000000,220.00000000,'','','',1,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,220.00000000,0.00000000,220.00000000,NULL,NULL,NULL),(58,'2022-12-11 21:23:22',1,NULL,'CO7001-0017',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2022-02-16 00:05:26',NULL,'2022-07-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,436.00000000,436.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,436.00000000,0.00000000,436.00000000,NULL,NULL,NULL),(62,'2022-07-04 01:11:35',19,NULL,'CO7001-0018',1,NULL,NULL,NULL,'2017-02-16 00:05:35','2021-02-16 00:05:35','2021-12-20 20:48:55','2022-02-23',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,410.00000000,410.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,410.00000000,0.00000000,410.00000000,NULL,NULL,NULL),(68,'2022-07-04 01:11:35',3,NULL,'CO7001-0019',1,NULL,NULL,NULL,'2017-02-16 00:05:35','2021-02-16 00:05:35',NULL,'2022-05-19',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,45.00000000,45.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,45.00000000,0.00000000,45.00000000,NULL,NULL,NULL),(72,'2022-12-11 21:23:22',6,NULL,'CO7001-0020',1,NULL,NULL,NULL,'2017-02-16 00:05:36','2022-02-16 00:05:36','2022-01-16 02:42:56','2022-11-13',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,610.00000000,610.00000000,'','','',1,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,610.00000000,0.00000000,610.00000000,NULL,NULL,NULL),(75,'2022-07-04 01:11:35',4,NULL,'CO7001-0021',1,NULL,NULL,NULL,'2017-02-16 00:05:37','2021-02-16 04:14:20',NULL,'2022-02-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,25.00000000,49.88000000,0.00000000,0.00000000,1200.00000000,1274.88000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1200.00000000,25.00000000,1274.88000000,NULL,NULL,NULL),(78,'2022-12-11 21:23:22',12,NULL,'CO7001-0022',1,NULL,NULL,NULL,'2017-02-16 00:05:37','2022-02-16 00:05:37',NULL,'2022-10-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,928.00000000,928.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,928.00000000,0.00000000,928.00000000,NULL,NULL,NULL),(81,'2022-07-04 01:11:35',11,NULL,'CO7001-0023',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2022-02-16 00:05:38',NULL,'2022-07-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,725.00000000,725.00000000,'','','',0,NULL,NULL,2,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,725.00000000,0.00000000,725.00000000,NULL,NULL,NULL),(83,'2022-07-04 01:11:35',26,NULL,'CO7001-0024',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2021-02-16 00:05:38',NULL,'2022-04-03',12,NULL,12,NULL,1,-1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,105.00000000,105.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,105.00000000,0.00000000,105.00000000,NULL,NULL,NULL),(84,'2022-07-04 01:11:35',2,NULL,'CO7001-0025',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2022-02-16 00:05:38',NULL,'2022-06-19',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,510.00000000,510.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,510.00000000,0.00000000,510.00000000,NULL,NULL,NULL),(85,'2022-02-07 13:37:54',1,NULL,'CO7001-0026',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2021-02-16 00:05:38',NULL,'2022-01-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,47.00000000,47.00000000,'','','',0,NULL,NULL,1,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,47.00000000,0.00000000,47.00000000,NULL,NULL,NULL),(88,'2022-02-07 13:37:54',10,NULL,'CO7001-0027',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2021-12-20 20:42:42',NULL,'2021-12-23',12,12,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,'This is a private note','This is a public note','',0,NULL,NULL,1,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,'commande/CO7001-0027/CO7001-0027.pdf',NULL,NULL),(90,'2022-07-04 01:11:35',19,NULL,'(PROV90)',1,NULL,NULL,NULL,'2017-02-16 04:46:31',NULL,NULL,'2022-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,440.00000000,440.00000000,'','','',0,NULL,NULL,3,NULL,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,440.00000000,0.00000000,440.00000000,NULL,NULL,NULL),(91,'2022-07-04 01:11:35',1,NULL,'(PROV91)',1,NULL,NULL,NULL,'2017-02-16 04:46:37',NULL,NULL,'2022-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,NULL,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL,NULL,NULL),(92,'2022-07-04 01:11:35',3,NULL,'(PROV92)',1,NULL,NULL,NULL,'2017-02-16 04:47:25',NULL,NULL,'2022-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,1018.00000000,1018.00000000,'','','',0,NULL,NULL,3,NULL,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1018.00000000,0.00000000,1018.00000000,NULL,NULL,NULL),(93,'2022-12-11 21:23:22',10,NULL,'(PROV93)',1,NULL,NULL,NULL,'2019-09-27 19:32:53',NULL,NULL,'2022-09-27',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,'commande/(PROV93)/(PROV93).pdf',NULL,NULL),(94,'2022-02-07 13:37:54',1,NULL,'(PROV94)',1,NULL,NULL,NULL,'2019-12-20 20:49:54',NULL,NULL,'2021-12-20',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,NULL,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL,NULL,NULL),(95,'2022-02-07 13:37:54',1,NULL,'(PROV95)',1,NULL,NULL,NULL,'2019-12-20 20:50:23',NULL,NULL,'2021-12-20',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,NULL,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL,NULL,NULL),(96,'2022-02-07 13:37:54',10,6,'(PROV96)',1,NULL,NULL,NULL,'2020-01-07 23:39:09',NULL,NULL,'2022-01-07',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'aaa','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,NULL,NULL,NULL),(97,'2022-02-07 13:37:54',10,6,'(PROV97)',1,NULL,NULL,NULL,'2020-01-07 23:43:06',NULL,NULL,'2022-01-07',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'aaa','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,NULL,NULL,NULL),(98,'2022-02-07 13:37:54',1,NULL,'(PROV98)',1,NULL,NULL,NULL,'2020-01-19 14:22:34',NULL,NULL,'2022-01-19',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.00000000,0.45000000,0.45000000,0.00000000,3.00000000,3.90000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,3.00000000,0.00000000,3.90000000,NULL,NULL,NULL),(99,'2022-02-07 13:37:54',1,NULL,'(PROV99)',1,NULL,NULL,NULL,'2020-01-19 14:24:27',NULL,NULL,'2022-01-19',12,NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,0.24000000,0.00000000,0.00000000,0.00000000,4.00000000,4.24000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,4.00000000,0.24000000,4.24000000,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_commande` ENABLE KEYS */; UNLOCK TABLES; @@ -4532,8 +4572,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `custom1` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `custom1` varchar(10) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_commande_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -4559,10 +4599,10 @@ CREATE TABLE `llx_commande_fournisseur` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_soc` int(11) NOT NULL, - `ref` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ref_supplier` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_supplier` varchar(255) DEFAULT NULL, `fk_projet` int(11) DEFAULT 0, `date_creation` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -4585,25 +4625,25 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `fk_input_method` int(11) DEFAULT 0, `fk_cond_reglement` int(11) DEFAULT 0, `fk_mode_reglement` int(11) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `date_livraison` datetime DEFAULT NULL, `fk_account` int(11) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_commande_fournisseur_ref` (`ref`,`fk_soc`,`entity`), KEY `idx_commande_fournisseur_fk_soc` (`fk_soc`), @@ -4618,7 +4658,7 @@ CREATE TABLE `llx_commande_fournisseur` ( LOCK TABLES `llx_commande_fournisseur` WRITE; /*!40000 ALTER TABLE `llx_commande_fournisseur` DISABLE KEYS */; -INSERT INTO `llx_commande_fournisseur` VALUES (1,'2022-02-07 13:37:54',13,'CF1007-0001',1,NULL,NULL,NULL,'2021-07-11 17:13:40','2022-02-01 18:51:42','2022-02-01 18:52:04',NULL,'2022-02-01',1,NULL,12,12,NULL,0,5,0,0.00000000,0,0,39.20000000,0.00000000,0.00000000,200.00000000,239.20000000,NULL,NULL,'muscadet',2,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(2,'2021-07-11 17:49:28',1,'CF1007-0002',1,NULL,NULL,NULL,'2021-07-11 18:46:28','2021-07-11 18:47:33',NULL,NULL,'2021-07-11',1,NULL,1,NULL,NULL,0,4,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,NULL,NULL,'muscadet',4,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(3,'2020-01-20 11:22:53',17,'(PROV3)',1,NULL,NULL,NULL,'2013-08-04 23:00:52',NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,1079.17000000,1079.17000000,NULL,NULL,'muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'USD',1.20000000,1295.00000000,0.00000000,1295.00000000,NULL),(4,'2020-01-20 11:19:49',17,'(PROV4)',1,NULL,NULL,NULL,'2013-08-04 23:19:32',NULL,NULL,NULL,NULL,1,12,NULL,NULL,NULL,0,0,0,0.00000000,0,0,11.88000000,0.00000000,0.00000000,174.17000000,186.05000000,'Private note','Public note','muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EUR',1.00000000,174.17000000,11.88000000,186.05000000,NULL),(13,'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); +INSERT INTO `llx_commande_fournisseur` VALUES (1,'2022-02-07 13:37:54',13,'CF1007-0001',1,NULL,NULL,NULL,'2021-07-11 17:13:40','2022-02-01 18:51:42','2022-02-01 18:52:04',NULL,'2022-02-01',1,NULL,12,12,NULL,0,5,0,0.00000000,0,0,39.20000000,0.00000000,0.00000000,200.00000000,239.20000000,NULL,NULL,'muscadet',2,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(2,'2022-12-11 21:23:22',1,'CF1007-0002',1,NULL,NULL,NULL,'2022-07-11 18:46:28','2022-07-11 18:47:33',NULL,NULL,'2022-07-11',1,NULL,1,NULL,NULL,0,4,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,NULL,NULL,'muscadet',4,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(3,'2020-01-20 11:22:53',17,'(PROV3)',1,NULL,NULL,NULL,'2013-08-04 23:00:52',NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,1079.17000000,1079.17000000,NULL,NULL,'muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'USD',1.20000000,1295.00000000,0.00000000,1295.00000000,NULL),(4,'2020-01-20 11:19:49',17,'(PROV4)',1,NULL,NULL,NULL,'2013-08-04 23:19:32',NULL,NULL,NULL,NULL,1,12,NULL,NULL,NULL,0,0,0,0.00000000,0,0,11.88000000,0.00000000,0.00000000,174.17000000,186.05000000,'Private note','Public note','muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EUR',1.00000000,174.17000000,11.88000000,186.05000000,NULL),(13,'2022-07-04 01:11:35',1,'CF1303-0004',1,NULL,NULL,NULL,'2022-03-09 19:39:18','2022-03-09 19:39:27','2022-03-09 19:39:32',NULL,'2022-03-09',1,NULL,1,1,NULL,0,2,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,NULL,NULL,'muscadet',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(14,'2020-01-20 11:20:11',1,'(PROV14)',1,NULL,'',NULL,'2020-01-20 12:20:11',NULL,NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,0,NULL,0,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'','','muscadet',0,1,NULL,NULL,NULL,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL); /*!40000 ALTER TABLE `llx_commande_fournisseur` ENABLE KEYS */; UNLOCK TABLES; @@ -4638,17 +4678,18 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `comment` varchar(255) DEFAULT NULL, `status` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `batch` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, `eatby` date DEFAULT NULL, `sellby` date DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `fk_reception` int(11) DEFAULT NULL, `cost_price` double(24,8) DEFAULT 0.00000000, PRIMARY KEY (`rowid`), - KEY `idx_commande_fournisseur_dispatch_fk_commande` (`fk_commande`) + KEY `idx_commande_fournisseur_dispatch_fk_commande` (`fk_commande`), + KEY `idx_commande_fournisseur_dispatch_fk_product` (`fk_product`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -4673,7 +4714,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_commande_fournisseur_dispatch_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -4699,7 +4740,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_commande_fournisseur_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -4728,7 +4769,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `comment` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -4755,15 +4796,15 @@ CREATE TABLE `llx_commande_fournisseurdet` ( `fk_commande` int(11) NOT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `ref` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `tva_tx` double(6,3) DEFAULT 0.000, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -4777,12 +4818,12 @@ CREATE TABLE `llx_commande_fournisseurdet` ( `date_start` datetime DEFAULT NULL, `date_end` datetime DEFAULT NULL, `info_bits` int(11) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `special_code` int(11) DEFAULT 0, `rang` int(11) DEFAULT 0, `fk_unit` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -4816,7 +4857,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_commande_fournisseurdet_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -4843,15 +4884,15 @@ CREATE TABLE `llx_commandedet` ( `fk_commande` int(11) DEFAULT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT NULL, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT NULL, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -4871,11 +4912,11 @@ CREATE TABLE `llx_commandedet` ( `buy_price_ht` double(24,8) DEFAULT 0.00000000, `special_code` int(10) unsigned DEFAULT 0, `rang` int(11) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_commandefourndet` int(11) DEFAULT NULL, `fk_unit` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -4912,7 +4953,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_commandedet_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -4938,12 +4979,12 @@ 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 utf8mb3_unicode_ci NOT NULL, + `description` text NOT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_element` int(11) DEFAULT NULL, - `element_type` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `element_type` varchar(50) DEFAULT NULL, `entity` int(11) DEFAULT 1, - `import_key` varchar(125) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(125) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -4967,16 +5008,16 @@ DROP TABLE IF EXISTS `llx_const`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_const` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `name` varchar(255) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `value` text COLLATE utf8mb3_unicode_ci NOT NULL, - `type` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT 'string', + `value` text NOT NULL, + `type` varchar(64) DEFAULT 'string', `visible` tinyint(4) NOT NULL DEFAULT 1, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), UNIQUE KEY `uk_const` (`name`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=9451 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=9516 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4985,7 +5026,7 @@ CREATE TABLE `llx_const` ( LOCK TABLES `llx_const` WRITE; /*!40000 ALTER TABLE `llx_const` DISABLE KEYS */; -INSERT INTO `llx_const` VALUES (8,'MAIN_UPLOAD_DOC',0,'2048','chaine',0,'Max size for file upload (0 means no upload allowed)','2012-07-08 11:17:57'),(9,'MAIN_SEARCHFORM_SOCIETE',0,'1','yesno',0,'Show form for quick company search','2012-07-08 11:17:57'),(10,'MAIN_SEARCHFORM_CONTACT',0,'1','yesno',0,'Show form for quick contact search','2012-07-08 11:17:57'),(11,'MAIN_SEARCHFORM_PRODUITSERVICE',0,'1','yesno',0,'Show form for quick product search','2012-07-08 11:17:58'),(12,'MAIN_SEARCHFORM_ADHERENT',0,'1','yesno',0,'Show form for quick member search','2012-07-08 11:17:58'),(16,'MAIN_SIZE_LISTE_LIMIT',0,'25','chaine',0,'Longueur maximum des listes','2012-07-08 11:17:58'),(29,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',1,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2012-07-08 11:17:58'),(33,'SOCIETE_NOLIST_COURRIER',0,'1','yesno',0,'Liste les fichiers du repertoire courrier','2012-07-08 11:17:58'),(36,'ADHERENT_MAIL_REQUIRED',1,'1','yesno',0,'EMail required to create a new member','2012-07-08 11:17:58'),(37,'ADHERENT_MAIL_FROM',1,'adherents@domain.com','chaine',0,'Sender EMail for automatic emails','2012-07-08 11:17:58'),(38,'ADHERENT_MAIL_RESIL',1,'Your subscription has been resiliated.\r\nWe hope to see you soon again','html',0,'Mail resiliation','2018-11-23 11:56:07'),(39,'ADHERENT_MAIL_VALID',1,'Your subscription has been validated.\r\nThis is a remind of your personal information :\r\n\r\n%INFOS%\r\n\r\n','html',0,'Mail de validation','2018-11-23 11:56:07'),(40,'ADHERENT_MAIL_COTIS',1,'Hello %PRENOM%,\r\nThanks for your subscription.\r\nThis email confirms that your subscription has been received and processed.\r\n\r\n','html',0,'Mail de validation de cotisation','2018-11-23 11:56:07'),(41,'ADHERENT_MAIL_VALID_SUBJECT',1,'Your subscription has been validated','chaine',0,'Sujet du mail de validation','2012-07-08 11:17:59'),(42,'ADHERENT_MAIL_RESIL_SUBJECT',1,'Resiliating your subscription','chaine',0,'Sujet du mail de resiliation','2012-07-08 11:17:59'),(43,'ADHERENT_MAIL_COTIS_SUBJECT',1,'Receipt of your subscription','chaine',0,'Sujet du mail de validation de cotisation','2012-07-08 11:17:59'),(44,'MAILING_EMAIL_FROM',1,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2012-07-08 11:17:59'),(45,'ADHERENT_USE_MAILMAN',1,'0','yesno',0,'Utilisation de Mailman','2012-07-08 11:17:59'),(46,'ADHERENT_MAILMAN_UNSUB_URL',1,'http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&user=%EMAIL%','chaine',0,'Url de desinscription aux listes mailman','2012-07-08 11:17:59'),(47,'ADHERENT_MAILMAN_URL',1,'http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&send_welcome_msg_to_this_batch=1&subscribees=%EMAIL%','chaine',0,'Url pour les inscriptions mailman','2012-07-08 11:17:59'),(48,'ADHERENT_MAILMAN_LISTS',1,'test-test,test-test2','chaine',0,'Listes auxquelles inscrire les nouveaux adherents','2012-07-08 11:17:59'),(49,'ADHERENT_MAILMAN_ADMINPW',1,'','chaine',0,'Mot de passe Admin des liste mailman','2012-07-08 11:17:59'),(50,'ADHERENT_MAILMAN_SERVER',1,'lists.domain.com','chaine',0,'Serveur hebergeant les interfaces d Admin des listes mailman','2012-07-08 11:17:59'),(51,'ADHERENT_MAILMAN_LISTS_COTISANT',1,'','chaine',0,'Liste(s) auxquelles les nouveaux cotisants sont inscris automatiquement','2012-07-08 11:17:59'),(52,'ADHERENT_USE_SPIP',1,'0','yesno',0,'Utilisation de SPIP ?','2012-07-08 11:17:59'),(53,'ADHERENT_USE_SPIP_AUTO',1,'0','yesno',0,'Utilisation de SPIP automatiquement','2012-07-08 11:17:59'),(54,'ADHERENT_SPIP_USER',1,'user','chaine',0,'user spip','2012-07-08 11:17:59'),(55,'ADHERENT_SPIP_PASS',1,'pass','chaine',0,'Pass de connection','2012-07-08 11:17:59'),(56,'ADHERENT_SPIP_SERVEUR',1,'localhost','chaine',0,'serveur spip','2012-07-08 11:17:59'),(57,'ADHERENT_SPIP_DB',1,'spip','chaine',0,'db spip','2012-07-08 11:17:59'),(58,'ADHERENT_CARD_HEADER_TEXT',1,'%ANNEE%','chaine',0,'Texte imprime sur le haut de la carte adherent','2012-07-08 11:17:59'),(59,'ADHERENT_CARD_FOOTER_TEXT',1,'Association AZERTY','chaine',0,'Texte imprime sur le bas de la carte adherent','2012-07-08 11:17:59'),(61,'FCKEDITOR_ENABLE_USER',1,'1','yesno',0,'Activation fckeditor sur notes utilisateurs','2012-07-08 11:17:59'),(62,'FCKEDITOR_ENABLE_SOCIETE',1,'1','yesno',0,'Activation fckeditor sur notes societe','2012-07-08 11:17:59'),(63,'FCKEDITOR_ENABLE_PRODUCTDESC',1,'1','yesno',0,'Activation fckeditor sur notes produits','2012-07-08 11:17:59'),(64,'FCKEDITOR_ENABLE_MEMBER',1,'1','yesno',0,'Activation fckeditor sur notes adherent','2012-07-08 11:17:59'),(65,'FCKEDITOR_ENABLE_MAILING',1,'1','yesno',0,'Activation fckeditor sur emailing','2012-07-08 11:17:59'),(67,'DON_ADDON_MODEL',1,'html_cerfafr','chaine',0,'','2012-07-08 11:18:00'),(68,'PROPALE_ADDON',1,'mod_propale_marbre','chaine',0,'','2012-07-08 11:18:00'),(69,'PROPALE_ADDON_PDF',1,'azur','chaine',0,'','2012-07-08 11:18:00'),(70,'COMMANDE_ADDON',1,'mod_commande_marbre','chaine',0,'','2012-07-08 11:18:00'),(71,'COMMANDE_ADDON_PDF',1,'einstein','chaine',0,'','2012-07-08 11:18:00'),(72,'COMMANDE_SUPPLIER_ADDON',1,'mod_commande_fournisseur_muguet','chaine',0,'','2012-07-08 11:18:00'),(73,'COMMANDE_SUPPLIER_ADDON_PDF',1,'muscadet','chaine',0,'','2012-07-08 11:18:00'),(74,'EXPEDITION_ADDON',1,'enlevement','chaine',0,'','2012-07-08 11:18:00'),(76,'FICHEINTER_ADDON',1,'pacific','chaine',0,'','2012-07-08 11:18:00'),(77,'FICHEINTER_ADDON_PDF',1,'soleil','chaine',0,'','2012-07-08 11:18:00'),(79,'FACTURE_ADDON_PDF',1,'crabe','chaine',0,'','2012-07-08 11:18:00'),(80,'PROPALE_VALIDITY_DURATION',1,'15','chaine',0,'Durée de validitée des propales','2012-07-08 11:18:00'),(230,'COMPANY_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/thirdparties','chaine',0,NULL,'2012-07-08 11:26:20'),(238,'LIVRAISON_ADDON_PDF',1,'typhon','chaine',0,'Nom du gestionnaire de generation des commandes en PDF','2012-07-08 11:26:27'),(239,'DELIVERY_ADDON_NUMBER',1,'mod_delivery_jade','chaine',0,'Nom du gestionnaire de numerotation des bons de livraison','2020-12-10 12:24:40'),(245,'FACTURE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/invoices','chaine',0,NULL,'2012-07-08 11:28:53'),(249,'DON_FORM',1,'html_cerfafr','chaine',0,'Nom du gestionnaire de formulaire de dons','2017-09-06 16:12:22'),(254,'ADHERENT_BANK_ACCOUNT',1,'','chaine',0,'ID du Compte banquaire utilise','2012-07-08 11:29:05'),(255,'ADHERENT_BANK_CATEGORIE',1,'','chaine',0,'ID de la categorie banquaire des cotisations','2012-07-08 11:29:05'),(256,'ADHERENT_ETIQUETTE_TYPE',1,'L7163','chaine',0,'Type d etiquette (pour impression de planche d etiquette)','2012-07-08 11:29:05'),(269,'PROJECT_ADDON_PDF',1,'baleine','chaine',0,'Nom du gestionnaire de generation des projets en PDF','2012-07-08 11:29:33'),(270,'PROJECT_ADDON',1,'mod_project_simple','chaine',0,'Nom du gestionnaire de numerotation des projets','2012-07-08 11:29:33'),(369,'EXPEDITION_ADDON_PDF',1,'merou','chaine',0,'','2012-07-08 22:58:07'),(377,'FACTURE_ADDON',1,'mod_facture_terre','chaine',0,'','2012-07-08 23:08:12'),(380,'ADHERENT_CARD_TEXT',1,'%TYPE% n° %ID%\r\n%PRENOM% %NOM%\r\n<%EMAIL%>\r\n%ADRESSE%\r\n%CP% %VILLE%\r\n%PAYS%','',0,'Texte imprime sur la carte adherent','2012-07-08 23:14:46'),(381,'ADHERENT_CARD_TEXT_RIGHT',1,'aaa','',0,'','2012-07-08 23:14:55'),(386,'STOCK_CALCULATE_ON_SHIPMENT',1,'1','chaine',0,'','2012-07-08 23:23:21'),(387,'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER',1,'1','chaine',0,'','2012-07-08 23:23:26'),(392,'MAIN_AGENDA_XCAL_EXPORTKEY',1,'dolibarr','chaine',0,'','2012-07-08 23:27:50'),(393,'MAIN_AGENDA_EXPORT_PAST_DELAY',1,'100','chaine',0,'','2012-07-08 23:27:50'),(610,'CASHDESK_ID_THIRDPARTY',1,'7','chaine',0,'','2012-07-11 17:08:18'),(611,'CASHDESK_ID_BANKACCOUNT_CASH',1,'3','chaine',0,'','2012-07-11 17:08:18'),(612,'CASHDESK_ID_BANKACCOUNT_CHEQUE',1,'1','chaine',0,'','2012-07-11 17:08:18'),(613,'CASHDESK_ID_BANKACCOUNT_CB',1,'1','chaine',0,'','2012-07-11 17:08:18'),(614,'CASHDESK_ID_WAREHOUSE',1,'2','chaine',0,'','2012-07-11 17:08:18'),(660,'LDAP_USER_DN',1,'ou=users,dc=my-domain,dc=com','chaine',0,NULL,'2012-07-18 10:25:27'),(661,'LDAP_GROUP_DN',1,'ou=groups,dc=my-domain,dc=com','chaine',0,NULL,'2012-07-18 10:25:27'),(662,'LDAP_FILTER_CONNECTION',1,'&(objectClass=user)(objectCategory=person)','chaine',0,NULL,'2012-07-18 10:25:27'),(663,'LDAP_FIELD_LOGIN',1,'uid','chaine',0,NULL,'2012-07-18 10:25:27'),(664,'LDAP_FIELD_FULLNAME',1,'cn','chaine',0,NULL,'2012-07-18 10:25:27'),(665,'LDAP_FIELD_NAME',1,'sn','chaine',0,NULL,'2012-07-18 10:25:27'),(666,'LDAP_FIELD_FIRSTNAME',1,'givenname','chaine',0,NULL,'2012-07-18 10:25:27'),(667,'LDAP_FIELD_MAIL',1,'mail','chaine',0,NULL,'2012-07-18 10:25:27'),(668,'LDAP_FIELD_PHONE',1,'telephonenumber','chaine',0,NULL,'2012-07-18 10:25:27'),(669,'LDAP_FIELD_FAX',1,'facsimiletelephonenumber','chaine',0,NULL,'2012-07-18 10:25:27'),(670,'LDAP_FIELD_MOBILE',1,'mobile','chaine',0,NULL,'2012-07-18 10:25:27'),(671,'LDAP_SERVER_TYPE',1,'openldap','chaine',0,'','2012-07-18 10:25:46'),(672,'LDAP_SERVER_PROTOCOLVERSION',1,'3','chaine',0,'','2012-07-18 10:25:47'),(673,'LDAP_SERVER_HOST',1,'localhost','chaine',0,'','2012-07-18 10:25:47'),(674,'LDAP_SERVER_PORT',1,'389','chaine',0,'','2012-07-18 10:25:47'),(675,'LDAP_SERVER_USE_TLS',1,'0','chaine',0,'','2012-07-18 10:25:47'),(676,'LDAP_SYNCHRO_ACTIVE',1,'dolibarr2ldap','chaine',0,'','2012-07-18 10:25:47'),(677,'LDAP_CONTACT_ACTIVE',1,'1','chaine',0,'','2012-07-18 10:25:47'),(678,'LDAP_MEMBER_ACTIVE',1,'1','chaine',0,'','2012-07-18 10:25:47'),(974,'MAIN_MODULE_WORKFLOW_TRIGGERS',1,'1','chaine',0,NULL,'2013-07-18 18:02:20'),(975,'WORKFLOW_PROPAL_AUTOCREATE_ORDER',1,'1','chaine',0,'','2013-07-18 18:02:24'),(980,'PRELEVEMENT_NUMERO_NATIONAL_EMETTEUR',1,'1234567','chaine',0,'','2013-07-18 18:05:50'),(983,'FACTURE_RIB_NUMBER',1,'1','chaine',0,'','2013-07-18 18:35:14'),(984,'FACTURE_CHQ_NUMBER',1,'1','chaine',0,'','2013-07-18 18:35:14'),(1016,'GOOGLE_DUPLICATE_INTO_GCAL',1,'1','chaine',0,'','2013-07-18 21:40:20'),(1152,'SOCIETE_CODECLIENT_ADDON',1,'mod_codeclient_monkey','chaine',0,'','2013-07-29 20:50:02'),(1240,'MAIN_LOGEVENTS_USER_LOGIN',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1241,'MAIN_LOGEVENTS_USER_LOGIN_FAILED',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1242,'MAIN_LOGEVENTS_USER_LOGOUT',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1243,'MAIN_LOGEVENTS_USER_CREATE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1244,'MAIN_LOGEVENTS_USER_MODIFY',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1245,'MAIN_LOGEVENTS_USER_NEW_PASSWORD',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1246,'MAIN_LOGEVENTS_USER_ENABLEDISABLE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1247,'MAIN_LOGEVENTS_USER_DELETE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1248,'MAIN_LOGEVENTS_GROUP_CREATE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1249,'MAIN_LOGEVENTS_GROUP_MODIFY',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1250,'MAIN_LOGEVENTS_GROUP_DELETE',1,'1','chaine',0,'','2013-07-29 21:05:01'),(1251,'MAIN_BOXES_MAXLINES',1,'5','',0,'','2013-07-29 21:05:42'),(1482,'EXPEDITION_ADDON_NUMBER',1,'mod_expedition_safor','chaine',0,'Nom du gestionnaire de numerotation des expeditions','2013-08-05 17:53:11'),(1490,'CONTRACT_ADDON',1,'mod_contract_serpis','chaine',0,'Nom du gestionnaire de numerotation des contrats','2013-08-05 18:11:58'),(1677,'COMMANDE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/orders','chaine',0,NULL,'2014-12-08 13:11:02'),(1724,'PROPALE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/proposals','chaine',0,NULL,'2014-12-08 13:17:14'),(1730,'OPENSTREETMAP_ENABLE_MAPS',1,'1','chaine',0,'','2014-12-08 13:22:47'),(1731,'OPENSTREETMAP_ENABLE_MAPS_CONTACTS',1,'1','chaine',0,'','2014-12-08 13:22:47'),(1732,'OPENSTREETMAP_ENABLE_MAPS_MEMBERS',1,'1','chaine',0,'','2014-12-08 13:22:47'),(1733,'OPENSTREETMAP_MAPS_ZOOM_LEVEL',1,'15','chaine',0,'','2014-12-08 13:22:47'),(1742,'MAIN_MAIL_EMAIL_FROM',2,'dolibarr-robot@domain.com','chaine',0,'EMail emetteur pour les emails automatiques Dolibarr','2014-12-08 14:08:14'),(1743,'MAIN_MENU_STANDARD',2,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs internes','2015-02-11 19:43:54'),(1744,'MAIN_MENUFRONT_STANDARD',2,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs externes','2015-02-11 19:43:54'),(1745,'MAIN_MENU_SMARTPHONE',2,'iphone_backoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs internes','2014-12-08 14:08:14'),(1746,'MAIN_MENUFRONT_SMARTPHONE',2,'iphone_frontoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs externes','2014-12-08 14:08:14'),(1747,'MAIN_THEME',2,'eldy','chaine',0,'Default theme','2014-12-08 14:08:14'),(1748,'MAIN_DELAY_ACTIONS_TODO',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur actions planifiées non réalisées','2014-12-08 14:08:14'),(1749,'MAIN_DELAY_ORDERS_TO_PROCESS',2,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes clients non traitées','2014-12-08 14:08:14'),(1750,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes fournisseurs non traitées','2014-12-08 14:08:14'),(1751,'MAIN_DELAY_PROPALS_TO_CLOSE',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales à cloturer','2014-12-08 14:08:14'),(1752,'MAIN_DELAY_PROPALS_TO_BILL',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales non facturées','2014-12-08 14:08:14'),(1753,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures client impayées','2014-12-08 14:08:14'),(1754,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',2,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées','2014-12-08 14:08:14'),(1755,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',2,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2014-12-08 14:08:14'),(1756,'MAIN_DELAY_RUNNING_SERVICES',2,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services expirés','2014-12-08 14:08:14'),(1757,'MAIN_DELAY_MEMBERS',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur cotisations adhérent en retard','2014-12-08 14:08:14'),(1758,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',2,'62','chaine',0,'Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire','2014-12-08 14:08:14'),(1759,'MAILING_EMAIL_FROM',2,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2014-12-08 14:08:14'),(1760,'MAIN_INFO_SOCIETE_COUNTRY',3,'1:FR:France','chaine',0,'','2015-02-26 21:56:28'),(1761,'MAIN_INFO_SOCIETE_NOM',3,'bbb','chaine',0,'','2014-12-08 14:08:20'),(1762,'MAIN_INFO_SOCIETE_STATE',3,'0','chaine',0,'','2015-02-27 14:20:27'),(1763,'MAIN_MONNAIE',3,'EUR','chaine',0,'','2014-12-08 14:08:20'),(1764,'MAIN_LANG_DEFAULT',3,'auto','chaine',0,'','2014-12-08 14:08:20'),(1765,'MAIN_MAIL_EMAIL_FROM',3,'dolibarr-robot@domain.com','chaine',0,'EMail emetteur pour les emails automatiques Dolibarr','2014-12-08 14:08:20'),(1766,'MAIN_MENU_STANDARD',3,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs internes','2015-02-11 19:43:54'),(1767,'MAIN_MENUFRONT_STANDARD',3,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs externes','2015-02-11 19:43:54'),(1768,'MAIN_MENU_SMARTPHONE',3,'iphone_backoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs internes','2014-12-08 14:08:20'),(1769,'MAIN_MENUFRONT_SMARTPHONE',3,'iphone_frontoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs externes','2014-12-08 14:08:20'),(1770,'MAIN_THEME',3,'eldy','chaine',0,'Default theme','2014-12-08 14:08:20'),(1771,'MAIN_DELAY_ACTIONS_TODO',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur actions planifiées non réalisées','2014-12-08 14:08:20'),(1772,'MAIN_DELAY_ORDERS_TO_PROCESS',3,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes clients non traitées','2014-12-08 14:08:20'),(1773,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes fournisseurs non traitées','2014-12-08 14:08:20'),(1774,'MAIN_DELAY_PROPALS_TO_CLOSE',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales à cloturer','2014-12-08 14:08:20'),(1775,'MAIN_DELAY_PROPALS_TO_BILL',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales non facturées','2014-12-08 14:08:20'),(1776,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures client impayées','2014-12-08 14:08:20'),(1777,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',3,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées','2014-12-08 14:08:20'),(1778,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',3,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2014-12-08 14:08:20'),(1779,'MAIN_DELAY_RUNNING_SERVICES',3,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services expirés','2014-12-08 14:08:20'),(1780,'MAIN_DELAY_MEMBERS',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur cotisations adhérent en retard','2014-12-08 14:08:20'),(1781,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',3,'62','chaine',0,'Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire','2014-12-08 14:08:20'),(1782,'MAILING_EMAIL_FROM',3,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2014-12-08 14:08:20'),(1803,'SYSLOG_FILE',1,'DOL_DATA_ROOT/dolibarr.log','chaine',0,'','2014-12-08 14:15:08'),(1804,'SYSLOG_HANDLERS',1,'[\"mod_syslog_file\"]','chaine',0,'','2014-12-08 14:15:08'),(1805,'MAIN_MODULE_SKINCOLOREDITOR',3,'1',NULL,0,NULL,'2014-12-08 14:35:40'),(1922,'PAYPAL_API_SANDBOX',1,'1','chaine',0,'','2014-12-12 12:11:05'),(1923,'PAYPAL_API_USER',1,'seller_1355312017_biz_api1.mydomain.com','chaine',0,'','2014-12-12 12:11:05'),(1924,'PAYPAL_API_PASSWORD',1,'1355312040','chaine',0,'','2014-12-12 12:11:05'),(1925,'PAYPAL_API_SIGNATURE',1,'ABCDEFWBzvfn0q5iNmbuiDv1y.3EAXIMWyl4C5KvDReR9HDwwAd6dQ4Q','chaine',0,'','2014-12-12 12:11:05'),(1926,'PAYPAL_API_INTEGRAL_OR_PAYPALONLY',1,'integral','chaine',0,'','2014-12-12 12:11:05'),(1927,'PAYPAL_SECURITY_TOKEN',1,'50c82fab36bb3b6aa83e2a50691803b2','chaine',0,'','2014-12-12 12:11:05'),(1928,'PAYPAL_SECURITY_TOKEN_UNIQUE',1,'0','chaine',0,'','2014-12-12 12:11:05'),(1929,'PAYPAL_ADD_PAYMENT_URL',1,'1','chaine',0,'','2014-12-12 12:11:05'),(1980,'MAIN_PDF_FORMAT',1,'EUA4','chaine',0,'','2014-12-12 19:58:05'),(1981,'MAIN_PROFID1_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1982,'MAIN_PROFID2_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1983,'MAIN_PROFID3_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1984,'MAIN_PROFID4_IN_ADDRESS',1,'0','chaine',0,'','2014-12-12 19:58:05'),(1985,'MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT',1,'0','chaine',0,'','2014-12-12 19:58:05'),(2835,'MAIN_USE_CONNECT_TIMEOUT',1,'10','chaine',0,'','2015-01-16 19:28:50'),(2836,'MAIN_USE_RESPONSE_TIMEOUT',1,'30','chaine',0,'','2015-01-16 19:28:50'),(2837,'MAIN_PROXY_USE',1,'0','chaine',0,'','2015-01-16 19:28:50'),(2838,'MAIN_PROXY_HOST',1,'localhost','chaine',0,'','2015-01-16 19:28:50'),(2839,'MAIN_PROXY_PORT',1,'8080','chaine',0,'','2015-01-16 19:28:50'),(2840,'MAIN_PROXY_USER',1,'aaa','chaine',0,'','2015-01-16 19:28:50'),(2841,'MAIN_PROXY_PASS',1,'bbb','chaine',0,'','2015-01-16 19:28:50'),(2848,'OVHSMS_NICK',1,'BN196-OVH','chaine',0,'','2015-01-16 19:32:36'),(2849,'OVHSMS_PASS',1,'bigone-10','chaine',0,'','2015-01-16 19:32:36'),(2850,'OVHSMS_SOAPURL',1,'https://www.ovh.com/soapi/soapi-re-1.55.wsdl','chaine',0,'','2015-01-16 19:32:36'),(2854,'THEME_ELDY_RGB',1,'bfbf00','chaine',0,'','2015-01-18 10:02:53'),(2855,'THEME_ELDY_ENABLE_PERSONALIZED',1,'0','chaine',0,'','2015-01-18 10:02:55'),(2858,'MAIN_SESSION_TIMEOUT',1,'2000','chaine',0,'','2015-01-19 17:01:53'),(2867,'FACSIM_ADDON',1,'mod_facsim_alcoy','chaine',0,'','2015-01-19 17:16:25'),(2868,'POS_SERVICES',1,'0','chaine',0,'','2015-01-19 17:16:51'),(2869,'POS_USE_TICKETS',1,'1','chaine',0,'','2015-01-19 17:16:51'),(2870,'POS_MAX_TTC',1,'100','chaine',0,'','2015-01-19 17:16:51'),(3190,'MAIN_MODULE_HOLIDAY',2,'1',NULL,0,NULL,'2015-02-01 08:52:34'),(3195,'INVOICE_SUPPLIER_ADDON_PDF',1,'canelle','chaine',0,'','2015-02-10 19:50:27'),(3199,'MAIN_FORCE_RELOAD_PAGE',1,'1','chaine',0,NULL,'2015-02-12 16:22:55'),(3223,'OVH_THIRDPARTY_IMPORT',1,'2','chaine',0,'','2015-02-13 16:20:18'),(3409,'AGENDA_USE_EVENT_TYPE',1,'1','chaine',0,'','2015-02-27 18:12:24'),(3886,'MAIN_REMOVE_INSTALL_WARNING',1,'1','chaine',1,'','2015-03-02 18:32:50'),(4013,'MAIN_DELAY_ACTIONS_TODO',1,'7','chaine',0,'','2015-03-06 08:59:12'),(4014,'MAIN_DELAY_PROPALS_TO_CLOSE',1,'31','chaine',0,'','2015-03-06 08:59:12'),(4015,'MAIN_DELAY_PROPALS_TO_BILL',1,'7','chaine',0,'','2015-03-06 08:59:12'),(4016,'MAIN_DELAY_ORDERS_TO_PROCESS',1,'2','chaine',0,'','2015-03-06 08:59:12'),(4017,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',1,'31','chaine',0,'','2015-03-06 08:59:12'),(4018,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',1,'7','chaine',0,'','2015-03-06 08:59:12'),(4019,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',1,'2','chaine',0,'','2015-03-06 08:59:12'),(4020,'MAIN_DELAY_RUNNING_SERVICES',1,'-15','chaine',0,'','2015-03-06 08:59:12'),(4021,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',1,'62','chaine',0,'','2015-03-06 08:59:13'),(4022,'MAIN_DELAY_MEMBERS',1,'31','chaine',0,'','2015-03-06 08:59:13'),(4023,'MAIN_DISABLE_METEO',1,'0','chaine',0,'','2015-03-06 08:59:13'),(4044,'ADHERENT_VAT_FOR_SUBSCRIPTIONS',1,'0','',0,'','2015-03-06 16:06:38'),(4047,'ADHERENT_BANK_USE',1,'bankviainvoice','',0,'','2015-03-06 16:12:30'),(4049,'PHPSANE_SCANIMAGE',1,'/usr/bin/scanimage','chaine',0,'','2015-03-06 21:54:13'),(4050,'PHPSANE_PNMTOJPEG',1,'/usr/bin/pnmtojpeg','chaine',0,'','2015-03-06 21:54:13'),(4051,'PHPSANE_PNMTOTIFF',1,'/usr/bin/pnmtotiff','chaine',0,'','2015-03-06 21:54:13'),(4052,'PHPSANE_OCR',1,'/usr/bin/gocr','chaine',0,'','2015-03-06 21:54:13'),(4548,'ECM_AUTO_TREE_ENABLED',1,'1','chaine',0,'','2015-03-10 15:57:21'),(4579,'MAIN_MODULE_AGENDA',2,'1',NULL,0,NULL,'2015-03-13 15:29:19'),(4580,'MAIN_AGENDA_ACTIONAUTO_COMPANY_CREATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4581,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4582,'MAIN_AGENDA_ACTIONAUTO_PROPAL_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4583,'MAIN_AGENDA_ACTIONAUTO_PROPAL_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4584,'MAIN_AGENDA_ACTIONAUTO_ORDER_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4585,'MAIN_AGENDA_ACTIONAUTO_ORDER_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4586,'MAIN_AGENDA_ACTIONAUTO_BILL_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4587,'MAIN_AGENDA_ACTIONAUTO_BILL_PAYED',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4588,'MAIN_AGENDA_ACTIONAUTO_BILL_CANCEL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4589,'MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4590,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4591,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4592,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4593,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4594,'MAIN_AGENDA_ACTIONAUTO_BILL_UNVALIDATE',2,'1','chaine',0,NULL,'2015-03-13 15:29:19'),(4688,'GOOGLE_ENABLE_AGENDA',2,'1','chaine',0,'','2015-03-13 15:36:29'),(4689,'GOOGLE_AGENDA_NAME1',2,'eldy','chaine',0,'','2015-03-13 15:36:29'),(4690,'GOOGLE_AGENDA_SRC1',2,'eldy10@mail.com','chaine',0,'','2015-03-13 15:36:29'),(4691,'GOOGLE_AGENDA_COLOR1',2,'BE6D00','chaine',0,'','2015-03-13 15:36:29'),(4692,'GOOGLE_AGENDA_COLOR2',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4693,'GOOGLE_AGENDA_COLOR3',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4694,'GOOGLE_AGENDA_COLOR4',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4695,'GOOGLE_AGENDA_COLOR5',2,'7A367A','chaine',0,'','2015-03-13 15:36:29'),(4696,'GOOGLE_AGENDA_TIMEZONE',2,'Europe/Paris','chaine',0,'','2015-03-13 15:36:29'),(4697,'GOOGLE_AGENDA_NB',2,'5','chaine',0,'','2015-03-13 15:36:29'),(4725,'SOCIETE_CODECLIENT_ADDON',2,'mod_codeclient_leopard','chaine',0,'Module to control third parties codes','2015-03-13 20:21:35'),(4726,'SOCIETE_CODECOMPTA_ADDON',2,'mod_codecompta_panicum','chaine',0,'Module to control third parties codes','2015-03-13 20:21:35'),(4727,'SOCIETE_FISCAL_MONTH_START',2,'','chaine',0,'Mettre le numero du mois du debut d\\\'annee fiscale, ex: 9 pour septembre','2015-03-13 20:21:35'),(4728,'MAIN_SEARCHFORM_SOCIETE',2,'1','yesno',0,'Show form for quick company search','2015-03-13 20:21:35'),(4729,'MAIN_SEARCHFORM_CONTACT',2,'1','yesno',0,'Show form for quick contact search','2015-03-13 20:21:35'),(4730,'COMPANY_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/thirdparties','chaine',0,NULL,'2015-03-13 20:21:35'),(4743,'MAIN_MODULE_CLICKTODIAL',2,'1',NULL,0,NULL,'2015-03-13 20:30:28'),(4744,'MAIN_MODULE_NOTIFICATION',2,'1',NULL,0,NULL,'2015-03-13 20:30:34'),(4745,'MAIN_MODULE_WEBSERVICES',2,'1',NULL,0,NULL,'2015-03-13 20:30:41'),(4746,'MAIN_MODULE_PROPALE',2,'1',NULL,0,NULL,'2015-03-13 20:32:38'),(4747,'PROPALE_ADDON_PDF',2,'azur','chaine',0,'Nom du gestionnaire de generation des propales en PDF','2015-03-13 20:32:38'),(4748,'PROPALE_ADDON',2,'mod_propale_marbre','chaine',0,'Nom du gestionnaire de numerotation des propales','2015-03-13 20:32:38'),(4749,'PROPALE_VALIDITY_DURATION',2,'15','chaine',0,'Duration of validity of business proposals','2015-03-13 20:32:38'),(4750,'PROPALE_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/proposals','chaine',0,NULL,'2015-03-13 20:32:38'),(4752,'MAIN_MODULE_TAX',2,'1',NULL,0,NULL,'2015-03-13 20:32:47'),(4753,'MAIN_MODULE_DON',2,'1',NULL,0,NULL,'2015-03-13 20:32:54'),(4754,'DON_ADDON_MODEL',2,'html_cerfafr','chaine',0,'Nom du gestionnaire de generation de recu de dons','2015-03-13 20:32:54'),(4755,'POS_USE_TICKETS',2,'1','chaine',0,'','2015-03-13 20:33:09'),(4756,'POS_MAX_TTC',2,'100','chaine',0,'','2015-03-13 20:33:09'),(4757,'MAIN_MODULE_POS',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4758,'TICKET_ADDON',2,'mod_ticket_avenc','chaine',0,'Nom du gestionnaire de numerotation des tickets','2015-03-13 20:33:09'),(4759,'MAIN_MODULE_BANQUE',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4760,'MAIN_MODULE_FACTURE',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4761,'FACTURE_ADDON_PDF',2,'crabe','chaine',0,'Name of PDF model of invoice','2015-03-13 20:33:09'),(4762,'FACTURE_ADDON',2,'mod_facture_terre','chaine',0,'Name of numbering numerotation rules of invoice','2015-03-13 20:33:09'),(4763,'FACTURE_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/invoices','chaine',0,NULL,'2015-03-13 20:33:09'),(4764,'MAIN_MODULE_SOCIETE',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4765,'MAIN_MODULE_PRODUCT',2,'1',NULL,0,NULL,'2015-03-13 20:33:09'),(4766,'PRODUCT_CODEPRODUCT_ADDON',2,'mod_codeproduct_leopard','chaine',0,'Module to control product codes','2015-03-13 20:33:09'),(4767,'MAIN_SEARCHFORM_PRODUITSERVICE',2,'1','yesno',0,'Show form for quick product search','2015-03-13 20:33:09'),(4772,'FACSIM_ADDON',2,'mod_facsim_alcoy','chaine',0,'','2015-03-13 20:33:32'),(4773,'MAIN_MODULE_MAILING',2,'1',NULL,0,NULL,'2015-03-13 20:33:37'),(4774,'MAIN_MODULE_OPENSURVEY',2,'1',NULL,0,NULL,'2015-03-13 20:33:42'),(4782,'AGENDA_USE_EVENT_TYPE',2,'1','chaine',0,'','2015-03-13 20:53:36'),(4884,'AGENDA_DISABLE_EXT',2,'1','chaine',0,'','2015-03-13 22:03:40'),(4928,'COMMANDE_SUPPLIER_ADDON_NUMBER',1,'mod_commande_fournisseur_muguet','chaine',0,'Nom du gestionnaire de numerotation des commandes fournisseur','2015-03-22 09:24:29'),(4929,'INVOICE_SUPPLIER_ADDON_NUMBER',1,'mod_facture_fournisseur_cactus','chaine',0,'Nom du gestionnaire de numerotation des factures fournisseur','2015-03-22 09:24:29'),(5001,'MAIN_CRON_KEY',0,'bc54582fe30d5d4a830c6f582ec28810','chaine',0,'','2015-03-23 17:54:53'),(5009,'CRON_KEY',0,'2c2e755c20be2014098f629865598006','chaine',0,'','2015-03-23 18:06:24'),(5139,'SOCIETE_ADD_REF_IN_LIST',1,'','yesno',0,'Display customer ref into select list','2015-09-08 23:06:08'),(5150,'PROJECT_TASK_ADDON_PDF',1,'','chaine',0,'Name of PDF/ODT tasks manager class','2015-09-08 23:06:14'),(5151,'PROJECT_TASK_ADDON',1,'mod_task_simple','chaine',0,'Name of Numbering Rule task manager class','2015-09-08 23:06:14'),(5152,'PROJECT_TASK_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/tasks','chaine',0,'','2015-09-08 23:06:14'),(5239,'BOOKMARKS_SHOW_IN_MENU',1,'10','chaine',0,'','2016-03-02 15:42:26'),(5271,'DONATION_ART200',1,'','yesno',0,'Option Française - Eligibilité Art200 du CGI','2016-12-21 12:51:28'),(5272,'DONATION_ART238',1,'','yesno',0,'Option Française - Eligibilité Art238 bis du CGI','2016-12-21 12:51:28'),(5274,'DONATION_MESSAGE',1,'Thank you','chaine',0,'Message affiché sur le récépissé de versements ou dons','2016-12-21 12:51:28'),(5349,'MAIN_SEARCHFORM_CONTACT',1,'1','chaine',0,'','2017-10-03 10:11:33'),(5351,'MAIN_SEARCHFORM_PRODUITSERVICE',1,'1','chaine',0,'','2017-10-03 10:11:33'),(5352,'MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER',1,'0','chaine',0,'','2017-10-03 10:11:33'),(5353,'MAIN_SEARCHFORM_ADHERENT',1,'1','chaine',0,'','2017-10-03 10:11:33'),(5354,'MAIN_SEARCHFORM_PROJECT',1,'0','chaine',0,'','2017-10-03 10:11:33'),(5394,'FCKEDITOR_ENABLE_DETAILS',1,'1','yesno',0,'WYSIWIG for products details lines for all entities','2017-11-04 15:27:44'),(5395,'FCKEDITOR_ENABLE_USERSIGN',1,'1','yesno',0,'WYSIWIG for user signature','2017-11-04 15:27:44'),(5396,'FCKEDITOR_ENABLE_MAIL',1,'1','yesno',0,'WYSIWIG for products details lines for all entities','2017-11-04 15:27:44'),(5398,'CATEGORIE_RECURSIV_ADD',1,'','yesno',0,'Affect parent categories','2017-11-04 15:27:46'),(5404,'MAIN_MODULE_CATEGORIE',1,'1',NULL,0,NULL,'2017-11-04 15:41:43'),(5415,'EXPEDITION_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/shipment','chaine',0,NULL,'2017-11-15 22:38:28'),(5416,'LIVRAISON_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/delivery','chaine',0,NULL,'2017-11-15 22:38:28'),(5426,'MAIN_MODULE_PROJET',1,'1',NULL,0,NULL,'2017-11-15 22:38:44'),(5427,'PROJECT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/projects','chaine',0,NULL,'2017-11-15 22:38:44'),(5428,'PROJECT_USE_OPPORTUNIES',1,'1','chaine',0,NULL,'2017-11-15 22:38:44'),(5430,'MAIN_MODULE_EXPORT',1,'1',NULL,0,NULL,'2017-11-15 22:38:56'),(5431,'MAIN_MODULE_IMPORT',1,'1',NULL,0,NULL,'2017-11-15 22:38:58'),(5432,'MAIN_MODULE_MAILING',1,'1',NULL,0,NULL,'2017-11-15 22:39:00'),(5434,'EXPENSEREPORT_ADDON_PDF',1,'standard','chaine',0,'Name of manager to build PDF expense reports documents','2017-11-15 22:39:05'),(5437,'SALARIES_ACCOUNTING_ACCOUNT_CHARGE',1,'641','chaine',0,NULL,'2017-11-15 22:39:08'),(5441,'ADHERENT_ETIQUETTE_TEXT',1,'%FULLNAME%\n%ADDRESS%\n%ZIP% %TOWN%\n%COUNTRY%','text',0,'Text to print on member address sheets','2018-11-23 11:56:07'),(5443,'MAIN_MODULE_PRELEVEMENT',1,'1',NULL,0,NULL,'2017-11-15 22:39:33'),(5453,'MAIN_MODULE_CONTRAT',1,'1',NULL,0,NULL,'2017-11-15 22:39:52'),(5455,'MAIN_MODULE_FICHEINTER',1,'1',NULL,0,NULL,'2017-11-15 22:39:56'),(5459,'MAIN_MODULE_PAYPAL',1,'1',NULL,0,NULL,'2017-11-15 22:41:02'),(5463,'MAIN_MODULE_PROPALE',1,'1',NULL,0,NULL,'2017-11-15 22:41:47'),(5483,'GENBARCODE_BARCODETYPE_THIRDPARTY',1,'6','chaine',0,'','2018-01-16 15:49:43'),(5484,'PRODUIT_DEFAULT_BARCODE_TYPE',1,'2','chaine',0,'','2018-01-16 15:49:46'),(5586,'MAIN_DELAY_EXPENSEREPORTS_TO_PAY',1,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur les notes de frais impayées','2018-01-22 17:28:18'),(5587,'MAIN_FIX_FOR_BUGGED_MTA',1,'1','chaine',1,'Set constant to fix email ending from PHP with some linux ike system','2018-01-22 17:28:18'),(5590,'MAIN_VERSION_LAST_INSTALL',0,'3.8.3','chaine',0,'Dolibarr version when install','2018-01-22 17:28:42'),(5604,'MAIN_INFO_SOCIETE_LOGO',1,'mybigcompany.png','chaine',0,'','2018-01-22 17:33:49'),(5605,'MAIN_INFO_SOCIETE_LOGO_SMALL',1,'mybigcompany_small.png','chaine',0,'','2018-01-22 17:33:49'),(5606,'MAIN_INFO_SOCIETE_LOGO_MINI',1,'mybigcompany_mini.png','chaine',0,'','2018-01-22 17:33:49'),(5614,'MAIN_SIZE_SHORTLISTE_LIMIT',1,'4','chaine',0,'Longueur maximum des listes courtes (fiche client)','2018-03-13 10:54:46'),(5627,'SUPPLIER_PROPOSAL_ADDON_PDF',1,'aurore','chaine',0,'Name of submodule to generate PDF for supplier quotation request','2018-07-30 11:13:20'),(5628,'SUPPLIER_PROPOSAL_ADDON',1,'mod_supplier_proposal_marbre','chaine',0,'Name of submodule to number supplier quotation request','2018-07-30 11:13:20'),(5629,'SUPPLIER_PROPOSAL_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/supplier_proposal','chaine',0,NULL,'2018-07-30 11:13:20'),(5633,'MAIN_MODULE_API',1,'1',NULL,0,NULL,'2018-07-30 11:13:54'),(5634,'MAIN_MODULE_WEBSERVICES',1,'1',NULL,0,NULL,'2018-07-30 11:13:56'),(5635,'WEBSERVICES_KEY',1,'dolibarrkey','chaine',0,'','2018-07-30 11:14:04'),(5638,'MAIN_MODULE_EXTERNALRSS',1,'1',NULL,0,NULL,'2018-07-30 11:15:04'),(5642,'SOCIETE_CODECOMPTA_ADDON',1,'mod_codecompta_aquarium','chaine',0,'','2018-07-30 11:16:42'),(5707,'CASHDESK_NO_DECREASE_STOCK',1,'1','chaine',0,'','2018-07-30 13:38:11'),(5708,'MAIN_MODULE_PRODUCTBATCH',1,'1',NULL,0,NULL,'2018-07-30 13:38:11'),(5710,'MAIN_MODULE_STOCK',1,'1',NULL,0,NULL,'2018-07-30 13:38:11'),(5711,'MAIN_MODULE_PRODUCT',1,'1',NULL,0,NULL,'2018-07-30 13:38:11'),(5808,'MARGIN_TYPE',1,'costprice','chaine',0,'','2018-07-30 16:32:18'),(5809,'DISPLAY_MARGIN_RATES',1,'1','chaine',0,'','2018-07-30 16:32:20'),(5833,'ACCOUNTING_EXPORT_SEPARATORCSV',1,',','string',0,NULL,'2017-01-29 15:11:56'),(5840,'CHARTOFACCOUNTS',1,'2','chaine',0,NULL,'2017-01-29 15:11:56'),(5841,'ACCOUNTING_EXPORT_MODELCSV',1,'1','chaine',0,NULL,'2017-01-29 15:11:56'),(5842,'ACCOUNTING_LENGTH_GACCOUNT',1,'','chaine',0,NULL,'2017-01-29 15:11:56'),(5843,'ACCOUNTING_LENGTH_AACCOUNT',1,'','chaine',0,NULL,'2017-01-29 15:11:56'),(5844,'ACCOUNTING_LIST_SORT_VENTILATION_TODO',1,'1','yesno',0,NULL,'2017-01-29 15:11:56'),(5845,'ACCOUNTING_LIST_SORT_VENTILATION_DONE',1,'1','yesno',0,NULL,'2017-01-29 15:11:56'),(5846,'ACCOUNTING_EXPORT_DATE',1,'%d%m%Y','chaine',0,NULL,'2017-01-29 15:11:56'),(5848,'ACCOUNTING_EXPORT_FORMAT',1,'csv','chaine',0,NULL,'2017-01-29 15:11:56'),(5853,'MAIN_MODULE_WORKFLOW',1,'1',NULL,0,NULL,'2017-01-29 15:12:12'),(5854,'MAIN_MODULE_NOTIFICATION',1,'1',NULL,0,NULL,'2017-01-29 15:12:35'),(5855,'MAIN_MODULE_OAUTH',1,'1',NULL,0,NULL,'2017-01-29 15:12:41'),(5883,'MAILING_LIMIT_SENDBYWEB',0,'15','chaine',1,'Number of targets to defined packet size when sending mass email','2017-01-29 17:36:33'),(5884,'MAIN_MAIL_DEBUG',1,'0','chaine',1,'','2017-01-29 18:53:02'),(5885,'MAIN_SOAP_DEBUG',1,'0','chaine',1,'','2017-01-29 18:53:02'),(5925,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5931,'DATABASE_PWD_ENCRYPTED',1,'1','chaine',0,'','2017-02-01 15:06:04'),(5932,'MAIN_DISABLE_ALL_MAILS',1,'0','chaine',0,'','2017-02-01 15:09:09'),(5933,'MAIN_MAIL_SENDMODE',1,'mail','chaine',0,'','2017-02-01 15:09:09'),(5934,'MAIN_MAIL_SMTP_PORT',1,'465','chaine',0,'','2017-02-01 15:09:09'),(5935,'MAIN_MAIL_SMTP_SERVER',1,'smtp.mail.com','chaine',0,'','2017-02-01 15:09:09'),(5936,'MAIN_MAIL_SMTPS_ID',1,'eldy10@mail.com','chaine',0,'','2017-02-01 15:09:09'),(5937,'MAIN_MAIL_SMTPS_PW',1,'bidonge','chaine',0,'','2017-02-01 15:09:09'),(5938,'MAIN_MAIL_EMAIL_FROM',1,'robot@example.com','chaine',0,'','2017-02-01 15:09:09'),(5939,'MAIN_MAIL_DEFAULT_FROMTYPE',1,'user','chaine',0,'','2017-02-01 15:09:09'),(5940,'PRELEVEMENT_ID_BANKACCOUNT',1,'1','chaine',0,'','2017-02-06 04:04:47'),(5941,'PRELEVEMENT_ICS',1,'ICS123456','chaine',0,'','2017-02-06 04:04:47'),(5942,'PRELEVEMENT_USER',1,'1','chaine',0,'','2017-02-06 04:04:47'),(5943,'BANKADDON_PDF',1,'sepamandate','chaine',0,'','2017-02-06 04:13:52'),(5947,'CHEQUERECEIPTS_THYME_MASK',1,'CHK{yy}{mm}-{0000@1}','chaine',0,'','2017-02-06 04:16:27'),(5948,'MAIN_MODULE_LOAN',1,'1',NULL,0,NULL,'2017-02-06 19:19:05'),(5954,'MAIN_SUBMODULE_EXPEDITION',1,'1','chaine',0,'','2017-02-06 23:57:37'),(5964,'MAIN_MODULE_TAX',1,'1',NULL,0,NULL,'2017-02-07 18:56:12'),(6019,'MAIN_INFO_SOCIETE_COUNTRY',2,'1:FR:France','chaine',0,'','2017-02-15 17:18:22'),(6020,'MAIN_INFO_SOCIETE_NOM',2,'MySecondCompany','chaine',0,'','2017-02-15 17:18:22'),(6021,'MAIN_INFO_SOCIETE_STATE',2,'0','chaine',0,'','2017-02-15 17:18:22'),(6022,'MAIN_MONNAIE',2,'EUR','chaine',0,'','2017-02-15 17:18:22'),(6023,'MAIN_LANG_DEFAULT',2,'auto','chaine',0,'','2017-02-15 17:18:22'),(6032,'MAIN_MODULE_MULTICURRENCY',1,'1',NULL,0,NULL,'2017-02-15 17:29:59'),(6048,'SYSLOG_FACILITY',0,'LOG_USER','chaine',0,'','2017-02-15 22:37:01'),(6049,'SYSLOG_FIREPHP_INCLUDEPATH',0,'/home/ldestailleur/git/dolibarr_5.0/htdocs/includes/firephp/firephp-core/lib/','chaine',0,'','2017-02-15 22:37:01'),(6050,'SYSLOG_FILE',0,'DOL_DATA_ROOT/dolibarr.log','chaine',0,'','2017-02-15 22:37:01'),(6051,'SYSLOG_CHROMEPHP_INCLUDEPATH',0,'/home/ldestailleur/git/dolibarr_5.0/htdocs/includes/ccampbell/chromephp/','chaine',0,'','2017-02-15 22:37:01'),(6052,'SYSLOG_HANDLERS',0,'[\"mod_syslog_file\"]','chaine',0,'','2017-02-15 22:37:01'),(6092,'MAIN_SIZE_SHORTLIST_LIMIT',0,'3','chaine',0,'Max length for small lists (tabs)','2017-05-12 09:02:38'),(6099,'MAIN_MODULE_SKYPE',1,'1',NULL,0,NULL,'2017-05-12 09:03:51'),(6100,'MAIN_MODULE_GRAVATAR',1,'1',NULL,0,NULL,'2017-05-12 09:03:54'),(6102,'PRODUCT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/products','chaine',0,'','2017-08-27 13:29:07'),(6103,'CONTRACT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/contracts','chaine',0,'','2017-08-27 13:29:07'),(6104,'USERGROUP_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/usergroups','chaine',0,'','2017-08-27 13:29:07'),(6105,'USER_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/users','chaine',0,'','2017-08-27 13:29:07'),(6106,'MAIN_ENABLE_OVERWRITE_TRANSLATION',1,'1','chaine',0,'Enable overwrote of translation','2017-08-27 13:29:07'),(6377,'COMMANDE_SAPHIR_MASK',1,'{yy}{mm}{000}{ttt}','chaine',0,'','2017-09-06 07:56:25'),(6518,'GOOGLE_DUPLICATE_INTO_THIRDPARTIES',1,'1','chaine',0,'','2017-09-06 19:43:57'),(6519,'GOOGLE_DUPLICATE_INTO_CONTACTS',1,'0','chaine',0,'','2017-09-06 19:43:57'),(6520,'GOOGLE_TAG_PREFIX',1,'Dolibarr (Thirdparties)','chaine',0,'','2017-09-06 19:43:57'),(6521,'GOOGLE_TAG_PREFIX_CONTACTS',1,'Dolibarr (Contacts/Addresses)','chaine',0,'','2017-09-06 19:43:57'),(6522,'GOOGLE_ENABLE_AGENDA',1,'1','chaine',0,'','2017-09-06 19:44:12'),(6523,'GOOGLE_AGENDA_COLOR1',1,'1B887A','chaine',0,'','2017-09-06 19:44:12'),(6524,'GOOGLE_AGENDA_COLOR2',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6525,'GOOGLE_AGENDA_COLOR3',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6526,'GOOGLE_AGENDA_COLOR4',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6527,'GOOGLE_AGENDA_COLOR5',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6528,'GOOGLE_AGENDA_TIMEZONE',1,'Europe/Paris','chaine',0,'','2017-09-06 19:44:12'),(6529,'GOOGLE_AGENDA_NB',1,'5','chaine',0,'','2017-09-06 19:44:12'),(6543,'MAIN_SMS_DEBUG',0,'1','chaine',1,'This is to enable OVH SMS debug','2017-09-06 19:44:34'),(6562,'BLOCKEDLOG_ENTITY_FINGERPRINT',1,'b63e359ffca54d5c2bab869916eaf23d4a736703028ccbf77ce1167c5f830e7b','chaine',0,'Numeric Unique Fingerprint','2018-01-19 11:27:15'),(6564,'BLOCKEDLOG_DISABLE_NOT_ALLOWED_FOR_COUNTRY',1,'FR','chaine',0,'This is list of country code where the module may be mandatory','2018-01-19 11:27:15'),(6565,'MAIN_MODULE_BOOKMARK',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:27:34'),(6566,'MAIN_MODULE_ADHERENT',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:27:56'),(6567,'ADHERENT_ADDON_PDF',1,'standard','chaine',0,'Name of PDF model of member','2018-01-19 11:27:56'),(6636,'MAIN_MODULE_TICKET_MODELS',1,'1','chaine',0,NULL,'2019-06-05 09:15:29'),(6647,'MAIN_MODULE_SOCIALNETWORKS',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2019-06-05 09:16:49'),(6795,'TICKET_ADDON',1,'mod_ticket_simple','chaine',0,'','2019-09-26 12:07:59'),(6796,'PRODUCT_CODEPRODUCT_ADDON',1,'mod_codeproduct_elephant','chaine',0,'','2019-09-26 12:59:00'),(6800,'CASHDESK_ID_THIRDPARTY1',1,'7','chaine',0,'','2019-09-26 15:30:09'),(6801,'CASHDESK_ID_BANKACCOUNT_CASH1',1,'3','chaine',0,'','2019-09-26 15:30:09'),(6802,'CASHDESK_ID_BANKACCOUNT_CHEQUE1',1,'4','chaine',0,'','2019-09-26 15:30:09'),(6803,'CASHDESK_ID_BANKACCOUNT_CB1',1,'4','chaine',0,'','2019-09-26 15:30:09'),(6804,'CASHDESK_ID_BANKACCOUNT_PRE1',1,'4','chaine',0,'','2019-09-26 15:30:09'),(6805,'CASHDESK_ID_BANKACCOUNT_VIR1',1,'1','chaine',0,'','2019-09-26 15:30:09'),(6806,'CASHDESK_NO_DECREASE_STOCK1',1,'1','chaine',0,'','2019-09-26 15:30:09'),(6811,'FORCEPROJECT_ON_PROPOSAL',1,'1','chaine',0,'','2019-09-27 14:52:57'),(6813,'PROJECT_USE_OPPORTUNITIES',1,'1','chaine',0,'','2019-10-01 11:48:09'),(6814,'PACKTHEMEACTIVATEDTHEME',0,'modOwnTheme','chaine',0,'','2019-10-02 11:41:58'),(6815,'OWNTHEME_COL1',0,'#6a89cc','chaine',0,'','2019-10-02 11:41:58'),(6816,'OWNTHEME_COL2',0,'#60a3bc','chaine',0,'','2019-10-02 11:41:58'),(6817,'DOL_VERSION',0,'10.0.2','chaine',0,'Dolibarr version','2019-10-02 11:41:58'),(6823,'OWNTHEME_COL_BODY_BCKGRD',0,'#E9E9E9','chaine',0,'','2019-10-02 11:41:58'),(6824,'OWNTHEME_COL_LOGO_BCKGRD',0,'#474c80','chaine',0,'','2019-10-02 11:41:58'),(6825,'OWNTHEME_COL_TXT_MENU',0,'#b8c6e5','chaine',0,'','2019-10-02 11:41:58'),(6826,'OWNTHEME_COL_HEADER_BCKGRD',0,'#474c80','chaine',0,'','2019-10-02 11:41:58'),(6827,'OWNTHEME_CUSTOM_CSS',0,'0','yesno',0,'','2019-10-02 11:41:58'),(6828,'OWNTHEME_CUSTOM_JS',0,'0','yesno',0,'','2019-10-02 11:41:58'),(6829,'OWNTHEME_FIXED_MENU',0,'0','yesno',0,'','2019-10-02 11:41:58'),(6830,'OWNTHEME_D_HEADER_FONT_SIZE',0,'1.7rem','chaine',0,'','2019-10-02 11:41:58'),(6831,'OWNTHEME_S_HEADER_FONT_SIZE',0,'1.6rem','chaine',0,'','2019-10-02 11:41:58'),(6832,'OWNTHEME_D_VMENU_FONT_SIZE',0,'1.2rem','chaine',0,'','2019-10-02 11:41:58'),(6833,'OWNTHEME_S_VMENU_FONT_SIZE',0,'1.2rem','chaine',0,'','2019-10-02 11:41:58'),(6844,'MAIN_THEME',0,'eldy','chaine',0,'','2019-10-02 11:46:02'),(6845,'MAIN_MENU_STANDARD',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6846,'MAIN_MENUFRONT_STANDARD',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6847,'MAIN_MENU_SMARTPHONE',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6848,'MAIN_MENUFRONT_SMARTPHONE',0,'eldy_menu.php','chaine',0,'','2019-10-02 11:46:02'),(6851,'BECREATIVE_COL1',1,'#1e88e5','chaine',0,'','2019-10-02 11:47:10'),(6852,'BECREATIVE_COL2',1,'#1e88e5','chaine',0,'','2019-10-02 11:47:10'),(6853,'DOL_VERSION',1,'10.0.2','chaine',0,'Dolibarr version','2019-10-02 11:47:10'),(6859,'BECREATIVE_COL_BODY_BCKGRD',1,'#e6eaef','chaine',0,'','2019-10-02 11:47:10'),(6860,'BECREATIVE_COL_LOGO_BCKGRD',1,'#1e88e5','chaine',0,'','2019-10-02 11:47:10'),(6861,'BECREATIVE_COL_TXT_MENU',1,'#b8c6e5','chaine',0,'','2019-10-02 11:47:10'),(6862,'BECREATIVE_COL_HEADER_BCKGRD',1,'#26a69a','chaine',0,'','2019-10-02 11:47:10'),(6863,'BECREATIVE_CUSTOM_CSS',1,'0','yesno',0,'','2019-10-02 11:47:10'),(6864,'BECREATIVE_CUSTOM_JS',1,'0','yesno',0,'','2019-10-02 11:47:10'),(6865,'BECREATIVE_FIXED_MENU',1,'0','yesno',0,'','2019-10-02 11:47:10'),(6866,'BECREATIVE_D_HEADER_FONT_SIZE',1,'1.7rem','chaine',0,'','2019-10-02 11:47:10'),(6867,'BECREATIVE_S_HEADER_FONT_SIZE',1,'1.6rem','chaine',0,'','2019-10-02 11:47:10'),(6868,'BECREATIVE_D_VMENU_FONT_SIZE',1,'1.2rem','chaine',0,'','2019-10-02 11:47:10'),(6869,'BECREATIVE_S_VMENU_FONT_SIZE',1,'1.2rem','chaine',0,'','2019-10-02 11:47:10'),(6881,'MAIN_MENU_STANDARD',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6882,'MAIN_MENUFRONT_STANDARD',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6883,'MAIN_MENU_SMARTPHONE',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6884,'MAIN_MENUFRONT_SMARTPHONE',1,'eldy_menu.php','chaine',0,'','2019-10-02 11:48:49'),(6885,'ACCOUNTING_ACCOUNT_CUSTOMER',1,'411','chaine',0,'','2019-10-04 08:15:44'),(6886,'ACCOUNTING_ACCOUNT_SUPPLIER',1,'401','chaine',0,'','2019-10-04 08:15:44'),(6887,'SALARIES_ACCOUNTING_ACCOUNT_PAYMENT',1,'421','chaine',0,'','2019-10-04 08:15:44'),(6888,'ACCOUNTING_PRODUCT_BUY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6889,'ACCOUNTING_PRODUCT_SOLD_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6890,'ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6891,'ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6892,'ACCOUNTING_SERVICE_BUY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6893,'ACCOUNTING_SERVICE_SOLD_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6894,'ACCOUNTING_VAT_BUY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6895,'ACCOUNTING_VAT_SOLD_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6896,'ACCOUNTING_VAT_PAY_ACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6897,'ACCOUNTING_ACCOUNT_SUSPENSE',1,'471','chaine',0,'','2019-10-04 08:15:44'),(6898,'ACCOUNTING_ACCOUNT_TRANSFER_CASH',1,'58','chaine',0,'','2019-10-04 08:15:44'),(6899,'DONATION_ACCOUNTINGACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6900,'ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6901,'LOAN_ACCOUNTING_ACCOUNT_CAPITAL',1,'164','chaine',0,'','2019-10-04 08:15:44'),(6902,'LOAN_ACCOUNTING_ACCOUNT_INTEREST',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6903,'LOAN_ACCOUNTING_ACCOUNT_INSURANCE',1,'-1','chaine',0,'','2019-10-04 08:15:44'),(6912,'TICKET_ENABLE_PUBLIC_INTERFACE',1,'1','chaine',0,'','2019-10-04 11:44:33'),(6934,'TICKET_NOTIFICATION_EMAIL_FROM',1,'fff','chaine',0,'','2019-10-04 12:03:51'),(6935,'TICKET_NOTIFICATION_EMAIL_TO',1,'ff','chaine',0,'','2019-10-04 12:03:51'),(6936,'TICKET_MESSAGE_MAIL_INTRO',1,'Hello,
\r\nA new response was sent on a ticket that you contact. Here is the message:\"\"','chaine',0,'','2019-10-04 12:03:51'),(6937,'TICKET_MESSAGE_MAIL_SIGNATURE',1,'

Sincerely,

\r\n\r\n

--\"\"

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

Sincerely,

\r\n\r\n

--\"\"

\r\n','chaine',0,'','2019-10-04 12:03:51'),(7027,'USER_PASSWORD_GENERATED',1,'Perso','chaine',0,'','2019-10-07 10:52:46'),(7028,'USER_PASSWORD_PATTERN',1,'12;1;0;1;0;1','chaine',0,'','2019-10-07 10:57:03'),(7034,'BOM_ADDON',1,'mod_bom_standard','chaine',0,'Name of numbering rules of BOM','2019-10-08 18:49:41'),(7035,'BOM_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/boms','chaine',0,NULL,'2019-10-08 18:49:41'),(7036,'MAIN_MODULE_GEOIPMAXMIND',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2019-10-08 18:51:54'),(7037,'MAIN_MODULE_DAV',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2019-10-08 18:54:07'),(7122,'BOM_ADDON_PDF',1,'generic_bom_odt','chaine',0,'','2019-11-28 14:00:58'),(7195,'MAIN_AGENDA_ACTIONAUTO_MO_VALIDATE',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7196,'MAIN_AGENDA_ACTIONAUTO_MO_PRODUCED',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7197,'MAIN_AGENDA_ACTIONAUTO_MO_DELETE',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7198,'MAIN_AGENDA_ACTIONAUTO_MO_CANCEL',1,'1','chaine',0,'','2019-11-29 08:44:37'),(7201,'TICKET_PUBLIC_INTERFACE_TOPIC',1,'MyBigCompany public interface for Ticket','chaine',0,'','2019-11-29 08:49:36'),(7202,'TICKET_PUBLIC_TEXT_HOME',1,'You can create a support ticket or view existing from its identifier tracking ticket.','chaine',0,'','2019-11-29 08:49:36'),(7203,'TICKET_PUBLIC_TEXT_HELP_MESSAGE',1,'Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request.','chaine',0,'','2019-11-29 08:49:36'),(7204,'TICKET_MESSAGE_MAIL_NEW',1,'TicketMessageMailNewText','chaine',0,'','2019-11-29 08:49:36'),(7220,'MRP_MO_ADDON',1,'mod_mo_standard','chaine',0,'Name of numbering rules of MO','2019-11-29 08:57:42'),(7221,'MRP_MO_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/mrps','chaine',0,NULL,'2019-11-29 08:57:42'),(7222,'MRP_MO_ADDON_PDF',1,'generic_mo_odt','chaine',0,'','2019-11-29 08:57:47'),(7254,'MAIN_INFO_OPENINGHOURS_MONDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7255,'MAIN_INFO_OPENINGHOURS_TUESDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7256,'MAIN_INFO_OPENINGHOURS_WEDNESDAY',1,'8-13','chaine',0,'','2019-12-19 11:14:21'),(7257,'MAIN_INFO_OPENINGHOURS_THURSDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7258,'MAIN_INFO_OPENINGHOURS_FRIDAY',1,'8-12 13-18','chaine',0,'','2019-12-19 11:14:21'),(7264,'MAIN_INFO_ACCOUNTANT_NAME',1,'Bob Bookkeeper','chaine',0,'','2019-12-19 11:14:54'),(7265,'MAIN_INFO_ACCOUNTANT_TOWN',1,'Berlin','chaine',0,'','2019-12-19 11:14:54'),(7266,'MAIN_INFO_ACCOUNTANT_STATE',1,'0','chaine',0,'','2019-12-19 11:14:54'),(7267,'MAIN_INFO_ACCOUNTANT_COUNTRY',1,'5','chaine',0,'','2019-12-19 11:14:54'),(7268,'MAIN_INFO_ACCOUNTANT_MAIL',1,'mybookkeeper@example.com','chaine',0,'','2019-12-19 11:14:54'),(7313,'MODULEBUILDER_ASCIIDOCTOR',1,'asciidoctor','chaine',0,'','2019-12-20 10:57:21'),(7314,'MODULEBUILDER_ASCIIDOCTORPDF',1,'asciidoctor-pdf','chaine',0,'','2019-12-20 10:57:21'),(7337,'EXTERNAL_RSS_TITLE_1',1,'Dolibarr.org News','chaine',0,'','2019-12-20 12:10:38'),(7338,'EXTERNAL_RSS_URLRSS_1',1,'https://www.dolibarr.org/rss','chaine',0,'','2019-12-20 12:10:38'),(7339,'EXPENSEREPORT_ADDON',1,'mod_expensereport_jade','chaine',0,'','2019-12-20 16:33:46'),(7378,'COMPANY_USE_SEARCH_TO_SELECT',1,'0','chaine',0,'','2019-12-21 15:54:22'),(7420,'CASHDESK_SERVICES',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7421,'TAKEPOS_ROOT_CATEGORY_ID',1,'31','chaine',0,'','2019-12-23 12:15:06'),(7422,'TAKEPOSCONNECTOR',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7423,'TAKEPOS_BAR_RESTAURANT',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7424,'TAKEPOS_TICKET_VAT_GROUPPED',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7425,'TAKEPOS_AUTO_PRINT_TICKETS',1,'0','int',0,'','2019-12-23 12:15:06'),(7426,'TAKEPOS_NUMPAD',1,'0','chaine',0,'','2019-12-23 12:15:06'),(7427,'TAKEPOS_NUM_TERMINALS',1,'1','chaine',0,'','2019-12-23 12:15:06'),(7428,'TAKEPOS_DIRECT_PAYMENT',1,'0','int',0,'','2019-12-23 12:15:06'),(7429,'TAKEPOS_CUSTOM_RECEIPT',1,'0','int',0,'','2019-12-23 12:15:06'),(7430,'TAKEPOS_EMAIL_TEMPLATE_INVOICE',1,'-1','chaine',0,'','2019-12-23 12:15:06'),(7452,'MEMBER_ENABLE_PUBLIC',1,'1','chaine',0,'','2020-01-01 10:31:46'),(7453,'MEMBER_NEWFORM_AMOUNT',1,'20','chaine',0,'','2020-01-01 10:31:46'),(7454,'MEMBER_NEWFORM_EDITAMOUNT',1,'0','chaine',0,'','2020-01-01 10:31:46'),(7455,'MEMBER_NEWFORM_PAYONLINE',1,'all','chaine',0,'','2020-01-01 10:31:46'),(7456,'MEMBER_NEWFORM_FORCETYPE',1,'1','chaine',0,'','2020-01-01 10:31:46'),(7470,'STRIPE_TEST_PUBLISHABLE_KEY',1,'pk_test_123456789','chaine',0,'','2020-01-01 11:43:44'),(7471,'STRIPE_TEST_SECRET_KEY',1,'sk_test_123456','chaine',0,'','2020-01-01 11:43:44'),(7472,'STRIPE_BANK_ACCOUNT_FOR_PAYMENTS',1,'4','chaine',0,'','2020-01-01 11:43:44'),(7473,'STRIPE_USER_ACCOUNT_FOR_ACTIONS',1,'1','chaine',0,'','2020-01-01 11:43:44'),(7489,'CAPTURESERVER_SECURITY_KEY',1,'securitykey123','chaine',0,'','2020-01-01 12:00:49'),(8136,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_DELETE',1,'1','chaine',0,'','2020-01-02 19:56:28'),(8190,'ACCOUNTING_PRODUCT_MODE',1,'ACCOUNTANCY_SELL_EXPORT','chaine',0,'','2020-01-06 01:23:30'),(8191,'MAIN_ENABLE_DEFAULT_VALUES',1,'1','chaine',0,'','2020-01-06 16:09:52'),(8210,'CABINETMED_RHEUMATOLOGY_ON',1,'0','texte',0,'','2020-01-06 16:51:43'),(8213,'MAIN_SEARCHFORM_SOCIETE',1,'1','texte',0,'','2020-01-06 16:51:43'),(8214,'CABINETMED_BANK_PATIENT_REQUIRED',1,'0','texte',0,'','2020-01-06 16:51:43'),(8215,'DIAGNOSTIC_IS_NOT_MANDATORY',1,'1','texte',0,'','2020-01-06 16:51:43'),(8216,'USER_ADDON_PDF_ODT',1,'generic_user_odt','chaine',0,'','2020-01-07 13:45:19'),(8217,'USERGROUP_ADDON_PDF_ODT',1,'generic_usergroup_odt','chaine',0,'','2020-01-07 13:45:23'),(8230,'MAIN_MODULE_EMAILCOLLECTOR',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-12 20:13:55'),(8232,'MAIN_MODULE_SUPPLIERPROPOSAL',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-13 14:37:09'),(8233,'MAIN_MODULE_EXPEDITION',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-13 14:38:20'),(8252,'SYSTEMTOOLS_MYSQLDUMP',1,'/usr/bin/mysqldump','chaine',0,'','2020-01-15 15:42:41'),(8259,'ACCOUNTING_REEXPORT',1,'1','yesno',0,'','2020-01-17 13:42:56'),(8291,'PRODUIT_MULTIPRICES_LIMIT',1,'5','chaine',0,'','2020-01-17 14:21:46'),(8293,'PRODUIT_CUSTOMER_PRICES_BY_QTY',1,'0','chaine',0,'','2020-01-17 14:21:46'),(8303,'PRODUCT_PRICE_UNIQ',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8304,'PRODUIT_MULTIPRICES',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8305,'PRODUIT_CUSTOMER_PRICES',1,'1','chaine',0,'','2020-01-17 14:25:30'),(8306,'PRODUIT_SOUSPRODUITS',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8307,'PRODUIT_DESC_IN_FORM',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8308,'PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8309,'PRODUIT_USE_SEARCH_TO_SELECT',1,'1','chaine',0,'','2020-01-17 14:25:30'),(8310,'PRODUIT_FOURN_TEXTS',1,'0','chaine',0,'','2020-01-17 14:25:30'),(8313,'MAIN_MODULE_FCKEDITOR',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-01-18 17:13:27'),(8314,'FCKEDITOR_ENABLE_TICKET',1,'1','chaine',0,'','2020-01-18 19:39:54'),(8321,'FCKEDITOR_SKIN',1,'moono-lisa','chaine',0,'','2020-01-18 19:41:15'),(8322,'FCKEDITOR_TEST',1,'Test < aaa
\r\n
\r\n\"\"','chaine',0,'','2020-01-18 19:41:15'),(8486,'MAIN_MULTILANGS',1,'1','chaine',0,'','2020-01-21 09:40:00'),(8491,'MAIN_DISABLE_JAVASCRIPT',1,'0','chaine',0,'','2020-01-21 09:40:00'),(8492,'MAIN_BUTTON_HIDE_UNAUTHORIZED',1,'0','chaine',0,'','2020-01-21 09:40:00'),(8496,'MAIN_SHOW_LOGO',1,'1','chaine',0,'','2020-01-21 09:40:00'),(8498,'MAIN_HELPCENTER_DISABLELINK',0,'0','chaine',0,'','2020-01-21 09:40:00'),(8501,'MAIN_BUGTRACK_ENABLELINK',1,'0','chaine',0,'','2020-01-21 09:40:00'),(8554,'MAIN_INFO_SOCIETE_FACEBOOK_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8555,'MAIN_INFO_SOCIETE_TWITTER_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8556,'MAIN_INFO_SOCIETE_LINKEDIN_URL',1,'https://www.linkedin.com/company/9400559/admin/','chaine',0,'','2020-06-12 17:24:42'),(8557,'MAIN_INFO_SOCIETE_INSTAGRAM_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8558,'MAIN_INFO_SOCIETE_YOUTUBE_URL',1,'DolibarrERPCRM','chaine',0,'','2020-06-12 17:24:42'),(8559,'MAIN_INFO_SOCIETE_GITHUB_URL',1,'dolibarr','chaine',0,'','2020-06-12 17:24:42'),(8577,'PRODUCT_PRICE_BASE_TYPE',0,'HT','string',0,NULL,'2020-12-10 12:24:38'),(8612,'MAIN_UPLOAD_DOC',1,'50000','chaine',0,'','2020-12-10 12:26:31'),(8613,'MAIN_UMASK',1,'0664','chaine',0,'','2020-12-10 12:26:31'),(8614,'MAIN_ANTIVIRUS_PARAM',1,'--fdpass','chaine',0,'','2020-12-10 12:26:31'),(8619,'WEBSITE_EDITINLINE',1,'0','chaine',0,'','2020-12-10 12:27:05'),(8633,'MAIN_MODULE_RECEPTION',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-12-10 12:30:13'),(8634,'RECEPTION_ADDON_PDF',1,'squille','chaine',0,'Nom du gestionnaire de generation des bons receptions en PDF','2020-12-10 12:30:13'),(8635,'RECEPTION_ADDON_NUMBER',1,'mod_reception_beryl','chaine',0,'Name for numbering manager for receptions','2020-12-10 12:30:13'),(8636,'RECEPTION_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/receptions','chaine',0,NULL,'2020-12-10 12:30:13'),(8637,'MAIN_SUBMODULE_RECEPTION',1,'1','chaine',0,'Enable receptions','2020-12-10 12:30:13'),(8638,'MAIN_MODULE_PAYMENTBYBANKTRANSFER',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-12-10 12:30:17'),(8640,'MAIN_MODULE_MARGIN_TABS_0',1,'product:+margin:Margins:margins:$user->rights->margins->liretous:/margin/tabs/productMargins.php?id=__ID__','chaine',0,NULL,'2020-12-10 12:30:20'),(8641,'MAIN_MODULE_MARGIN_TABS_1',1,'thirdparty:+margin:Margins:margins:empty($user->socid) && $user->rights->margins->liretous && ($object->client > 0):/margin/tabs/thirdpartyMargins.php?socid=__ID__','chaine',0,NULL,'2020-12-10 12:30:20'),(8644,'MAIN_MODULE_INCOTERM',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2020-12-10 12:31:36'),(8645,'INCOTERM_ACTIVATE',1,'','chaine',0,'Description de INCOTERM_ACTIVATE','2020-12-10 12:31:36'),(8715,'SYSLOG_LEVEL',0,'5','chaine',0,'','2021-04-15 10:34:05'),(8716,'MAIN_SECURITY_HASH_ALGO',1,'password_hash','chaine',1,'','2021-04-15 10:38:33'),(8717,'MAIN_INFO_SOCIETE_COUNTRY',1,'117:IN:India','chaine',0,'','2021-04-15 10:46:30'),(8718,'MAIN_INFO_SOCIETE_NOM',1,'MyBigCompany','chaine',0,'','2021-04-15 10:46:30'),(8719,'MAIN_INFO_SOCIETE_ADDRESS',1,'21 Jump street.','chaine',0,'','2021-04-15 10:46:30'),(8720,'MAIN_INFO_SOCIETE_TOWN',1,'MyTown','chaine',0,'','2021-04-15 10:46:30'),(8721,'MAIN_INFO_SOCIETE_ZIP',1,'75500','chaine',0,'','2021-04-15 10:46:30'),(8722,'MAIN_MONNAIE',1,'EUR','chaine',0,'','2021-04-15 10:46:30'),(8723,'MAIN_INFO_SOCIETE_TEL',1,'09123123','chaine',0,'','2021-04-15 10:46:30'),(8724,'MAIN_INFO_SOCIETE_FAX',1,'09123124','chaine',0,'','2021-04-15 10:46:30'),(8725,'MAIN_INFO_SOCIETE_MAIL',1,'myemail@mybigcompany.com','chaine',0,'','2021-04-15 10:46:30'),(8726,'MAIN_INFO_SOCIETE_WEB',1,'https://www.dolibarr.org','chaine',0,'','2021-04-15 10:46:30'),(8727,'MAIN_INFO_SOCIETE_NOTE',1,'This is note about my company','chaine',0,'','2021-04-15 10:46:30'),(8728,'MAIN_INFO_SOCIETE_LOGO_SQUARRED',1,'mybigcompany_squarred.png','chaine',0,'','2021-04-15 10:46:30'),(8729,'MAIN_INFO_SOCIETE_LOGO_SQUARRED_SMALL',1,'mybigcompany_squarred_small.png','chaine',0,'','2021-04-15 10:46:30'),(8730,'MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI',1,'mybigcompany_squarred_mini.png','chaine',0,'','2021-04-15 10:46:30'),(8731,'MAIN_INFO_SOCIETE_MANAGERS',1,'Zack Zeceo','chaine',0,'','2021-04-15 10:46:30'),(8732,'MAIN_INFO_GDPR',1,'Zack Zeceo','chaine',0,'','2021-04-15 10:46:30'),(8733,'MAIN_INFO_CAPITAL',1,'10000','chaine',0,'','2021-04-15 10:46:30'),(8734,'MAIN_INFO_SOCIETE_FORME_JURIDIQUE',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8735,'MAIN_INFO_SIREN',1,'123456','chaine',0,'','2021-04-15 10:46:30'),(8736,'MAIN_INFO_SIRET',1,'ABC-DEF','chaine',0,'','2021-04-15 10:46:30'),(8737,'MAIN_INFO_APE',1,'15E-45-8D','chaine',0,'','2021-04-15 10:46:30'),(8738,'MAIN_INFO_TVAINTRA',1,'FR12345678','chaine',0,'','2021-04-15 10:46:30'),(8739,'MAIN_INFO_SOCIETE_OBJECT',1,'A company demo to show how Dolibarr ERP CRM is wonderfull','chaine',0,'','2021-04-15 10:46:30'),(8740,'SOCIETE_FISCAL_MONTH_START',1,'4','chaine',0,'','2021-04-15 10:46:30'),(8741,'FACTURE_TVAOPTION',1,'1','chaine',0,'','2021-04-15 10:46:30'),(8742,'FACTURE_LOCAL_TAX1_OPTION',1,'localtax1on','chaine',0,'','2021-04-15 10:46:30'),(8743,'FACTURE_LOCAL_TAX2_OPTION',1,'localtax2on','chaine',0,'','2021-04-15 10:46:30'),(8744,'MAIN_INFO_VALUE_LOCALTAX1',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8745,'MAIN_INFO_LOCALTAX_CALC1',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8746,'MAIN_INFO_VALUE_LOCALTAX2',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8747,'MAIN_INFO_LOCALTAX_CALC2',1,'0','chaine',0,'','2021-04-15 10:46:30'),(8759,'MAIN_LOGIN_BACKGROUND',1,'background_dolibarr.jpg','chaine',0,'','2021-04-15 10:54:37'),(8760,'MAIN_LANG_DEFAULT',1,'auto','chaine',0,'','2021-04-15 10:56:30'),(8762,'MAIN_THEME',1,'eldy','chaine',0,'','2021-04-15 10:56:30'),(8763,'THEME_ELDY_USE_HOVER',1,'237,244,251','chaine',0,'','2021-04-15 10:56:30'),(8764,'MAIN_SIZE_LISTE_LIMIT',1,'25','chaine',0,'','2021-04-15 10:56:30'),(8765,'MAIN_SIZE_SHORTLIST_LIMIT',1,'3','chaine',0,'','2021-04-15 10:56:30'),(8766,'MAIN_START_WEEK',1,'1','chaine',0,'','2021-04-15 10:56:30'),(8767,'MAIN_DEFAULT_WORKING_DAYS',1,'1-5','chaine',0,'','2021-04-15 10:56:30'),(8768,'MAIN_DEFAULT_WORKING_HOURS',1,'9-18','chaine',0,'','2021-04-15 10:56:30'),(8769,'MAIN_FIRSTNAME_NAME_POSITION',1,'0','chaine',0,'','2021-04-15 10:56:30'),(8770,'MAIN_HOME',1,'__(NoteSomeFeaturesAreDisabled)__
\r\n__(SomeTranslationAreUncomplete)__','chaine',0,'','2021-04-15 10:56:30'),(8771,'MAIN_FEATURES_LEVEL',0,'0','chaine',1,'Level of features to show (0=stable only, 1=stable+experimental, 2=stable+experimental+development','2021-04-15 11:46:30'),(8877,'AGENDA_REMINDER_BROWSER',1,'1','chaine',0,'','2021-04-15 13:32:29'),(9008,'MAIN_MODULE_KNOWLEDGEMANAGEMENT',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 13:39:27'),(9009,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_TRIGGERS',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9010,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_LOGIN',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9011,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9012,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_MENUS',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9013,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_TPL',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9014,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_BARCODE',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9015,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_MODELS',1,'1','chaine',0,NULL,'2022-02-07 13:39:27'),(9016,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_PRINTING',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9017,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_THEME',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9018,'MAIN_MODULE_KNOWLEDGEMANAGEMENT_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-02-07 13:39:27'),(9021,'WEBSITE_SUBCONTAINERSINLINE',1,'1','chaine',0,'','2022-02-07 13:57:11'),(9022,'PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT',1,'1','chaine',0,'','2022-02-07 14:17:28'),(9023,'PAYMENTBYBANKTRANSFER_USER',1,'13','chaine',0,'','2022-02-07 14:17:28'),(9025,'MAIN_MODULE_BLOCKEDLOG',1,'1','string',0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-02-07 14:32:50'),(9026,'MAIN_IHM_PARAMS_REV',1,'16','chaine',0,'','2022-02-07 14:32:50'),(9141,'MAIN_AGENDA_ACTIONAUTO_COMPANY_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9142,'MAIN_AGENDA_ACTIONAUTO_COMPANY_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9143,'MAIN_AGENDA_ACTIONAUTO_COMPANY_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9144,'MAIN_AGENDA_ACTIONAUTO_COMPANY_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9145,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLOSE_SIGNED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9146,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLOSE_REFUSED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9147,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLASSIFY_BILLED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9148,'MAIN_AGENDA_ACTIONAUTO_PROPAL_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9149,'MAIN_AGENDA_ACTIONAUTO_PROPAL_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9150,'MAIN_AGENDA_ACTIONAUTO_PROPAL_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9151,'MAIN_AGENDA_ACTIONAUTO_ORDER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9152,'MAIN_AGENDA_ACTIONAUTO_ORDER_CLASSIFY_BILLED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9153,'MAIN_AGENDA_ACTIONAUTO_ORDER_CLOSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9154,'MAIN_AGENDA_ACTIONAUTO_ORDER_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9155,'MAIN_AGENDA_ACTIONAUTO_ORDER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9156,'MAIN_AGENDA_ACTIONAUTO_ORDER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9157,'MAIN_AGENDA_ACTIONAUTO_BILL_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9158,'MAIN_AGENDA_ACTIONAUTO_BILL_PAYED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9159,'MAIN_AGENDA_ACTIONAUTO_BILL_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9160,'MAIN_AGENDA_ACTIONAUTO_BILL_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9161,'MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9162,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9163,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9164,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9165,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_CLOSE_SIGNED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9166,'MAIN_AGENDA_ACTIONAUTO_PROPOSAL_SUPPLIER_CLOSE_REFUSED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9167,'MAIN_AGENDA_ACTIONAUTO_BILL_UNVALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9168,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9169,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9170,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_APPROVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9171,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_SUBMIT',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9172,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_RECEIVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9173,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_REFUSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9174,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9175,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CLASSIFY_BILLED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9176,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9177,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9178,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9179,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_UNVALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9180,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_PAYED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9181,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_CANCELED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9182,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9183,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9184,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9185,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9186,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9187,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9188,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_REOPEN',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9189,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9190,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9191,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9192,'MAIN_AGENDA_ACTIONAUTO_MEMBER_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9193,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9194,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9195,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9196,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9197,'MAIN_AGENDA_ACTIONAUTO_MEMBER_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9198,'MAIN_AGENDA_ACTIONAUTO_MEMBER_RESILIATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9199,'MAIN_AGENDA_ACTIONAUTO_MEMBER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9200,'MAIN_AGENDA_ACTIONAUTO_MEMBER_EXCLUDE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9201,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9202,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9203,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9204,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9205,'MAIN_AGENDA_ACTIONAUTO_TASK_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9206,'MAIN_AGENDA_ACTIONAUTO_TASK_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9207,'MAIN_AGENDA_ACTIONAUTO_TASK_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9208,'MAIN_AGENDA_ACTIONAUTO_CONTACT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9209,'MAIN_AGENDA_ACTIONAUTO_CONTACT_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9210,'MAIN_AGENDA_ACTIONAUTO_CONTACT_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9211,'MAIN_AGENDA_ACTIONAUTO_CONTACT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9212,'MAIN_AGENDA_ACTIONAUTO_PROJECT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9213,'MAIN_AGENDA_ACTIONAUTO_PROJECT_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9214,'MAIN_AGENDA_ACTIONAUTO_PROJECT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9215,'MAIN_AGENDA_ACTIONAUTO_TICKET_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9216,'MAIN_AGENDA_ACTIONAUTO_TICKET_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9217,'MAIN_AGENDA_ACTIONAUTO_TICKET_ASSIGNED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9218,'MAIN_AGENDA_ACTIONAUTO_TICKET_CLOSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9219,'MAIN_AGENDA_ACTIONAUTO_TICKET_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9220,'MAIN_AGENDA_ACTIONAUTO_TICKET_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9221,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9222,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9223,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_APPROVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9224,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9225,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_PAID',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9226,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9227,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9228,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_APPROVE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9229,'MAIN_AGENDA_ACTIONAUTO_USER_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9230,'MAIN_AGENDA_ACTIONAUTO_USER_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9231,'MAIN_AGENDA_ACTIONAUTO_USER_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9232,'MAIN_AGENDA_ACTIONAUTO_USER_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9233,'MAIN_AGENDA_ACTIONAUTO_USER_NEW_PASSWORD',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9234,'MAIN_AGENDA_ACTIONAUTO_USER_ENABLEDISABLE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9235,'MAIN_AGENDA_ACTIONAUTO_BOM_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9236,'MAIN_AGENDA_ACTIONAUTO_BOM_UNVALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9237,'MAIN_AGENDA_ACTIONAUTO_BOM_CLOSE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9238,'MAIN_AGENDA_ACTIONAUTO_BOM_REOPEN',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9239,'MAIN_AGENDA_ACTIONAUTO_BOM_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9240,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_VALIDATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9241,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_PRODUCED',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9242,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9243,'MAIN_AGENDA_ACTIONAUTO_MRP_MO_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9244,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9245,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_CANCEL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9246,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9247,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9248,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9249,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9250,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTJOBPOSITION_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9251,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_CREATE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9252,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_MODIFY',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9253,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_SENTBYMAIL',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9254,'MAIN_AGENDA_ACTIONAUTO_RECRUITMENTCANDIDATURE_DELETE',1,'1','chaine',0,'','2022-02-07 14:37:16'),(9293,'RECRUITMENT_RECRUITMENTJOBPOSITION_ADDON',1,'mod_recruitmentjobposition_standard','chaine',0,'Name of manager to generate recruitment job position ref number','2022-07-04 01:12:19'),(9294,'RECRUITMENT_RECRUITMENTCANDIDATURE_ADDON',1,'mod_recruitmentcandidature_standard','chaine',0,'Name of manager to generate recruitment candidature ref number','2022-07-04 01:12:19'),(9451,'MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT',1,'1000','int',0,NULL,'2022-12-11 21:23:35'),(9452,'MAIN_MODULE_ACCOUNTING',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9453,'MAIN_MODULE_AGENDA',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9454,'MAIN_MODULE_BOM',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9455,'MAIN_MODULE_BANQUE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9456,'MAIN_MODULE_BARCODE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9457,'MAIN_MODULE_CRON',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9458,'MAIN_MODULE_COMMANDE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9459,'MAIN_MODULE_DON',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9460,'MAIN_MODULE_ECM',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9461,'MAIN_MODULE_EXPENSEREPORT',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9462,'MAIN_MODULE_FACTURE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9463,'MAIN_MODULE_FOURNISSEUR',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:42'),(9464,'MAIN_MODULE_HOLIDAY',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9465,'MAIN_MODULE_MARGIN',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9468,'MAIN_MODULE_MRP',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9469,'MAIN_MODULE_MRP_TRIGGERS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9470,'MAIN_MODULE_MRP_LOGIN',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9471,'MAIN_MODULE_MRP_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9472,'MAIN_MODULE_MRP_MENUS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9473,'MAIN_MODULE_MRP_TPL',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9474,'MAIN_MODULE_MRP_BARCODE',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9475,'MAIN_MODULE_MRP_MODELS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9476,'MAIN_MODULE_MRP_THEME',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9477,'MAIN_MODULE_MRP_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9478,'MAIN_MODULE_OPENSURVEY',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9479,'MAIN_MODULE_PRINTING',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9480,'MAIN_MODULE_RECRUITMENT',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9481,'MAIN_MODULE_RECRUITMENT_TRIGGERS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9482,'MAIN_MODULE_RECRUITMENT_LOGIN',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9483,'MAIN_MODULE_RECRUITMENT_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9484,'MAIN_MODULE_RECRUITMENT_MENUS',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9485,'MAIN_MODULE_RECRUITMENT_TPL',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9486,'MAIN_MODULE_RECRUITMENT_BARCODE',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9487,'MAIN_MODULE_RECRUITMENT_MODELS',1,'1','chaine',0,NULL,'2022-12-11 21:23:43'),(9488,'MAIN_MODULE_RECRUITMENT_THEME',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9489,'MAIN_MODULE_RECRUITMENT_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-12-11 21:23:43'),(9490,'MAIN_MODULE_RESOURCE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9491,'MAIN_MODULE_SALARIES',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9492,'MAIN_MODULE_SERVICE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9493,'MAIN_MODULE_SYSLOG',0,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9494,'MAIN_MODULE_SOCIETE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9495,'MAIN_MODULE_STRIPE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:43'),(9496,'MAIN_MODULE_TICKET',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:44'),(9497,'MAIN_MODULE_TICKET_TABS_0',1,'thirdparty:+ticket:Tickets:ticket:$user->rights->ticket->read:/ticket/list.php?socid=__ID__','chaine',0,NULL,'2022-12-11 21:23:44'),(9498,'MAIN_MODULE_TICKET_TRIGGERS',1,'1','chaine',0,NULL,'2022-12-11 21:23:44'),(9499,'TAKEPOS_PRINT_METHOD',1,'browser','chaine',0,'','2022-12-11 21:23:44'),(9500,'MAIN_MODULE_TAKEPOS',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:44'),(9501,'MAIN_MODULE_TAKEPOS_TRIGGERS',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9502,'MAIN_MODULE_TAKEPOS_LOGIN',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9503,'MAIN_MODULE_TAKEPOS_SUBSTITUTIONS',1,'1','chaine',0,NULL,'2022-12-11 21:23:44'),(9504,'MAIN_MODULE_TAKEPOS_MENUS',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9505,'MAIN_MODULE_TAKEPOS_THEME',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9506,'MAIN_MODULE_TAKEPOS_TPL',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9507,'MAIN_MODULE_TAKEPOS_BARCODE',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9508,'MAIN_MODULE_TAKEPOS_MODELS',1,'0','chaine',0,NULL,'2022-12-11 21:23:44'),(9509,'MAIN_MODULE_USER',0,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:44'),(9510,'MAIN_MODULE_VARIANTS',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:44'),(9511,'MAIN_MODULE_WEBSITE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\",\"lastactivationversion\":\"dolibarr\"}','2022-12-11 21:23:44'),(9512,'MAIN_VERSION_LAST_UPGRADE',0,'17.0.0-beta','chaine',0,'Dolibarr version for last upgrade','2022-12-11 21:23:48'),(9514,'MAIN_FIRST_PING_OK_DATE',1,'20221211212350','chaine',0,'','2022-12-11 21:23:50'),(9515,'MAIN_FIRST_PING_OK_ID',1,'disabled','chaine',0,'','2022-12-11 21:23:50'); /*!40000 ALTER TABLE `llx_const` ENABLE KEYS */; UNLOCK TABLES; @@ -4998,9 +5039,9 @@ DROP TABLE IF EXISTS `llx_contrat`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_contrat` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(50) COLLATE 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, + `ref` varchar(50) DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_supplier` varchar(50) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, @@ -5016,14 +5057,14 @@ 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 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, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, + `ref_customer` varchar(50) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_contrat_ref` (`ref`,`entity`), KEY `idx_contrat_fk_soc` (`fk_soc`), @@ -5054,7 +5095,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_contrat_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -5082,8 +5123,8 @@ CREATE TABLE `llx_contratdet` ( `fk_contrat` int(11) NOT NULL, `fk_product` int(11) DEFAULT NULL, `statut` smallint(6) DEFAULT 0, - `label` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` text DEFAULT NULL, + `description` text DEFAULT NULL, `fk_remise_except` int(11) DEFAULT NULL, `date_commande` datetime DEFAULT NULL, `date_ouverture_prevue` datetime DEFAULT NULL, @@ -5091,11 +5132,11 @@ CREATE TABLE `llx_contratdet` ( `date_fin_validite` datetime DEFAULT NULL, `date_cloture` datetime DEFAULT NULL, `tva_tx` double(6,3) DEFAULT 0.000, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double NOT NULL, `remise_percent` double DEFAULT 0, `subprice` double(24,8) DEFAULT 0.00000000, @@ -5114,10 +5155,10 @@ CREATE TABLE `llx_contratdet` ( `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 utf8mb3_unicode_ci DEFAULT NULL, + `commentaire` text DEFAULT NULL, `fk_unit` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -5141,7 +5182,7 @@ CREATE TABLE `llx_contratdet` ( LOCK TABLES `llx_contratdet` WRITE; /*!40000 ALTER TABLE `llx_contratdet` DISABLE KEYS */; -INSERT INTO `llx_contratdet` VALUES (2,'2012-07-10 16:14:14',2,NULL,0,'','Abonnement annuel assurance',NULL,NULL,'2012-07-10 00:00:00',NULL,'2013-07-10 00:00:00',NULL,1.000,'',0.000,'',0.000,'',1,0,10.00000000,10,0,10.00000000,0.10000000,0.00000000,0.00000000,10.10000000,1,0,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); +INSERT INTO `llx_contratdet` VALUES (2,'2022-12-11 21:23:42',2,NULL,0,'','Abonnement annuel assurance',NULL,NULL,'2012-07-10 00:00:00',NULL,'2013-07-10 00:00:00',NULL,1.000,'',0.000,'',0.000,'',1,0,10.00000000,10,0,10.00000000,0.10000000,0.00000000,0.00000000,10.10000000,1,0,1,NULL,0.00000000,0,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(3,'2022-12-11 21:23:42',2,3,5,'','gdfg',NULL,NULL,'2012-07-10 00:00:00','2012-07-10 12:00:00','2013-07-09 00:00:00','2015-03-06 12:00:00',4.000,'',0.000,'',0.000,'',1,0,0.00000000,0,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,0,2,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,'2022-12-11 21:23:42',2,3,0,'','',NULL,NULL,'2012-07-10 00:00:00',NULL,NULL,NULL,0.000,'',0.000,'',0.000,'',1,10,40.00000000,40,NULL,36.00000000,0.00000000,0.00000000,0.00000000,36.00000000,1,0,3,NULL,0.00000000,0,NULL,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(5,'2022-12-11 21:23:42',3,NULL,4,'','gfdg',NULL,NULL,NULL,'2015-03-06 12:00:00','2015-03-07 12:00:00',NULL,0.000,'',0.000,'',0.000,'',1,0,10.00000000,10,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,0,1,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(15,'2022-12-11 21:23:42',1,NULL,0,'','aaa',NULL,NULL,NULL,NULL,NULL,NULL,0.000,'CGST+SGST',9.000,'0',9.000,'0',1,0,10.00000000,10,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,0,1,NULL,0.00000000,0,NULL,12,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(16,'2022-12-11 21:23:42',1,NULL,0,'','aaa',NULL,NULL,NULL,NULL,NULL,NULL,18.000,'IGST',0.000,'1',0.000,'1',1,0,10.00000000,10,NULL,10.00000000,1.80000000,0.00000000,0.00000000,11.80000000,1,0,2,NULL,0.00000000,0,NULL,12,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000); /*!40000 ALTER TABLE `llx_contratdet` ENABLE KEYS */; UNLOCK TABLES; @@ -5156,7 +5197,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_contratdet_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -5185,7 +5226,7 @@ CREATE TABLE `llx_contratdet_log` ( `date` datetime NOT NULL, `statut` smallint(6) NOT NULL, `fk_user_author` int(11) NOT NULL, - `commentaire` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `commentaire` text DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_contratdet_log_fk_contratdet` (`fk_contratdet`), KEY `idx_contratdet_log_date` (`date`), @@ -5213,41 +5254,42 @@ CREATE TABLE `llx_cronjob` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, - `jobtype` varchar(10) COLLATE 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, + `jobtype` varchar(10) NOT NULL, + `label` varchar(255) NOT NULL, + `command` varchar(255) DEFAULT NULL, + `classesname` varchar(255) DEFAULT NULL, + `objectname` varchar(255) DEFAULT NULL, + `methodename` varchar(255) DEFAULT NULL, + `params` text DEFAULT NULL, + `md5params` varchar(32) DEFAULT NULL, + `module_name` varchar(255) DEFAULT NULL, `priority` int(11) DEFAULT 0, `datelastrun` datetime DEFAULT NULL, `datenextrun` datetime DEFAULT NULL, `datestart` datetime DEFAULT NULL, `dateend` datetime DEFAULT NULL, `datelastresult` datetime DEFAULT NULL, - `lastresult` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `lastoutput` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `unitfrequency` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '3600', + `lastresult` text DEFAULT NULL, + `lastoutput` text DEFAULT NULL, + `unitfrequency` varchar(255) NOT NULL DEFAULT '3600', `frequency` int(11) NOT NULL DEFAULT 0, `nbrun` int(11) DEFAULT NULL, `status` int(11) NOT NULL DEFAULT 1, `fk_user_author` int(11) DEFAULT NULL, `fk_user_mod` int(11) DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `libname` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, + `libname` varchar(255) DEFAULT NULL, `entity` int(11) DEFAULT 0, `maxrun` int(11) NOT NULL DEFAULT 0, `autodelete` int(11) DEFAULT 0, `fk_mailing` int(11) DEFAULT NULL, - `test` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT '1', + `test` varchar(255) DEFAULT '1', `processing` int(11) NOT NULL DEFAULT 0, - `email_alert` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_alert` varchar(128) DEFAULT NULL, + `pid` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_cronjob` (`label`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5256,7 +5298,7 @@ CREATE TABLE `llx_cronjob` ( LOCK TABLES `llx_cronjob` WRITE; /*!40000 ALTER TABLE `llx_cronjob` DISABLE KEYS */; -INSERT INTO `llx_cronjob` VALUES (1,'2015-03-23 18:18:39','2015-03-23 19:18:39','command','aaa','aaaa','','','','','','',0,NULL,NULL,'2015-03-23 19:18:00',NULL,NULL,NULL,NULL,'3600',3600,0,0,1,1,'',NULL,0,0,0,NULL,'1',0,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); +INSERT INTO `llx_cronjob` VALUES (1,'2015-03-23 18:18:39','2015-03-23 19:18:39','command','aaa','aaaa','','','','','','',0,NULL,NULL,'2015-03-23 19:18:00',NULL,NULL,NULL,NULL,'3600',3600,0,0,1,1,'',NULL,0,0,0,NULL,'1',0,NULL,NULL),(40,'2018-11-23 11:58:15','2018-11-23 12:58:15','method','SendEmailsReminders',NULL,'comm/action/class/actioncomm.class.php','ActionComm','sendEmailsReminder',NULL,NULL,'agenda',10,NULL,NULL,'2018-11-23 12:58:15',NULL,NULL,NULL,NULL,'60',10,NULL,1,NULL,NULL,'SendEMailsReminder',NULL,1,0,0,NULL,'$conf->agenda->enabled',0,NULL,NULL),(41,'2018-11-23 11:58:16','2018-11-23 12:58:16','method','PurgeDeleteTemporaryFilesShort',NULL,'core/class/utils.class.php','Utils','purgeFiles',NULL,NULL,'cron',50,NULL,NULL,'2018-11-23 12:58:16',NULL,NULL,NULL,NULL,'604800',2,NULL,1,NULL,NULL,'PurgeDeleteTemporaryFiles',NULL,0,0,0,NULL,'1',0,NULL,NULL),(42,'2020-01-15 15:43:12','2018-11-23 12:58:16','method','MakeLocalDatabaseDumpShort',NULL,'core/class/utils.class.php','Utils','dumpDatabase','none,auto,1,auto,10',NULL,'cron',90,'2020-01-15 19:43:12','2020-01-17 12:58:16','2018-11-23 12:58:16',NULL,'2020-01-15 19:43:12','-1','Failed to run external command. Check it is available and runnable by your PHP server. If PHP Safe Mode is enabled, check that command is inside a directory defined by parameter safe_mode_exec_dir.\nFailed to run external command. Check it is available and runnable by your PHP server. If PHP Safe Mode is enabled, check that command is inside a directory defined by parameter safe_mode_exec_dir.','604800',1,2,1,NULL,12,'MakeLocalDatabaseDump',NULL,0,0,0,NULL,'1',0,NULL,NULL),(43,'2022-07-04 01:11:54','2018-11-23 12:58:17','method','RecurringInvoicesJob',NULL,'compta/facture/class/facture-rec.class.php','FactureRec','createRecurringInvoices',NULL,NULL,'facture',50,NULL,NULL,'2018-11-23 23:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Generate recurring invoices',NULL,1,0,0,NULL,'$conf->facture->enabled',0,NULL,NULL),(45,'2020-01-01 12:00:34','2020-01-01 16:00:34','method','MyJob label',NULL,'/captureserver/class/myobject.class.php','MyObject','doScheduledJob',NULL,NULL,'captureserver',0,NULL,NULL,'2020-01-01 16:00:34',NULL,NULL,NULL,NULL,'3600',2,NULL,0,NULL,NULL,'Comment',NULL,1,0,0,NULL,'$conf->captureserver->enabled',0,NULL,NULL),(46,'2020-01-12 20:13:55','2020-01-13 00:13:55','method','Email collector',NULL,'/emailcollector/class/emailcollector.class.php','EmailCollector','doCollect',NULL,NULL,'emailcollector',50,NULL,NULL,'2020-01-13 00:13:55',NULL,NULL,NULL,NULL,'60',5,NULL,1,NULL,NULL,'Comment',NULL,1,0,0,NULL,'$conf->emailcollector->enabled',0,NULL,NULL),(47,'2021-04-15 10:34:00','2021-04-15 07:34:00','method','CompressSyslogs',NULL,'core/class/utils.class.php','Utils','compressSyslogs',NULL,NULL,'syslog',50,NULL,NULL,'2021-04-15 07:34:00',NULL,NULL,NULL,NULL,'86400',1,NULL,0,NULL,NULL,'Compress and archive log files. The number of versions to keep is defined into the setup of module. Warning: Main application cron script must be run with same account than your web server to avoid to get log files with different owner than required by web server. Another solution is to set web server Operating System group as the group of directory documents and set GROUP permission \"rws\" on this directory so log files will always have the group and permissions of the web server Operating System group.',NULL,1,0,0,NULL,'1',0,NULL,NULL),(48,'2021-07-11 17:49:46','2021-07-11 19:49:46','method','SendEmailsRemindersOnInvoiceDueDate',NULL,'compta/facture/class/facture.class.php','Facture','sendEmailsRemindersOnInvoiceDueDate','10,all,EmailTemplateCode',NULL,'facture',50,NULL,NULL,'2021-07-11 23:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,0,NULL,NULL,'Send an emails when the unpaid invoices reach a due date + n days = today. First param is the offset n of days, second parameter is \"all\" or a payment mode code, last paramater is the code of email template to use (an email template with EmailTemplateCode must exists. the version in the language of the thirdparty will be used in priority).',NULL,1,0,0,NULL,'$conf->facture->enabled',0,NULL,NULL),(49,'2022-02-07 13:38:17','2022-02-07 13:38:17','method','HolidayBalanceMonthlyUpdate',NULL,'holiday/class/holiday.class.php','Holiday','updateBalance',NULL,NULL,'holiday',50,NULL,NULL,'2022-02-07 04:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Update holiday balance every month',NULL,1,0,0,NULL,'$conf->holiday->enabled',0,NULL,NULL),(50,'2022-07-04 01:12:18','2022-07-04 01:12:18','method','MakeSendLocalDatabaseDumpShort',NULL,'core/class/utils.class.php','Utils','sendDumpDatabase',',,,,,sql',NULL,'cron',91,NULL,NULL,'2022-07-04 01:12:18',NULL,NULL,NULL,NULL,'604800',1,NULL,0,NULL,NULL,'MakeSendLocalDatabaseDump',NULL,0,0,0,NULL,'!empty($conf->global->MAIN_ALLOW_BACKUP_BY_EMAIL) && in_array($conf->db->type, array(\'mysql\', \'mysqli\'))',0,NULL,NULL),(51,'2022-07-04 01:12:18','2022-07-04 01:12:18','method','RecurringSupplierInvoicesJob',NULL,'fourn/class/fournisseur.facture-rec.class.php','FactureFournisseurRec','createRecurringInvoices',NULL,NULL,'fournisseur',51,NULL,NULL,'2022-07-04 23:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Generate recurring supplier invoices',NULL,1,0,0,NULL,'',0,NULL,NULL),(52,'2022-12-11 21:23:42','2022-12-11 21:23:42','method','CleanUnfinishedCronjobShort',NULL,'core/class/utils.class.php','Utils','cleanUnfinishedCronjob',NULL,NULL,'cron',10,NULL,NULL,'2022-12-11 21:23:42',NULL,NULL,NULL,NULL,'60',5,NULL,0,NULL,NULL,'CleanUnfinishedCronjob',NULL,0,0,0,NULL,'getDolGlobalInt(\"MAIN_FEATURES_LEVEL\") >= 2',0,NULL,NULL),(53,'2022-12-11 21:23:43','2022-12-11 21:23:43','method','HolidayBalanceMonthlyUpdate:holiday',NULL,'holiday/class/holiday.class.php','Holiday','updateBalance',NULL,NULL,'holiday',50,NULL,NULL,'2022-12-11 04:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Update holiday balance every month',NULL,1,0,0,NULL,'$conf->holiday->enabled',0,NULL,NULL); /*!40000 ALTER TABLE `llx_cronjob` ENABLE KEYS */; UNLOCK TABLES; @@ -5270,11 +5312,11 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `type` varchar(10) DEFAULT NULL, `user_id` int(11) NOT NULL DEFAULT 0, - `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, + `page` varchar(255) DEFAULT NULL, + `param` varchar(255) DEFAULT NULL, + `value` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_default_values` (`type`,`entity`,`user_id`,`page`,`param`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -5300,12 +5342,12 @@ DROP TABLE IF EXISTS `llx_delivery`; CREATE TABLE `llx_delivery` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_customer` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_customer` varchar(30) DEFAULT NULL, `fk_soc` int(11) NOT NULL, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ref_int` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(30) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -5314,14 +5356,14 @@ CREATE TABLE `llx_delivery` ( `fk_address` int(11) DEFAULT NULL, `fk_statut` smallint(6) DEFAULT 0, `total_ht` double(24,8) DEFAULT 0.00000000, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE 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, + `location_incoterms` varchar(255) DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_delivery_uk_ref` (`ref`,`entity`), KEY `idx_delivery_fk_soc` (`fk_soc`), @@ -5353,7 +5395,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_delivery_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -5380,7 +5422,7 @@ CREATE TABLE `llx_deliverydet` ( `fk_delivery` int(11) DEFAULT NULL, `fk_origin_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `qty` double DEFAULT NULL, `subprice` double(24,8) DEFAULT 0.00000000, `total_ht` double(24,8) DEFAULT 0.00000000, @@ -5412,7 +5454,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_deliverydet_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -5436,7 +5478,7 @@ DROP TABLE IF EXISTS `llx_deplacement`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_deplacement` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), @@ -5444,14 +5486,14 @@ 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 utf8mb3_unicode_ci NOT NULL, + `type` varchar(12) NOT NULL, `fk_statut` int(11) NOT NULL DEFAULT 1, `km` double DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, `fk_projet` int(11) DEFAULT 0, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -5475,14 +5517,14 @@ DROP TABLE IF EXISTS `llx_document_model`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_document_model` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `nom` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `nom` varchar(50) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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, + `type` varchar(64) DEFAULT NULL, + `libelle` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_document_model` (`nom`,`type`,`entity`) -) ENGINE=InnoDB AUTO_INCREMENT=442 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=450 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5491,7 +5533,7 @@ CREATE TABLE `llx_document_model` ( LOCK TABLES `llx_document_model` WRITE; /*!40000 ALTER TABLE `llx_document_model` DISABLE KEYS */; -INSERT INTO `llx_document_model` VALUES (9,'merou',1,'shipping',NULL,NULL),(181,'generic_invoice_odt',1,'invoice','ODT templates','FACTURE_ADDON_PDF_ODT_PATH'),(193,'canelle2',1,'invoice_supplier','canelle2',NULL),(195,'canelle',1,'invoice_supplier','canelle',NULL),(198,'azur',2,'propal',NULL,NULL),(199,'html_cerfafr',2,'donation',NULL,NULL),(200,'crabe',2,'invoice',NULL,NULL),(201,'generic_odt',1,'company','ODT templates','COMPANY_ADDON_PDF_ODT_PATH'),(250,'baleine',1,'project',NULL,NULL),(255,'soleil',1,'ficheinter',NULL,NULL),(256,'azur',1,'propal',NULL,NULL),(273,'beluga',1,'project','beluga',NULL),(281,'sepamandate',1,'bankaccount','sepamandate',NULL),(299,'standard',1,'member',NULL,NULL),(319,'generic_bom_odt',1,'bom','ODT templates','BOM_ADDON_PDF_ODT_PATH'),(320,'generic_mo_odt',1,'mrp','ODT templates','MRP_MO_ADDON_PDF_ODT_PATH'),(366,'generic_user_odt',1,'user',NULL,NULL),(367,'generic_usergroup_odt',1,'group',NULL,NULL),(370,'aurore',1,'supplier_proposal',NULL,NULL),(371,'rouget',1,'shipping',NULL,NULL),(372,'typhon',1,'delivery',NULL,NULL),(393,'squille',1,'reception',NULL,NULL),(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); +INSERT INTO `llx_document_model` VALUES (9,'merou',1,'shipping',NULL,NULL),(181,'generic_invoice_odt',1,'invoice','ODT templates','FACTURE_ADDON_PDF_ODT_PATH'),(193,'canelle2',1,'invoice_supplier','canelle2',NULL),(195,'canelle',1,'invoice_supplier','canelle',NULL),(198,'azur',2,'propal',NULL,NULL),(199,'html_cerfafr',2,'donation',NULL,NULL),(200,'crabe',2,'invoice',NULL,NULL),(201,'generic_odt',1,'company','ODT templates','COMPANY_ADDON_PDF_ODT_PATH'),(250,'baleine',1,'project',NULL,NULL),(255,'soleil',1,'ficheinter',NULL,NULL),(256,'azur',1,'propal',NULL,NULL),(273,'beluga',1,'project','beluga',NULL),(281,'sepamandate',1,'bankaccount','sepamandate',NULL),(299,'standard',1,'member',NULL,NULL),(319,'generic_bom_odt',1,'bom','ODT templates','BOM_ADDON_PDF_ODT_PATH'),(320,'generic_mo_odt',1,'mrp','ODT templates','MRP_MO_ADDON_PDF_ODT_PATH'),(366,'generic_user_odt',1,'user',NULL,NULL),(367,'generic_usergroup_odt',1,'group',NULL,NULL),(370,'aurore',1,'supplier_proposal',NULL,NULL),(371,'rouget',1,'shipping',NULL,NULL),(372,'typhon',1,'delivery',NULL,NULL),(393,'squille',1,'reception',NULL,NULL),(442,'einstein',1,'order',NULL,NULL),(443,'html_cerfafr',1,'donation',NULL,NULL),(444,'standard',1,'expensereport',NULL,NULL),(445,'crabe',1,'invoice',NULL,NULL),(446,'muscadet',1,'order_supplier',NULL,NULL),(447,'standard_recruitmentjobposition',1,'recruitmentjobposition',NULL,NULL),(448,'generic_recruitmentjobposition_odt',1,'recruitmentjobposition',NULL,NULL),(449,'TICKET_ADDON_PDF_ODT_PATH',1,'ticket',NULL,NULL); /*!40000 ALTER TABLE `llx_document_model` ENABLE KEYS */; UNLOCK TABLES; @@ -5504,7 +5546,7 @@ DROP TABLE IF EXISTS `llx_don`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_don` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_statut` smallint(6) NOT NULL DEFAULT 0, @@ -5513,30 +5555,35 @@ 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 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, + `firstname` varchar(50) DEFAULT NULL, + `lastname` varchar(50) DEFAULT NULL, + `societe` varchar(50) DEFAULT NULL, + `address` text DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, + `country` varchar(50) DEFAULT NULL, `fk_country` int(11) NOT NULL, - `email` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `phone` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `phone_mobile` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `phone` varchar(24) DEFAULT NULL, + `phone_mobile` varchar(24) DEFAULT NULL, `public` smallint(6) NOT NULL DEFAULT 1, `fk_projet` int(11) DEFAULT NULL, `fk_user_author` int(11) NOT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `note_private` text COLLATE 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, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `date_valid` datetime DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - PRIMARY KEY (`rowid`) + PRIMARY KEY (`rowid`), + UNIQUE KEY `idx_don_uk_ref` (`ref`,`entity`), + KEY `idx_don_fk_soc` (`fk_soc`), + KEY `idx_don_fk_project` (`fk_projet`), + KEY `idx_don_fk_user_author` (`fk_user_author`), + KEY `idx_don_fk_user_valid` (`fk_user_valid`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -5561,7 +5608,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_don_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -5585,20 +5632,20 @@ 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 utf8mb3_unicode_ci NOT NULL, + `label` varchar(64) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_parent` int(11) DEFAULT NULL, - `description` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` varchar(255) NOT NULL, `cachenbofdoc` int(11) NOT NULL DEFAULT 0, - `fullpath` varchar(750) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fullpath` varchar(750) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `date_c` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_c` int(11) DEFAULT NULL, `fk_user_m` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `acl` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `acl` text DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_ecm_directories` (`label`,`fk_parent`,`entity`), KEY `idx_ecm_directories_fk_user_c` (`fk_user_c`), @@ -5629,7 +5676,7 @@ CREATE TABLE `llx_ecm_directories_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_ecm_directories_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -5653,28 +5700,28 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, - `share` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(128) DEFAULT NULL, + `label` varchar(128) NOT NULL, + `share` varchar(128) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `filename` varchar(255) COLLATE 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, + `filename` varchar(255) NOT NULL, + `filepath` varchar(255) DEFAULT NULL, + `fullpath_orig` varchar(750) DEFAULT NULL, + `description` text DEFAULT NULL, + `keywords` text DEFAULT NULL, + `cover` text DEFAULT NULL, + `gen_or_uploaded` varchar(12) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `date_c` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_c` int(11) DEFAULT NULL, `fk_user_m` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `acl` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `acl` text DEFAULT NULL, `position` int(11) DEFAULT NULL, - `keyword` varchar(750) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `src_object_type` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `keyword` varchar(750) DEFAULT NULL, + `src_object_type` varchar(64) DEFAULT NULL, `src_object_id` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_ecm_files` (`filepath`,`filename`,`entity`), @@ -5703,7 +5750,7 @@ CREATE TABLE `llx_ecm_files_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_ecm_files_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -5718,6 +5765,34 @@ LOCK TABLES `llx_ecm_files_extrafields` WRITE; /*!40000 ALTER TABLE `llx_ecm_files_extrafields` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_element_categorie` +-- + +DROP TABLE IF EXISTS `llx_element_categorie`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_element_categorie` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_categorie` int(11) NOT NULL, + `fk_element` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `idx_element_categorie_idx` (`fk_element`,`fk_categorie`), + KEY `fk_element_categorie_fk_categorie` (`fk_categorie`), + CONSTRAINT `fk_element_categorie_fk_categorie` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_element_categorie` +-- + +LOCK TABLES `llx_element_categorie` WRITE; +/*!40000 ALTER TABLE `llx_element_categorie` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_element_categorie` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_element_contact` -- @@ -5760,9 +5835,9 @@ 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 utf8mb3_unicode_ci NOT NULL, + `sourcetype` varchar(32) NOT NULL, `fk_target` int(11) NOT NULL, - `targettype` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, + `targettype` varchar(32) NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_element_element_idx1` (`fk_source`,`sourcetype`,`fk_target`,`targettype`), KEY `idx_element_element_fk_target` (`fk_target`) @@ -5789,9 +5864,9 @@ DROP TABLE IF EXISTS `llx_element_resources`; CREATE TABLE `llx_element_resources` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `element_id` int(11) DEFAULT NULL, - `element_type` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `element_type` varchar(64) DEFAULT NULL, `resource_id` int(11) DEFAULT NULL, - `resource_type` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `resource_type` varchar(64) DEFAULT NULL, `busy` int(11) DEFAULT NULL, `mandatory` int(11) DEFAULT NULL, `fk_user_create` int(11) DEFAULT NULL, @@ -5823,32 +5898,35 @@ 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 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, + `ref` varchar(128) NOT NULL, + `label` varchar(255) DEFAULT NULL, + `description` mediumtext DEFAULT NULL, + `host` varchar(255) DEFAULT NULL, + `user` varchar(128) DEFAULT NULL, + `password` varchar(128) DEFAULT NULL, + `source_directory` varchar(255) DEFAULT NULL, + `filter` mediumtext DEFAULT NULL, + `actiontodo` varchar(255) DEFAULT NULL, + `target_directory` varchar(255) DEFAULT NULL, `datelastresult` datetime DEFAULT NULL, - `lastresult` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_private` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lastresult` text DEFAULT NULL, + `note_public` mediumtext DEFAULT NULL, + `note_private` mediumtext DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) NOT NULL, - `codelastresult` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `codelastresult` varchar(16) DEFAULT NULL, `position` int(11) DEFAULT 0, - `login` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `login` varchar(128) DEFAULT NULL, `datelastok` datetime DEFAULT NULL, `maxemailpercollect` int(11) DEFAULT 100, - `hostcharset` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT 'UTF-8', + `hostcharset` varchar(16) DEFAULT 'UTF-8', + `port` varchar(10) DEFAULT '993', + `acces_type` int(11) DEFAULT 0, + `oauth_service` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_emailcollector_emailcollector_ref` (`ref`,`entity`), KEY `idx_emailcollector_rowid` (`rowid`), @@ -5863,7 +5941,7 @@ CREATE TABLE `llx_emailcollector_emailcollector` ( LOCK TABLES `llx_emailcollector_emailcollector` WRITE; /*!40000 ALTER TABLE `llx_emailcollector_emailcollector` DISABLE KEYS */; -INSERT INTO `llx_emailcollector_emailcollector` VALUES (3,1,'Collect_Ticket_Requests','Example to collect ticket requests','This collector will scan your mailbox to find emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from the ticket, you may also see answers of your customers or partners directly on the ticket view.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-12-10 12:24:38',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8'),(4,1,'Collect_Responses_In','Example to collect any email responses','This collector will scan your mailbox to find all emails that are an answer of an email sent from your application. An event with the email response will be recorded at the good place (Module Agenda must be enabled). For example, if your send a commercial proposal, order or invoice by email and your customer answers your email, the system will automatically find the answer and add it into your ERP.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-12-10 12:24:38',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8'),(5,1,'Collect_Leads','Example to collect leads','This collector will scan your mailbox to find emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can\'t be found in database (new customer), the lead will be attached to the thirdparty with ID 1.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-01-12 20:13:55',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8'); +INSERT INTO `llx_emailcollector_emailcollector` VALUES (3,1,'Collect_Ticket_Requests','Example to collect ticket requests','This collector will scan your mailbox to find emails that match some rules and create automatically a ticket (Module Ticket must be enabled) with the email informations. You can use this collector if you provide some support by email, so your ticket request will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from the ticket, you may also see answers of your customers or partners directly on the ticket view.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-12-10 12:24:38',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8','993',0,NULL),(4,1,'Collect_Responses_In','Example to collect any email responses','This collector will scan your mailbox to find all emails that are an answer of an email sent from your application. An event with the email response will be recorded at the good place (Module Agenda must be enabled). For example, if your send a commercial proposal, order or invoice by email and your customer answers your email, the system will automatically find the answer and add it into your ERP.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-12-10 12:24:38',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8','993',0,NULL),(5,1,'Collect_Leads','Example to collect leads','This collector will scan your mailbox to find emails that match some rules and create automatically a lead (Module Project must be enabled) with the email informations. You can use this collector if you want to follow your lead using the module Project (1 lead = 1 project), so your leads will be automatically generated. If the collector Collect_Responses is also enabled, when you send an email from your leads, proposals or any other object, you may also see answers of your customers or partners directly on the application.
Note: With this initial example, the title of the lead is generated including the email. If the thirdparty can\'t be found in database (new customer), the lead will be attached to the thirdparty with ID 1.',NULL,NULL,NULL,'INBOX',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-01-13 00:13:55','2020-01-12 20:13:55',12,NULL,NULL,0,NULL,0,NULL,NULL,100,'UTF-8','993',0,NULL); /*!40000 ALTER TABLE `llx_emailcollector_emailcollector` ENABLE KEYS */; UNLOCK TABLES; @@ -5877,13 +5955,13 @@ 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 utf8mb3_unicode_ci NOT NULL, - `actionparam` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type` varchar(128) NOT NULL, + `actionparam` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) NOT NULL, `position` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), @@ -5913,13 +5991,13 @@ 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 utf8mb3_unicode_ci NOT NULL, - `rulevalue` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type` varchar(128) NOT NULL, + `rulevalue` varchar(255) DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_emailcollector_emailcollectorfilter` (`fk_emailcollector`,`type`,`rulevalue`), @@ -5950,25 +6028,25 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_project` int(11) DEFAULT NULL, - `description` text COLLATE 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, + `description` text DEFAULT NULL, + `lieu` varchar(64) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `fk_departement` int(11) DEFAULT NULL, `fk_pays` int(11) DEFAULT 0, `statut` tinyint(4) DEFAULT 1, `fk_user_author` int(11) DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_parent` int(11) DEFAULT 0, - `fax` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `phone` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fax` varchar(20) DEFAULT NULL, + `phone` varchar(20) DEFAULT NULL, `warehouse_usage` int(11) DEFAULT 1, - `barcode` varchar(180) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `barcode` varchar(180) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_entrepot_label` (`ref`,`entity`) @@ -5996,7 +6074,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_entrepot_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -6021,23 +6099,23 @@ 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 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, + `name` varchar(50) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(25) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `fk_state` int(11) DEFAULT 0, `fk_country` int(11) DEFAULT 0, - `profid1` varchar(20) COLLATE 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, + `profid1` varchar(20) DEFAULT NULL, + `profid2` varchar(20) DEFAULT NULL, + `profid3` varchar(20) DEFAULT NULL, + `phone` varchar(20) DEFAULT NULL, `fk_user_author` int(11) NOT NULL, `fk_user_mod` int(11) DEFAULT NULL, `datec` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `status` tinyint(4) DEFAULT 1, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, - `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(30) NOT NULL, + `label` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6062,7 +6140,7 @@ 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 utf8mb3_unicode_ci NOT NULL, + `targettype` varchar(32) NOT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6085,27 +6163,28 @@ DROP TABLE IF EXISTS `llx_eventorganization_conferenceorboothattendee`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_eventorganization_conferenceorboothattendee` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(128) NOT NULL, `fk_soc` int(11) DEFAULT NULL, `fk_actioncomm` int(11) DEFAULT NULL, - `email` varchar(100) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `email_company` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` varchar(100) DEFAULT NULL, + `email_company` varchar(128) DEFAULT NULL, `date_subscription` datetime DEFAULT NULL, `amount` double DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE 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, + `last_main_doc` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `status` smallint(6) NOT NULL, `fk_project` int(11) NOT NULL, `fk_invoice` int(11) DEFAULT NULL, - `firstname` varchar(100) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `lastname` varchar(100) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `firstname` varchar(100) DEFAULT NULL, + `lastname` varchar(100) DEFAULT NULL, + `ip` varchar(250) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_eventorganization_conferenceorboothattendee` (`fk_project`,`email`,`fk_actioncomm`), KEY `idx_eventorganization_conferenceorboothattendee_rowid` (`rowid`), @@ -6137,7 +6216,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_conferenceorboothattendee_fk_object` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -6162,16 +6241,16 @@ 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 utf8mb3_unicode_ci NOT NULL, + `type` varchar(32) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `dateevent` datetime DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, - `description` varchar(250) COLLATE utf8mb3_unicode_ci NOT NULL, - `ip` varchar(250) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `user_agent` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` varchar(250) NOT NULL, + `ip` varchar(250) DEFAULT NULL, + `user_agent` varchar(255) DEFAULT NULL, `fk_object` int(11) DEFAULT NULL, - `prefix_session` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `authentication_method` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `prefix_session` varchar(255) DEFAULT NULL, + `authentication_method` varchar(64) DEFAULT NULL, `fk_oauth_token` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_events_dateevent` (`dateevent`) @@ -6198,13 +6277,13 @@ DROP TABLE IF EXISTS `llx_expedition`; CREATE TABLE `llx_expedition` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_customer` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_customer` varchar(255) DEFAULT NULL, `fk_soc` int(11) NOT NULL, `fk_projet` int(11) DEFAULT NULL, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ref_int` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(30) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -6213,7 +6292,7 @@ CREATE TABLE `llx_expedition` ( `date_delivery` datetime DEFAULT NULL, `fk_address` int(11) DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, - `tracking_number` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `tracking_number` varchar(50) DEFAULT NULL, `fk_statut` smallint(6) DEFAULT 0, `height` float DEFAULT NULL, `height_unit` int(11) DEFAULT NULL, @@ -6222,16 +6301,16 @@ CREATE TABLE `llx_expedition` ( `size` float DEFAULT NULL, `weight_units` int(11) DEFAULT NULL, `weight` float DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `billed` smallint(6) DEFAULT 0, `fk_user_modif` int(11) DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_expedition_uk_ref` (`ref`,`entity`), KEY `idx_expedition_fk_soc` (`fk_soc`), @@ -6266,7 +6345,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_expedition_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -6291,7 +6370,7 @@ DROP TABLE IF EXISTS `llx_expedition_package`; CREATE TABLE `llx_expedition_package` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_expedition` int(11) NOT NULL, - `description` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, `value` double(24,8) DEFAULT 0.00000000, `fk_package_type` int(11) DEFAULT NULL, `height` float DEFAULT NULL, @@ -6359,7 +6438,7 @@ CREATE TABLE `llx_expeditiondet_batch` ( `fk_expeditiondet` int(11) NOT NULL, `eatby` date DEFAULT NULL, `sellby` date DEFAULT NULL, - `batch` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, `qty` double NOT NULL DEFAULT 0, `fk_origin_stock` int(11) NOT NULL, PRIMARY KEY (`rowid`), @@ -6388,7 +6467,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_expeditiondet_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -6412,7 +6491,7 @@ DROP TABLE IF EXISTS `llx_expensereport`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_expensereport` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(50) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(50) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `ref_number_int` int(11) DEFAULT NULL, `ref_ext` int(11) DEFAULT NULL, @@ -6439,22 +6518,22 @@ CREATE TABLE `llx_expensereport` ( `fk_statut` int(11) NOT NULL, `fk_c_paiement` int(11) DEFAULT NULL, `paid` smallint(6) NOT NULL DEFAULT 0, - `note_public` text COLLATE 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, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, + `detail_refuse` varchar(255) DEFAULT NULL, + `detail_cancel` varchar(255) DEFAULT NULL, `integration_compta` int(11) DEFAULT NULL, `fk_bank_account` int(11) DEFAULT NULL, - `model_pdf` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(50) DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_expensereport_uk_ref` (`ref`,`entity`), @@ -6488,10 +6567,10 @@ DROP TABLE IF EXISTS `llx_expensereport_det`; CREATE TABLE `llx_expensereport_det` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_expensereport` int(11) NOT NULL, - `docnumber` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `docnumber` varchar(128) DEFAULT NULL, `fk_c_type_fees` int(11) NOT NULL, `fk_projet` int(11) DEFAULT NULL, - `comments` text COLLATE utf8mb3_unicode_ci NOT NULL, + `comments` text NOT NULL, `product_type` int(11) DEFAULT -1, `qty` double NOT NULL, `subprice` double(24,8) NOT NULL DEFAULT 0.00000000, @@ -6499,9 +6578,9 @@ CREATE TABLE `llx_expensereport_det` ( `remise_percent` double DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax1_type` varchar(10) DEFAULT NULL, `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(10) DEFAULT NULL, `total_ht` double(24,8) NOT NULL DEFAULT 0.00000000, `total_tva` double(24,8) NOT NULL DEFAULT 0.00000000, `total_localtax1` double(24,8) DEFAULT 0.00000000, @@ -6511,17 +6590,17 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, `fk_facture` int(11) DEFAULT 0, `fk_code_ventilation` int(11) DEFAULT 0, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', - `rule_warning_message` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `vat_src_code` varchar(10) DEFAULT '', + `rule_warning_message` text DEFAULT NULL, `fk_c_exp_tax_cat` int(11) DEFAULT NULL, `fk_ecm_files` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) @@ -6549,7 +6628,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_expensereport_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -6612,7 +6691,7 @@ 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 utf8mb3_unicode_ci NOT NULL, + `code_expense_rules_type` varchar(50) NOT NULL, `is_for_all` tinyint(4) DEFAULT 0, `entity` int(11) DEFAULT 1, PRIMARY KEY (`rowid`) @@ -6637,10 +6716,10 @@ 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 utf8mb3_unicode_ci NOT NULL, + `ref` varchar(12) NOT NULL, `date_export` datetime NOT NULL, `fk_user` int(11) NOT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6664,10 +6743,10 @@ 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 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, + `label` varchar(50) NOT NULL, + `type` varchar(64) DEFAULT NULL, + `field` text NOT NULL, + `filter` text DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_export_model` (`label`,`type`) @@ -6693,34 +6772,34 @@ 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 utf8mb3_unicode_ci NOT NULL DEFAULT 'member', - `name` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL, + `elementtype` varchar(64) NOT NULL DEFAULT 'member', + `name` varchar(64) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, - `type` varchar(8) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `size` varchar(8) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) NOT NULL, + `type` varchar(8) DEFAULT NULL, + `size` varchar(8) DEFAULT NULL, `pos` int(11) DEFAULT 0, `alwayseditable` int(11) DEFAULT 0, - `param` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `param` text DEFAULT NULL, `fieldunique` int(11) DEFAULT 0, `fieldrequired` int(11) DEFAULT 0, - `perms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `list` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `perms` varchar(255) DEFAULT NULL, + `list` varchar(128) DEFAULT NULL, `totalizable` tinyint(1) DEFAULT 0, `ishidden` int(11) DEFAULT 0, - `fieldcomputed` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `fielddefault` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `langs` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fieldcomputed` text DEFAULT NULL, + `fielddefault` text DEFAULT NULL, + `langs` varchar(64) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `datec` datetime DEFAULT NULL, - `enabled` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT '1', - `help` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `enabled` varchar(255) DEFAULT '1', + `help` text 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, + `css` varchar(128) DEFAULT NULL, + `cssview` varchar(128) DEFAULT NULL, + `csslist` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_extrafields_name` (`name`,`entity`,`elementtype`) ) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -6745,13 +6824,13 @@ DROP TABLE IF EXISTS `llx_facture`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_facture` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ref_int` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(255) DEFAULT NULL, `type` smallint(6) NOT NULL DEFAULT 0, - `ref_client` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `increment` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_client` varchar(255) DEFAULT NULL, + `increment` varchar(10) DEFAULT NULL, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, `datef` date DEFAULT NULL, @@ -6763,8 +6842,9 @@ CREATE TABLE `llx_facture` ( `remise_percent` double DEFAULT 0, `remise_absolue` double DEFAULT 0, `remise` double DEFAULT 0, - `close_code` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `close_note` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `close_code` varchar(16) DEFAULT NULL, + `close_missing_amount` double(24,8) DEFAULT NULL, + `close_note` varchar(128) DEFAULT NULL, `total_tva` double(24,8) DEFAULT 0.00000000, `localtax1` double(24,8) DEFAULT 0.00000000, `localtax2` double(24,8) DEFAULT 0.00000000, @@ -6779,15 +6859,15 @@ CREATE TABLE `llx_facture` ( `fk_facture_source` int(11) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `fk_account` int(11) DEFAULT NULL, - `fk_currency` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_currency` varchar(3) DEFAULT NULL, `fk_cond_reglement` int(11) NOT NULL DEFAULT 1, `fk_mode_reglement` int(11) DEFAULT NULL, `date_lim_reglement` date DEFAULT NULL, - `note_private` text COLLATE 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, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `situation_cycle_ref` smallint(6) DEFAULT NULL, `situation_counter` smallint(6) DEFAULT NULL, `situation_final` smallint(6) DEFAULT NULL, @@ -6795,19 +6875,19 @@ CREATE TABLE `llx_facture` ( `retained_warranty_date_limit` date DEFAULT NULL, `retained_warranty_fk_cond_reglement` int(11) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, `fk_transport_mode` int(11) DEFAULT NULL, `date_pointoftax` date DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, `fk_fac_rec_source` int(11) DEFAULT NULL, - `last_main_doc` varchar(255) COLLATE 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, + `last_main_doc` varchar(255) DEFAULT NULL, + `module_source` varchar(32) DEFAULT NULL, + `pos_source` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_facture_ref` (`ref`,`entity`), KEY `idx_facture_fk_soc` (`fk_soc`), @@ -6833,7 +6913,7 @@ CREATE TABLE `llx_facture` ( LOCK TABLES `llx_facture` WRITE; /*!40000 ALTER TABLE `llx_facture` DISABLE KEYS */; -INSERT INTO `llx_facture` VALUES (2,'FA1007-0002',1,NULL,NULL,0,NULL,NULL,2,'2012-07-10 18:20:13','2021-07-10',NULL,NULL,'2021-07-11 17:49:28',1,10.00000000,NULL,NULL,0,NULL,NULL,0.10000000,0.00000000,0.00000000,0.00000000,46.00000000,46.10000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-07-10',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(3,'FA1107-0006',1,NULL,NULL,0,NULL,NULL,10,'2013-07-18 20:33:35','2021-07-18',NULL,NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,15.00000000,15.00000000,2,1,NULL,1,NULL,NULL,1,NULL,NULL,1,0,'2021-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(5,'FA1108-0003',1,NULL,NULL,0,NULL,NULL,7,'2013-08-01 03:34:11','2021-08-01',NULL,NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,6,'2021-08-01',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(6,'FA1108-0004',1,NULL,NULL,0,NULL,NULL,7,'2013-08-06 20:33:53','2021-08-06',NULL,NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.98000000,0.00000000,0.00000000,0.00000000,5.00000000,5.98000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,4,'2021-08-06','Cash\nReceived : 6 EUR\nRendu : 0.02 EUR\n\n--------------------------------------',NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(8,'FA1108-0005',1,NULL,NULL,3,NULL,NULL,2,'2013-08-08 02:41:44','2021-08-08',NULL,NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(9,'FA1108-0007',1,NULL,NULL,3,NULL,NULL,10,'2013-08-08 02:55:14','2021-08-08',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,1.96000000,0.00000000,0.00000000,0.00000000,10.00000000,11.96000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(10,'AV1212-0001',1,NULL,NULL,2,NULL,NULL,10,'2014-12-08 17:45:20','2021-12-08','2021-12-08 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,-0.63000000,0.00000000,0.00000000,0.00000000,-11.00000000,-11.63000000,1,1,NULL,1,NULL,3,NULL,NULL,NULL,0,0,'2021-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(12,'AV1212-0002',1,NULL,NULL,2,NULL,NULL,10,'2014-12-08 18:20:14','2021-12-08','2021-12-08 00:00:00',NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-5.00000000,-5.00000000,2,1,NULL,1,NULL,3,NULL,NULL,NULL,0,0,'2021-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(13,'FA1212-0011',1,NULL,NULL,0,NULL,NULL,7,'2014-12-09 20:04:19','2021-12-09','2021-02-12 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,2.74000000,0.00000000,0.00000000,0.00000000,14.00000000,16.74000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-12-09',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(32,'FA1212-0021',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:34:23','2021-12-11','2022-03-24 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,90.00000000,0.00000000,0.00000000,0.60000000,520.00000000,610.60000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(33,'FA1212-0023',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:34:23','2021-12-11','2022-03-03 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,'abandon',NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,3,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(55,'FA1212-0009',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:35:51','2021-12-11','2021-12-12 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-12-11','This is a comment (private)','This is a comment (public)','generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(148,'FS1301-0001',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:22:48','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,'facture/FS1301-0001/FS1301-0001.pdf',NULL,NULL),(149,'FA1601-0024',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:30:05','2022-01-19','2021-08-29 00:00:00','2020-01-02 20:49:34','2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,'other','test',1.80000000,0.90000000,0.90000000,0.00000000,20.00000000,23.60000000,2,1,NULL,12,12,NULL,NULL,NULL,NULL,0,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,20.00000000,1.80000000,23.60000000,NULL,'facture/FA1601-0024/FA1601-0024.pdf',NULL,NULL),(150,'FA6801-0010',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:31:10','2022-01-19','2021-10-04 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,1,1,NULL,12,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,5.00000000,0.63000000,5.63000000,NULL,'facture/FA6801-0010/FA6801-0010.pdf',NULL,NULL),(151,'FS1301-0002',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:31:58','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(160,'FA1507-0015',1,NULL,NULL,0,NULL,NULL,12,'2015-03-06 16:47:48','2021-07-18','2021-03-06 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,1.11000000,0.00000000,0.00000000,0.00000000,8.89000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(210,'FA1107-0019',1,NULL,NULL,0,NULL,NULL,10,'2015-03-20 14:30:11','2021-07-10','2021-03-20 00:00:00',NULL,'2021-07-11 17:49:28',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2021-07-10',NULL,NULL,'generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(211,'FA1303-0020',1,NULL,NULL,0,NULL,NULL,19,'2015-03-22 09:40:10','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); +INSERT INTO `llx_facture` VALUES (2,'FA1007-0002',1,NULL,NULL,0,NULL,NULL,2,'2012-07-10 18:20:13','2022-07-10',NULL,NULL,'2022-12-11 21:23:22',1,10.00000000,NULL,NULL,0,NULL,NULL,NULL,0.10000000,0.00000000,0.00000000,0.00000000,46.00000000,46.10000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-07-10',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(3,'FA1107-0006',1,NULL,NULL,0,NULL,NULL,10,'2013-07-18 20:33:35','2022-07-18',NULL,NULL,'2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,15.00000000,15.00000000,2,1,NULL,1,NULL,NULL,1,NULL,NULL,1,0,'2022-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(5,'FA1108-0003',1,NULL,NULL,0,NULL,NULL,7,'2013-08-01 03:34:11','2022-08-01',NULL,NULL,'2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,6,'2022-08-01',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(6,'FA1108-0004',1,NULL,NULL,0,NULL,NULL,7,'2013-08-06 20:33:53','2022-08-06',NULL,NULL,'2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.98000000,0.00000000,0.00000000,0.00000000,5.00000000,5.98000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,4,'2022-08-06','Cash\nReceived : 6 EUR\nRendu : 0.02 EUR\n\n--------------------------------------',NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(8,'FA1108-0005',1,NULL,NULL,3,NULL,NULL,2,'2013-08-08 02:41:44','2022-08-08',NULL,NULL,'2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(9,'FA1108-0007',1,NULL,NULL,3,NULL,NULL,10,'2013-08-08 02:55:14','2022-08-08',NULL,NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.96000000,0.00000000,0.00000000,0.00000000,10.00000000,11.96000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(10,'AV1212-0001',1,NULL,NULL,2,NULL,NULL,10,'2014-12-08 17:45:20','2022-12-08','2022-12-08 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,-0.63000000,0.00000000,0.00000000,0.00000000,-11.00000000,-11.63000000,1,1,NULL,1,NULL,3,NULL,NULL,NULL,0,0,'2022-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(12,'AV1212-0002',1,NULL,NULL,2,NULL,NULL,10,'2014-12-08 18:20:14','2022-12-08','2022-12-08 00:00:00',NULL,'2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-5.00000000,-5.00000000,2,1,NULL,1,NULL,3,NULL,NULL,NULL,0,0,'2022-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(13,'FA1212-0011',1,NULL,NULL,0,NULL,NULL,7,'2014-12-09 20:04:19','2022-12-09','2022-02-12 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,2.74000000,0.00000000,0.00000000,0.00000000,14.00000000,16.74000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-12-09',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(32,'FA1212-0021',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:34:23','2022-12-11','2022-03-24 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,90.00000000,0.00000000,0.00000000,0.60000000,520.00000000,610.60000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(33,'FA1212-0023',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:34:23','2022-12-11','2022-03-03 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,'abandon',NULL,NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,3,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(55,'FA1212-0009',1,NULL,NULL,0,NULL,NULL,1,'2014-12-11 09:35:51','2022-12-11','2021-12-12 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-12-11','This is a comment (private)','This is a comment (public)','generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(148,'FS1301-0001',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:22:48','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,'facture/FS1301-0001/FS1301-0001.pdf',NULL,NULL),(149,'FA1601-0024',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:30:05','2022-01-19','2021-08-29 00:00:00','2020-01-02 20:49:34','2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,'other',NULL,'test',1.80000000,0.90000000,0.90000000,0.00000000,20.00000000,23.60000000,2,1,NULL,12,12,NULL,NULL,NULL,NULL,0,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,20.00000000,1.80000000,23.60000000,NULL,'facture/FA1601-0024/FA1601-0024.pdf',NULL,NULL),(150,'FA6801-0010',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:31:10','2022-01-19','2021-10-04 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,1,1,NULL,12,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,5.00000000,0.63000000,5.63000000,NULL,'facture/FA6801-0010/FA6801-0010.pdf',NULL,NULL),(151,'FS1301-0002',1,NULL,NULL,0,NULL,NULL,1,'2015-01-19 18:31:58','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,1,'2022-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(160,'FA1507-0015',1,NULL,NULL,0,NULL,NULL,12,'2015-03-06 16:47:48','2022-07-18','2022-03-06 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.11000000,0.00000000,0.00000000,0.00000000,8.89000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(210,'FA1107-0019',1,NULL,NULL,0,NULL,NULL,10,'2015-03-20 14:30:11','2022-07-10','2022-03-20 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,0,'2022-07-10',NULL,NULL,'generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(211,'FA1303-0020',1,NULL,NULL,0,NULL,NULL,19,'2015-03-22 09:40:10','2022-03-22','2021-03-02 00:00:00',NULL,'2022-07-04 01:11:35',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,17.64000000,0.00000000,0.00000000,0.40000000,340.00000000,358.04000000,1,1,NULL,1,NULL,NULL,NULL,NULL,NULL,1,3,'2022-03-22',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(213,'AV1303-0003',1,NULL,NULL,2,NULL,NULL,1,'2016-03-03 19:22:03','2022-03-03','2021-03-03 00:00:00',NULL,'2022-07-04 01:11:35',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-1000.00000000,-1000.00000000,1,1,NULL,1,NULL,32,NULL,NULL,NULL,0,0,'2022-03-03',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(216,'(PROV216)',1,NULL,NULL,0,NULL,NULL,26,'2017-02-12 23:21:27','2022-02-12',NULL,NULL,'2022-07-04 01:11:35',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-02-12',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,0,'',NULL,NULL,0,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(217,'(PROV217)',1,NULL,NULL,0,NULL,NULL,1,'2017-08-31 13:26:17','2022-08-31',NULL,NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.13000000,0.00000000,0.00000000,0.00000000,21.00000000,22.13000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-08-31',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,0,'',NULL,NULL,1,'EUR',1.00000000,21.00000000,1.13000000,22.13000000,NULL,'facture/(PROV217)/(PROV217).pdf',NULL,NULL),(218,'FA1909-0025',1,NULL,NULL,0,NULL,NULL,12,'2019-09-26 17:30:14','2022-09-26','2022-09-26 00:00:00',NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.08000000,0.00000000,0.00000000,0.00000000,42.50000000,43.58000000,1,12,NULL,12,NULL,NULL,NULL,NULL,NULL,0,0,'2022-09-26',NULL,NULL,'',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,0,'',NULL,NULL,0,'EUR',1.00000000,42.50000000,1.08000000,43.58000000,NULL,NULL,'takepos','1'),(219,'(PROV-POS1-0)',1,NULL,NULL,0,NULL,NULL,1,'2019-11-28 19:04:03','2022-11-28',NULL,NULL,'2022-12-11 21:23:22',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,5.00000000,6.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,'2022-11-28',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,5.00000000,1.00000000,6.00000000,NULL,NULL,'takepos','1'),(220,'(PROV220)',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:03:17','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,100.00000000,100.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,100.00000000,0.00000000,100.00000000,NULL,NULL,NULL,NULL),(221,'AC2001-0001',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:21:05','2022-01-16','2022-01-16 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,123.00000000,123.00000000,0,12,NULL,12,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,123.00000000,0.00000000,123.00000000,NULL,'facture/AC2001-0001/AC2001-0001.pdf',NULL,NULL),(222,'(PROV222)',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:21:28','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,100.00000000,100.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,100.00000000,0.00000000,100.00000000,NULL,NULL,NULL,NULL),(223,'(PROV223)',1,NULL,NULL,0,NULL,NULL,19,'2020-01-16 02:32:04','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,410.00000000,410.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,0,'2021-02-15',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,410.00000000,0.00000000,410.00000000,NULL,NULL,NULL,NULL),(224,'AC2001-0002',1,NULL,NULL,3,NULL,NULL,19,'2020-01-16 02:33:19','2022-01-16','2022-01-16 00:00:00','2020-01-16 02:36:48','2022-02-07 13:37:54',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,20.50000000,20.50000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2022-01-16',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,20.50000000,0.00000000,20.50000000,NULL,'facture/AC2001-0002/AC2001-0002.pdf',NULL,NULL),(225,'(PROV225)',1,NULL,NULL,0,NULL,NULL,19,'2020-01-16 02:37:48','2022-01-16',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,389.50000000,389.50000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,0,'2021-02-15',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,389.50000000,0.00000000,389.50000000,NULL,'facture/(PROV225)/(PROV225).pdf',NULL,NULL),(226,'(PROV226)',1,NULL,NULL,3,NULL,NULL,11,'2020-01-19 14:20:54','2022-01-19',NULL,NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,12.50000000,0.00000000,0.00000000,0.00000000,120.00000000,132.50000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,120.00000000,12.50000000,132.50000000,NULL,'facture/(PROV226)/(PROV226).pdf',NULL,NULL),(227,'AC2001-0003',1,NULL,NULL,3,NULL,NULL,1,'2020-01-19 14:22:54','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,39.20000000,0.00000000,0.00000000,0.00000000,200.00000000,239.20000000,0,12,NULL,12,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,200.00000000,39.20000000,239.20000000,NULL,'facture/AC2001-0003/AC2001-0003.pdf',NULL,NULL),(228,'AC2001-0004',1,NULL,NULL,3,NULL,NULL,1,'2020-01-19 14:24:49','2022-01-19','2022-01-19 00:00:00',NULL,'2022-02-07 13:37:54',0,0.00000000,NULL,NULL,0,NULL,NULL,NULL,1.94000000,0.00000000,0.00000000,0.00000000,48.60000000,50.54000000,1,12,NULL,12,NULL,NULL,NULL,NULL,NULL,1,0,'2022-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,1,'EUR',1.00000000,48.60000000,1.94000000,50.54000000,NULL,'facture/AC2001-0004/AC2001-0004.pdf',NULL,NULL),(229,'FA1707-0026',1,NULL,NULL,0,NULL,NULL,12,'2020-01-21 10:23:17','2022-07-18','2023-01-21 00:00:00','2020-01-21 10:23:17','2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2022-07-18',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL,'facture/FA1707-0026/FA1707-0026.pdf',NULL,NULL),(230,'FA1807-0027',1,NULL,NULL,0,NULL,NULL,12,'2020-01-21 10:23:28','2022-07-18','2022-01-21 00:00:00','2020-01-21 10:23:28','2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2022-07-18',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL,'facture/FA1807-0027/FA1807-0027.pdf',NULL,NULL),(231,'FA1907-0028',1,NULL,NULL,0,NULL,NULL,12,'2020-01-21 10:23:49','2022-07-18','2022-01-21 00:00:00','2020-01-21 10:23:49','2022-12-11 21:23:22',1,0.00000000,NULL,NULL,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,2,12,NULL,12,12,NULL,NULL,NULL,NULL,1,0,'2022-07-18',NULL,NULL,'',NULL,NULL,NULL,NULL,0,0,NULL,0,0,'',NULL,NULL,0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL,'facture/FA1907-0028/FA1907-0028.pdf',NULL,NULL); /*!40000 ALTER TABLE `llx_facture` ENABLE KEYS */; UNLOCK TABLES; @@ -6848,7 +6928,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facture_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -6872,21 +6952,22 @@ DROP TABLE IF EXISTS `llx_facture_fourn`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_facture_fourn` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, - `ref_supplier` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(255) NOT NULL, + `ref_supplier` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, `type` smallint(6) NOT NULL DEFAULT 0, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, `datef` date DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `libelle` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `libelle` varchar(255) DEFAULT NULL, `paye` smallint(6) NOT NULL DEFAULT 0, `amount` double(24,8) NOT NULL DEFAULT 0.00000000, `remise` double(24,8) DEFAULT 0.00000000, - `close_code` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `close_note` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `close_code` varchar(16) DEFAULT NULL, + `close_missing_amount` double(24,8) DEFAULT NULL, + `close_note` varchar(128) DEFAULT NULL, `tva` double(24,8) DEFAULT 0.00000000, `localtax1` double(24,8) DEFAULT 0.00000000, `localtax2` double(24,8) DEFAULT 0.00000000, @@ -6904,21 +6985,21 @@ 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 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, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, `fk_transport_mode` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `date_pointoftax` date DEFAULT NULL, `date_valid` date DEFAULT NULL, `date_closing` datetime DEFAULT NULL, @@ -6944,7 +7025,7 @@ CREATE TABLE `llx_facture_fourn` ( LOCK TABLES `llx_facture_fourn` WRITE; /*!40000 ALTER TABLE `llx_facture_fourn` DISABLE KEYS */; -INSERT INTO `llx_facture_fourn` VALUES (16,'SI1601-0001','FR70813',1,NULL,0,1,'2014-12-19 15:24:11','2003-04-11','2017-02-06 04:08:22','OVH FR70813',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,829.00000000,162.48000000,991.48000000,1,1,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2003-04-11','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,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); +INSERT INTO `llx_facture_fourn` VALUES (16,'SI1601-0001','FR70813',1,NULL,0,1,'2014-12-19 15:24:11','2003-04-11','2017-02-06 04:08:22','OVH FR70813',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,829.00000000,162.48000000,991.48000000,1,1,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2003-04-11','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL),(17,'SI1601-0002','FR81385',1,NULL,0,1,'2015-02-13 17:19:35','2003-06-04','2019-10-04 08:31:30','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,1,1,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2003-06-04','','','canelle',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,'2019-10-04',NULL,NULL),(18,'SI1601-0003','FR81385',1,NULL,0,2,'2015-02-13 17:20:25','2003-06-04','2017-02-06 04:08:35','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'2003-06-04','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL),(19,'SI1601-0004','FR813852',1,NULL,0,2,'2015-03-16 17:59:02','2015-03-16','2017-02-06 04:08:38','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,'','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL),(20,'SI1702-0001','INV-AE56ER08',1,NULL,0,13,'2017-02-01 19:00:31','2017-02-01','2017-02-01 15:05:28','',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,200.00000000,39.20000000,239.20000000,1,12,NULL,12,NULL,NULL,5,NULL,1,0,'2017-02-01','The customer has called us the 24th april. He agree us to not pay the remain of invoice due to default.
\r\nLet\'s see with our book keeper, if we must cancel invoice or ask the supplier a credit note...',NULL,'canelle',NULL,NULL,0,'',NULL,0,'EUR',1.00000000,200.00000000,39.20000000,239.20000000,NULL,NULL,NULL,NULL,NULL),(21,'SI1911-0005','NL-123',1,NULL,0,10,'2019-11-28 15:54:30','2019-11-28','2019-11-28 11:54:46','',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,450.00000000,0.00000000,450.00000000,1,12,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2019-11-28','','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,450.00000000,0.00000000,450.00000000,NULL,NULL,'2019-11-28',NULL,NULL),(22,'SI2001-0006','INV20200101',1,NULL,0,17,'2020-01-01 17:48:01','2020-01-01','2020-01-16 17:05:43','',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,357.00000000,43.75000000,400.75000000,1,12,NULL,12,NULL,NULL,NULL,1,1,2,'2020-01-01','','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,357.00000000,43.75000000,400.75000000,NULL,NULL,'2020-01-16',NULL,NULL),(27,'SA2001-0001','CN01',1,NULL,2,17,'2020-01-01 20:21:51','2020-01-01','2022-02-07 13:38:10','',1,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,-350.00000000,-43.75000000,-393.75000000,2,12,12,12,NULL,22,NULL,NULL,1,NULL,NULL,'','ddd',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,-350.00000000,-43.75000000,-393.75000000,NULL,NULL,'2020-01-01',NULL,NULL),(28,'SI2001-0007','INV02',1,NULL,0,17,'2020-01-01 20:22:48','2020-01-01','2020-01-01 18:06:02','',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,79.17000000,9.89000000,89.06000000,1,12,NULL,12,NULL,NULL,NULL,NULL,1,NULL,'2020-01-01','','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,79.17000000,9.89000000,89.06000000,NULL,NULL,'2020-01-01',NULL,NULL),(30,'SA2001-0002','555',1,NULL,2,1,'2020-01-01 20:51:32','2020-01-01','2020-01-01 17:15:57','',0,0.00000000,0.00000000,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,-26.00000000,-5.10000000,-31.10000000,1,12,NULL,12,NULL,17,NULL,NULL,1,NULL,NULL,'','',NULL,NULL,NULL,0,'',NULL,1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,'2020-01-01',NULL,NULL); /*!40000 ALTER TABLE `llx_facture_fourn` ENABLE KEYS */; UNLOCK TABLES; @@ -6960,20 +7041,20 @@ CREATE TABLE `llx_facture_fourn_det` ( `fk_facture_fourn` int(11) NOT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `ref` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `pu_ht` double(24,8) DEFAULT NULL, `pu_ttc` double(24,8) DEFAULT NULL, `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `fk_remise_except` int(11) DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `total_ht` double(24,8) DEFAULT NULL, `tva` double(24,8) DEFAULT NULL, `total_localtax1` double(24,8) DEFAULT 0.00000000, @@ -6983,13 +7064,13 @@ CREATE TABLE `llx_facture_fourn_det` ( `date_start` datetime DEFAULT NULL, `date_end` datetime DEFAULT NULL, `info_bits` int(11) NOT NULL DEFAULT 0, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_code_ventilation` int(11) NOT NULL DEFAULT 0, `special_code` int(11) DEFAULT 0, `rang` int(11) DEFAULT 0, `fk_unit` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -7026,7 +7107,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facture_fourn_det_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -7053,20 +7134,20 @@ CREATE TABLE `llx_facture_fourn_det_rec` ( `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, + `ref` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `pu_ht` double(24,8) DEFAULT NULL, `pu_ttc` double(24,8) DEFAULT NULL, `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `fk_remise_except` int(11) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `tva_tx` double(7,4) DEFAULT NULL, `localtax1_tx` double(7,4) DEFAULT 0.0000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax1_type` varchar(10) DEFAULT NULL, `localtax2_tx` double(7,4) DEFAULT 0.0000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(10) DEFAULT NULL, `total_ht` double(24,8) DEFAULT NULL, `total_tva` double(24,8) DEFAULT NULL, `total_localtax1` double(24,8) DEFAULT 0.00000000, @@ -7079,11 +7160,11 @@ CREATE TABLE `llx_facture_fourn_det_rec` ( `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, + `import_key` varchar(14) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -7114,7 +7195,7 @@ 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, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `llx_facture_fourn_det_rec_extrafields` (`fk_object`), KEY `idx_facture_fourn_det_rec_extrafields` (`fk_object`) @@ -7141,7 +7222,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facture_fourn_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -7165,17 +7246,17 @@ DROP TABLE IF EXISTS `llx_facture_fourn_rec`; /*!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, + `titre` varchar(200) NOT NULL, + `ref_supplier` varchar(180) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `suspended` int(11) DEFAULT 0, - `libelle` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `libelle` varchar(255) 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 '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1` double(24,8) DEFAULT 0.00000000, `localtax2` double(24,8) DEFAULT 0.00000000, `total_ht` double(24,8) DEFAULT 0.00000000, @@ -7188,18 +7269,18 @@ CREATE TABLE `llx_facture_fourn_rec` ( `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, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `modelpdf` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, `usenewprice` int(11) DEFAULT 0, `frequency` int(11) DEFAULT NULL, - `unit_frequency` varchar(2) COLLATE utf8mb3_unicode_ci DEFAULT 'm', + `unit_frequency` varchar(2) DEFAULT 'm', `date_when` datetime DEFAULT NULL, `date_last_gen` datetime DEFAULT NULL, `nb_gen_done` int(11) DEFAULT NULL, @@ -7239,7 +7320,7 @@ 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, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facture_fourn_rec_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -7263,7 +7344,7 @@ DROP TABLE IF EXISTS `llx_facture_rec`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_facture_rec` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `titre` varchar(200) COLLATE utf8mb3_unicode_ci NOT NULL, + `titre` varchar(200) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, @@ -7281,11 +7362,11 @@ CREATE TABLE `llx_facture_rec` ( `fk_cond_reglement` int(11) NOT NULL DEFAULT 1, `fk_mode_reglement` int(11) DEFAULT 0, `date_lim_reglement` date DEFAULT NULL, - `note_private` text COLLATE 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', + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `modelpdf` varchar(255) DEFAULT NULL, + `last_gen` varchar(7) DEFAULT NULL, + `unit_frequency` varchar(2) DEFAULT 'd', `date_when` datetime DEFAULT NULL, `date_last_gen` datetime DEFAULT NULL, `nb_gen_done` int(11) DEFAULT NULL, @@ -7297,14 +7378,14 @@ CREATE TABLE `llx_facture_rec` ( `generate_pdf` int(11) DEFAULT 1, `fk_account` int(11) DEFAULT 0, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, `fk_user_modif` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `suspended` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_facture_rec_uk_titre` (`titre`,`entity`), @@ -7338,7 +7419,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facture_rec_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -7365,14 +7446,14 @@ CREATE TABLE `llx_facturedet` ( `fk_facture` int(11) NOT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -7394,19 +7475,19 @@ CREATE TABLE `llx_facturedet` ( `special_code` int(10) unsigned DEFAULT 0, `rang` int(11) DEFAULT 0, `fk_contract_line` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `situation_percent` double DEFAULT 100, `fk_prev_id` int(11) DEFAULT NULL, `fk_unit` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_fk_remise_except` (`fk_remise_except`,`fk_facture`), KEY `idx_facturedet_fk_facture` (`fk_facture`), @@ -7439,7 +7520,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facturedet_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -7467,14 +7548,14 @@ CREATE TABLE `llx_facturedet_rec` ( `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, `product_type` int(11) DEFAULT 0, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -7490,9 +7571,9 @@ CREATE TABLE `llx_facturedet_rec` ( `rang` int(11) DEFAULT 0, `fk_contract_line` int(11) DEFAULT NULL, `fk_unit` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -7530,7 +7611,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_facturedet_rec_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -7557,7 +7638,7 @@ CREATE TABLE `llx_fichinter` ( `fk_soc` int(11) NOT NULL, `fk_projet` int(11) DEFAULT 0, `fk_contrat` int(11) DEFAULT 0, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, @@ -7571,15 +7652,15 @@ CREATE TABLE `llx_fichinter` ( `dateo` date DEFAULT NULL, `datee` date DEFAULT NULL, `datet` date 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, + `description` text DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_client` varchar(255) DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_fichinter_ref` (`ref`,`entity`), KEY `idx_fichinter_fk_soc` (`fk_soc`), @@ -7608,7 +7689,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_ficheinter_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -7632,7 +7713,7 @@ DROP TABLE IF EXISTS `llx_fichinter_rec`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_fichinter_rec` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `titre` varchar(50) COLLATE utf8mb3_unicode_ci NOT NULL, + `titre` varchar(50) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) DEFAULT NULL, `datec` datetime DEFAULT NULL, @@ -7640,12 +7721,12 @@ CREATE TABLE `llx_fichinter_rec` ( `fk_user_author` int(11) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `duree` double DEFAULT NULL, - `description` text COLLATE 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, + `description` text DEFAULT NULL, + `modelpdf` varchar(50) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `frequency` int(11) DEFAULT NULL, - `unit_frequency` varchar(2) COLLATE utf8mb3_unicode_ci DEFAULT 'm', + `unit_frequency` varchar(2) DEFAULT 'm', `date_when` datetime DEFAULT NULL, `date_last_gen` datetime DEFAULT NULL, `nb_gen_done` int(11) DEFAULT NULL, @@ -7682,7 +7763,7 @@ CREATE TABLE `llx_fichinterdet` ( `fk_fichinter` int(11) DEFAULT NULL, `fk_parent_line` int(11) DEFAULT NULL, `date` datetime DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `duree` int(11) DEFAULT NULL, `rang` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), @@ -7712,7 +7793,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_ficheinterdet_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -7738,22 +7819,21 @@ CREATE TABLE `llx_fichinterdet_rec` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_fichinter` int(11) NOT NULL, `date` datetime DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `duree` int(11) DEFAULT NULL, `rang` int(11) DEFAULT 0, `total_ht` double(24,8) DEFAULT NULL, `subprice` double(24,8) DEFAULT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(1) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax1_type` varchar(1) DEFAULT NULL, `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(1) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(1) DEFAULT NULL, `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, - `remise` double DEFAULT 0, `fk_remise_except` int(11) DEFAULT NULL, `price` double(24,8) DEFAULT NULL, `total_tva` double(24,8) DEFAULT NULL, @@ -7767,10 +7847,9 @@ CREATE TABLE `llx_fichinterdet_rec` ( `buy_price_ht` double(24,8) DEFAULT 0.00000000, `fk_product_fournisseur_price` int(11) DEFAULT NULL, `fk_code_ventilation` int(11) NOT NULL DEFAULT 0, - `fk_export_commpta` int(11) NOT NULL DEFAULT 0, `special_code` int(10) unsigned DEFAULT 0, `fk_unit` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -7795,7 +7874,7 @@ CREATE TABLE `llx_holiday` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_user` int(11) NOT NULL, `date_create` datetime NOT NULL, - `description` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` varchar(255) NOT NULL, `date_debut` date NOT NULL, `date_fin` date NOT NULL, `halfday` int(11) DEFAULT 0, @@ -7807,20 +7886,20 @@ 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 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, + `detail_refuse` varchar(250) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note` text DEFAULT NULL, `fk_user_create` int(11) DEFAULT NULL, `fk_type` int(11) NOT NULL DEFAULT 1, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(30) COLLATE 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, + `ref` varchar(30) NOT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `date_approve` datetime DEFAULT NULL, + `date_approval` datetime DEFAULT NULL, `fk_user_approve` int(11) DEFAULT NULL, `nb_open_day` double(24,8) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -7840,7 +7919,7 @@ CREATE TABLE `llx_holiday` ( LOCK TABLES `llx_holiday` WRITE; /*!40000 ALTER TABLE `llx_holiday` DISABLE KEYS */; -INSERT INTO `llx_holiday` VALUES (1,1,'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); +INSERT INTO `llx_holiday` VALUES (1,1,'2022-02-17 19:06:35','gdf','2022-02-10','2022-02-11',0,3,1,'2022-02-17 19:06:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'2022-12-11 21:23:35',1,'1',NULL,NULL,NULL,NULL,'2022-02-17 19:06:57',1,NULL),(2,12,'2022-01-22 19:10:01','','2021-12-28','2022-01-03',0,1,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,5,'2022-02-07 13:37:54',1,'2',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,13,'2022-01-22 19:10:29','','2022-01-11','2022-01-13',0,2,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,5,'2022-02-07 13:37:54',1,'3',NULL,NULL,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_holiday` ENABLE KEYS */; UNLOCK TABLES; @@ -7853,8 +7932,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `value` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `name` varchar(128) DEFAULT NULL, + `value` text DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `name` (`name`), UNIQUE KEY `idx_holiday_config` (`name`) @@ -7867,7 +7946,7 @@ CREATE TABLE `llx_holiday_config` ( LOCK TABLES `llx_holiday_config` WRITE; /*!40000 ALTER TABLE `llx_holiday_config` DISABLE KEYS */; -INSERT INTO `llx_holiday_config` VALUES (1,'userGroup','1'),(2,'lastUpdate','20220207142959'),(3,'nbUser',''),(4,'delayForRequest','31'),(5,'AlertValidatorDelay','0'),(6,'AlertValidatorSolde','0'),(7,'nbHolidayDeducted','1'),(8,'nbHolidayEveryMonth','2.08334'); +INSERT INTO `llx_holiday_config` VALUES (1,'userGroup','1'),(2,'lastUpdate','20221211212543'),(3,'nbUser',''),(4,'delayForRequest','31'),(5,'AlertValidatorDelay','0'),(6,'AlertValidatorSolde','0'),(7,'nbHolidayDeducted','1'),(8,'nbHolidayEveryMonth','2.08334'); /*!40000 ALTER TABLE `llx_holiday_config` ENABLE KEYS */; UNLOCK TABLES; @@ -7882,7 +7961,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_holiday_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -7909,9 +7988,9 @@ 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 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, + `type_action` varchar(255) NOT NULL, + `prev_solde` varchar(255) NOT NULL, + `new_solde` varchar(255) NOT NULL, `fk_type` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -7961,16 +8040,16 @@ DROP TABLE IF EXISTS `llx_hrm_evaluation`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_hrm_evaluation` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE 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, + `ref` varchar(128) NOT NULL DEFAULT '(PROV)', + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` smallint(6) NOT NULL, `date_eval` date DEFAULT NULL, `fk_user` int(11) NOT NULL, @@ -8004,7 +8083,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_evaluation_fk_object` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -8036,7 +8115,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_hrm_evaluationdet_rowid` (`rowid`), KEY `llx_hrm_evaluationdet_fk_user_creat` (`fk_user_creat`), @@ -8066,7 +8145,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_evaluationdet_fk_object` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -8090,13 +8169,13 @@ 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 utf8mb3_unicode_ci NOT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `deplacement` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `deplacement` varchar(255) DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -8125,7 +8204,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_job_fk_object` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -8149,7 +8228,7 @@ DROP TABLE IF EXISTS `llx_hrm_job_user`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_hrm_job_user` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_contrat` int(11) DEFAULT NULL, @@ -8157,9 +8236,9 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `abort_comment` varchar(255) DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -8185,8 +8264,8 @@ DROP TABLE IF EXISTS `llx_hrm_skill`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_hrm_skill` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, @@ -8195,8 +8274,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_hrm_skill_rowid` (`rowid`), KEY `llx_hrm_skill_fk_user_creat` (`fk_user_creat`), @@ -8225,7 +8304,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_skill_fk_object` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -8249,7 +8328,7 @@ DROP TABLE IF EXISTS `llx_hrm_skilldet`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_hrm_skilldet` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text DEFAULT NULL, `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_skill` int(11) NOT NULL, @@ -8286,7 +8365,7 @@ 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 utf8mb3_unicode_ci NOT NULL, + `objecttype` varchar(128) NOT NULL, PRIMARY KEY (`rowid`), KEY `idx_hrm_skillrank_rowid` (`rowid`), KEY `idx_hrm_skillrank_fk_skill` (`fk_skill`), @@ -8314,9 +8393,9 @@ 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 utf8mb3_unicode_ci NOT NULL, - `type` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `field` text COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(50) NOT NULL, + `type` varchar(64) DEFAULT NULL, + `field` text NOT NULL, `entity` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_import_model` (`label`,`type`) @@ -8342,13 +8421,13 @@ DROP TABLE IF EXISTS `llx_intracommreport`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_intracommreport` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) CHARACTER SET utf8mb4 NOT NULL, + `ref` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `type_declaration` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL, - `periods` varchar(32) COLLATE 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, + `type_declaration` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `periods` varchar(32) DEFAULT NULL, + `mode` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `content_xml` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `type_export` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`) @@ -8373,11 +8452,11 @@ DROP TABLE IF EXISTS `llx_inventory`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_inventory` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(64) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_warehouse` int(11) DEFAULT NULL, `date_inventory` date DEFAULT NULL, - `title` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `title` varchar(255) DEFAULT NULL, `status` int(11) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `date_validation` datetime DEFAULT NULL, @@ -8385,9 +8464,10 @@ CREATE TABLE `llx_inventory` ( `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `datec` datetime DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, + `categories_product` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_inventory_ref` (`ref`,`entity`), KEY `idx_inventory_rowid` (`rowid`), @@ -8407,7 +8487,7 @@ CREATE TABLE `llx_inventory` ( LOCK TABLES `llx_inventory` WRITE; /*!40000 ALTER TABLE `llx_inventory` DISABLE KEYS */; -INSERT INTO `llx_inventory` VALUES (1,'aaa',1,NULL,NULL,'aa aaa',0,'2020-01-10 01:41:10',NULL,'2020-01-09 21:41:10',12,12,NULL,NULL,NULL,4); +INSERT INTO `llx_inventory` VALUES (1,'aaa',1,NULL,NULL,'aa aaa',0,'2020-01-10 01:41:10',NULL,'2020-01-09 21:41:10',12,12,NULL,NULL,NULL,4,NULL); /*!40000 ALTER TABLE `llx_inventory` ENABLE KEYS */; UNLOCK TABLES; @@ -8422,7 +8502,7 @@ 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, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_inventory_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -8451,7 +8531,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `batch` varchar(30) DEFAULT NULL, `qty_view` double DEFAULT NULL, `qty_stock` double DEFAULT NULL, `qty_regulated` double DEFAULT NULL, @@ -8484,22 +8564,22 @@ 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 utf8mb3_unicode_ci NOT NULL, + `ref` varchar(128) NOT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE 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, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `question` text NOT NULL, + `answer` text DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, `fk_ticket` int(11) DEFAULT NULL, `fk_c_ticket_category` int(11) DEFAULT NULL, `status` int(11) NOT NULL, - `lang` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lang` varchar(6) DEFAULT NULL, `entity` int(11) DEFAULT 1, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -8526,7 +8606,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8551,9 +8631,9 @@ 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 utf8mb3_unicode_ci NOT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, - `objecttype` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `url` varchar(255) NOT NULL, + `label` varchar(255) NOT NULL, + `objecttype` varchar(255) NOT NULL, `objectid` int(11) NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_links` (`objectid`,`label`) @@ -8582,21 +8662,21 @@ 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 utf8mb3_unicode_ci NOT NULL, + `label` varchar(80) NOT NULL, `fk_bank` int(11) DEFAULT NULL, `capital` double(24,8) DEFAULT NULL, `datestart` date DEFAULT NULL, `dateend` date DEFAULT NULL, `nbterm` double DEFAULT NULL, `rate` double NOT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `capital_position` double(24,8) DEFAULT NULL, `date_position` date DEFAULT NULL, `paid` smallint(6) NOT NULL DEFAULT 0, - `accountancy_account_capital` varchar(32) COLLATE 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, + `accountancy_account_capital` varchar(32) DEFAULT NULL, + `accountancy_account_insurance` varchar(32) DEFAULT NULL, + `accountancy_account_interest` varchar(32) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, @@ -8633,9 +8713,9 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -8668,8 +8748,8 @@ CREATE TABLE `llx_localtax` ( `datep` date DEFAULT NULL, `datev` date DEFAULT NULL, `amount` double NOT NULL DEFAULT 0, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -8696,18 +8776,18 @@ DROP TABLE IF EXISTS `llx_mailing`; CREATE TABLE `llx_mailing` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `statut` smallint(6) DEFAULT 0, - `titre` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `titre` varchar(128) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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, + `sujet` varchar(128) DEFAULT NULL, + `body` mediumtext DEFAULT NULL, + `bgcolor` varchar(8) DEFAULT NULL, + `bgimage` varchar(255) DEFAULT NULL, + `cible` varchar(60) DEFAULT NULL, `nbemail` int(11) DEFAULT NULL, - `email_from` varchar(160) COLLATE 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, + `email_from` varchar(160) DEFAULT NULL, + `email_replyto` varchar(160) DEFAULT NULL, + `email_errorsto` varchar(160) DEFAULT NULL, + `tag` varchar(128) DEFAULT NULL, `date_creat` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, `date_appro` datetime DEFAULT NULL, @@ -8715,11 +8795,11 @@ 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 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, + `joined_file1` varchar(255) DEFAULT NULL, + `joined_file2` varchar(255) DEFAULT NULL, + `joined_file3` varchar(255) DEFAULT NULL, + `joined_file4` varchar(255) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), UNIQUE KEY `uk_mailing` (`titre`,`entity`) @@ -8745,15 +8825,15 @@ DROP TABLE IF EXISTS `llx_mailing_advtarget`; /*!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, + `name` varchar(200) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `filtervalue` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `filtervalue` text DEFAULT NULL, `fk_user_author` int(11) NOT NULL, `datec` datetime NOT NULL, `fk_user_mod` int(11) NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_element` int(11) NOT NULL, - `type_element` varchar(180) COLLATE utf8mb3_unicode_ci NOT NULL, + `type_element` varchar(180) NOT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_advtargetemailing_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -8779,17 +8859,17 @@ 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 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, + `lastname` varchar(160) DEFAULT NULL, + `firstname` varchar(160) DEFAULT NULL, + `email` varchar(160) NOT NULL, + `other` varchar(255) DEFAULT NULL, + `tag` varchar(64) DEFAULT NULL, `statut` smallint(6) NOT NULL DEFAULT 0, - `source_url` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `source_url` varchar(255) DEFAULT NULL, `source_id` int(11) DEFAULT NULL, - `source_type` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `source_type` varchar(32) DEFAULT NULL, `date_envoi` datetime DEFAULT NULL, - `error_text` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `error_text` varchar(255) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), UNIQUE KEY `uk_mailing_cibles` (`fk_mailing`,`email`), @@ -8818,9 +8898,9 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `unsubscribegroup` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT '', - `ip` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `unsubscribegroup` varchar(128) DEFAULT '', + `ip` varchar(128) DEFAULT NULL, `date_creat` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), @@ -8846,30 +8926,30 @@ DROP TABLE IF EXISTS `llx_menu`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_menu` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `menu_handler` varchar(16) COLLATE utf8mb3_unicode_ci NOT NULL, + `menu_handler` varchar(16) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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, + `module` varchar(255) DEFAULT NULL, + `type` varchar(4) NOT NULL, + `mainmenu` varchar(100) NOT NULL, `fk_menu` int(11) NOT NULL, - `fk_leftmenu` varchar(100) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `fk_mainmenu` varchar(100) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_leftmenu` varchar(100) DEFAULT NULL, + `fk_mainmenu` varchar(100) DEFAULT NULL, `position` int(11) NOT NULL, - `url` varchar(255) COLLATE 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, + `url` varchar(255) NOT NULL, + `target` varchar(100) DEFAULT NULL, + `titre` varchar(255) NOT NULL, + `prefix` varchar(255) DEFAULT NULL, + `langs` varchar(100) DEFAULT NULL, `level` smallint(6) DEFAULT NULL, - `leftmenu` varchar(100) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `perms` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `enabled` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `leftmenu` varchar(100) DEFAULT NULL, + `perms` text DEFAULT NULL, + `enabled` text DEFAULT NULL, `usertype` int(11) NOT NULL DEFAULT 0, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`), UNIQUE KEY `idx_menu_uk_menu` (`menu_handler`,`fk_menu`,`position`,`url`,`entity`), KEY `idx_menu_menuhandler_type` (`menu_handler`,`type`) -) ENGINE=InnoDB AUTO_INCREMENT=167331 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=167380 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8878,7 +8958,7 @@ CREATE TABLE `llx_menu` ( LOCK TABLES `llx_menu` WRITE; /*!40000 ALTER TABLE `llx_menu` DISABLE KEYS */; -INSERT INTO `llx_menu` VALUES (103094,'all',2,'agenda','top','agenda',0,NULL,NULL,100,'/comm/action/index.php','','Agenda',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103095,'all',2,'agenda','left','agenda',103094,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Actions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103096,'all',2,'agenda','left','agenda',103095,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&leftmenu=agenda&action=create','','NewAction',NULL,'commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103097,'all',2,'agenda','left','agenda',103095,NULL,NULL,102,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Calendar',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103098,'all',2,'agenda','left','agenda',103097,NULL,NULL,103,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103099,'all',2,'agenda','left','agenda',103097,NULL,NULL,104,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103100,'all',2,'agenda','left','agenda',103097,NULL,NULL,105,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103101,'all',2,'agenda','left','agenda',103097,NULL,NULL,106,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103102,'all',2,'agenda','left','agenda',103095,NULL,NULL,112,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda','','List',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103103,'all',2,'agenda','left','agenda',103102,NULL,NULL,113,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103104,'all',2,'agenda','left','agenda',103102,NULL,NULL,114,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103105,'all',2,'agenda','left','agenda',103102,NULL,NULL,115,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103106,'all',2,'agenda','left','agenda',103102,NULL,NULL,116,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103107,'all',2,'agenda','left','agenda',103095,NULL,NULL,120,'/comm/action/rapport/index.php?mainmenu=agenda&leftmenu=agenda','','Reportings',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103134,'all',2,'opensurvey','top','opensurvey',0,NULL,NULL,200,'/opensurvey/index.php','','Surveys',NULL,'opensurvey',NULL,NULL,'$user->rights->opensurvey->survey->read','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103135,'all',2,'opensurvey','left','opensurvey',-1,NULL,'opensurvey',200,'/opensurvey/index.php?mainmenu=opensurvey&leftmenu=opensurvey','','Survey',NULL,'opensurvey@opensurvey',NULL,'opensurvey','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103136,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',210,'/opensurvey/public/index.php','_blank','NewSurvey',NULL,'opensurvey@opensurvey',NULL,'opensurvey_new','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103137,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',220,'/opensurvey/list.php','','List',NULL,'opensurvey@opensurvey',NULL,'opensurvey_list','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(161088,'auguria',1,'','top','home',0,NULL,NULL,10,'/index.php?mainmenu=home&leftmenu=','','Home',NULL,'',-1,'','','1',2,'2017-08-30 15:14:30'),(161089,'auguria',1,'societe|fournisseur','top','companies',0,NULL,NULL,20,'/societe/index.php?mainmenu=companies&leftmenu=','','ThirdParties',NULL,'companies',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)',2,'2017-08-30 15:14:30'),(161090,'auguria',1,'product|service','top','products',0,NULL,NULL,30,'/product/index.php?mainmenu=products&leftmenu=','','Products/Services',NULL,'products',-1,'','$user->rights->produit->lire||$user->rights->service->lire','$conf->product->enabled || $conf->service->enabled',0,'2017-08-30 15:14:30'),(161092,'auguria',1,'propal|commande|fournisseur|contrat|ficheinter','top','commercial',0,NULL,NULL,40,'/comm/index.php?mainmenu=commercial&leftmenu=','','Commercial',NULL,'commercial',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','$conf->propal->enabled || $conf->commande->enabled || $conf->supplier_order->enabled || $conf->contrat->enabled || $conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(161093,'auguria',1,'comptabilite|accounting|facture|don|tax|salaries|loan','top','accountancy',0,NULL,NULL,50,'/compta/index.php?mainmenu=accountancy&leftmenu=','','MenuFinancial',NULL,'compta',-1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire || $user->rights->facture->lire|| $user->rights->don->lire || $user->rights->tax->charges->lire || $user->rights->salaries->read || $user->rights->loan->read','$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->don->enabled || $conf->tax->enabled || $conf->salaries->enabled || $conf->supplier_invoice->enabled || $conf->loan->enabled',2,'2017-08-30 15:14:30'),(161094,'auguria',1,'projet','top','project',0,NULL,NULL,70,'/projet/index.php?mainmenu=project&leftmenu=','','Projects',NULL,'projects',-1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(161095,'auguria',1,'mailing|export|import|opensurvey|resource','top','tools',0,NULL,NULL,90,'/core/tools.php?mainmenu=tools&leftmenu=','','Tools',NULL,'other',-1,'','$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run || $user->rights->opensurvey->read || $user->rights->resource->read','$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled || $conf->opensurvey->enabled || $conf->resource->enabled',2,'2017-08-30 15:14:30'),(161101,'auguria',1,'banque|prelevement','top','bank',0,NULL,NULL,60,'/compta/bank/index.php?mainmenu=bank&leftmenu=bank','','MenuBankCash',NULL,'banks',-1,'','$user->rights->banque->lire || $user->rights->prelevement->bons->lire','$conf->banque->enabled || $conf->prelevement->enabled',0,'2017-08-30 15:14:30'),(161102,'auguria',1,'hrm|holiday|deplacement|expensereport','top','hrm',0,NULL,NULL,80,'/hrm/index.php?mainmenu=hrm&leftmenu=','','HRM',NULL,'holiday',-1,'','$user->rights->hrm->employee->read || $user->rights->holiday->write || $user->rights->deplacement->lire || $user->rights->expensereport->lire','$conf->hrm->enabled || $conf->holiday->enabled || $conf->deplacement->enabled || $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(161177,'auguria',1,'','left','home',161088,NULL,NULL,0,'/index.php','','MyDashboard',NULL,'',0,'','','1',2,'2017-08-30 15:14:30'),(161187,'auguria',1,'','left','home',161088,NULL,NULL,1,'/admin/index.php?leftmenu=setup','','Setup',NULL,'admin',0,'setup','','$user->admin',2,'2017-08-30 15:14:30'),(161188,'auguria',1,'','left','home',161187,NULL,NULL,1,'/admin/company.php?leftmenu=setup','','MenuCompanySetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161189,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/ihm.php?leftmenu=setup','','GUISetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161190,'auguria',1,'','left','home',161187,NULL,NULL,2,'/admin/modules.php?leftmenu=setup','','Modules',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161191,'auguria',1,'','left','home',161187,NULL,NULL,6,'/admin/boxes.php?leftmenu=setup','','Boxes',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161192,'auguria',1,'','left','home',161187,NULL,NULL,3,'/admin/menus.php?leftmenu=setup','','Menus',NULL,'admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:47'),(161193,'auguria',1,'','left','home',161187,NULL,NULL,7,'/admin/delais.php?leftmenu=setup','','Alerts',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161194,'auguria',1,'','left','home',161187,NULL,NULL,10,'/admin/pdf.php?leftmenu=setup','','PDF',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161195,'auguria',1,'','left','home',161187,NULL,NULL,8,'/admin/security_other.php?leftmenu=setup','','Security',NULL,'admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:36'),(161196,'auguria',1,'','left','home',161187,NULL,NULL,11,'/admin/mails.php?leftmenu=setup','','Emails',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161197,'auguria',1,'','left','home',161187,NULL,NULL,9,'/admin/limits.php?leftmenu=setup','','MenuLimits',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161198,'auguria',1,'','left','home',161187,NULL,NULL,13,'/admin/dict.php?leftmenu=setup','','Dictionary',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161199,'auguria',1,'','left','home',161187,NULL,NULL,14,'/admin/const.php?leftmenu=setup','','OtherSetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161200,'auguria',1,'','left','home',161187,NULL,NULL,12,'/admin/sms.php?leftmenu=setup','','SMS',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161201,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/translation.php?leftmenu=setup','','Translation',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161288,'auguria',1,'','left','home',161387,NULL,NULL,0,'/admin/system/dolibarr.php?leftmenu=admintools','','InfoDolibarr',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161289,'auguria',1,'','left','home',161288,NULL,NULL,2,'/admin/system/modules.php?leftmenu=admintools','','Modules',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161290,'auguria',1,'','left','home',161288,NULL,NULL,3,'/admin/triggers.php?leftmenu=admintools','','Triggers',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161291,'auguria',1,'','left','home',161288,NULL,NULL,4,'/admin/system/filecheck.php?leftmenu=admintools','','FileCheck',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161292,'auguria',1,'','left','home',161387,NULL,NULL,1,'/admin/system/browser.php?leftmenu=admintools','','InfoBrowser',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161293,'auguria',1,'','left','home',161387,NULL,NULL,2,'/admin/system/os.php?leftmenu=admintools','','InfoOS',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161294,'auguria',1,'','left','home',161387,NULL,NULL,3,'/admin/system/web.php?leftmenu=admintools','','InfoWebServer',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161295,'auguria',1,'','left','home',161387,NULL,NULL,4,'/admin/system/phpinfo.php?leftmenu=admintools','','InfoPHP',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161297,'auguria',1,'','left','home',161387,NULL,NULL,5,'/admin/system/database.php?leftmenu=admintools','','InfoDatabase',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161387,'auguria',1,'','left','home',161088,NULL,NULL,2,'/admin/tools/index.php?leftmenu=admintools','','AdminTools',NULL,'admin',0,'admintools','','$user->admin',2,'2017-08-30 15:14:30'),(161388,'auguria',1,'','left','home',161387,NULL,NULL,6,'/admin/tools/dolibarr_export.php?leftmenu=admintools','','Backup',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161389,'auguria',1,'','left','home',161387,NULL,NULL,7,'/admin/tools/dolibarr_import.php?leftmenu=admintools','','Restore',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161392,'auguria',1,'','left','home',161387,NULL,NULL,8,'/admin/tools/update.php?leftmenu=admintools','','MenuUpgrade',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161393,'auguria',1,'','left','home',161387,NULL,NULL,9,'/admin/tools/eaccelerator.php?leftmenu=admintools','','EAccelerator',NULL,'admin',1,'','','$leftmenu==\"admintools\" && function_exists(\"eaccelerator_info\")',2,'2017-08-30 15:14:30'),(161394,'auguria',1,'','left','home',161387,NULL,NULL,10,'/admin/tools/listevents.php?leftmenu=admintools','','Audit',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161395,'auguria',1,'','left','home',161387,NULL,NULL,11,'/admin/tools/listsessions.php?leftmenu=admintools','','Sessions',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161396,'auguria',1,'','left','home',161387,NULL,NULL,12,'/admin/tools/purge.php?leftmenu=admintools','','Purge',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161398,'auguria',1,'','left','home',161387,NULL,NULL,14,'/admin/system/about.php?leftmenu=admintools','','ExternalResources',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161407,'auguria',1,'','left','home',161387,NULL,NULL,15,'/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools','','ProductVatMassChange',NULL,'products',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161487,'auguria',1,'','left','home',161088,NULL,NULL,4,'/user/home.php?leftmenu=users','','MenuUsersAndGroups',NULL,'users',0,'users','','1',2,'2017-08-30 15:14:30'),(161488,'auguria',1,'','left','home',161487,NULL,NULL,0,'/user/index.php?leftmenu=users','','Users',NULL,'users',1,'','$user->rights->user->user->lire || $user->admin','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161489,'auguria',1,'','left','home',161488,NULL,NULL,0,'/user/card.php?leftmenu=users&action=create','','NewUser',NULL,'users',2,'','($user->rights->user->user->creer || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161490,'auguria',1,'','left','home',161487,NULL,NULL,1,'/user/group/index.php?leftmenu=users','','Groups',NULL,'users',1,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161491,'auguria',1,'','left','home',161490,NULL,NULL,0,'/user/group/card.php?leftmenu=users&action=create','','NewGroup',NULL,'users',2,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->write:$user->rights->user->user->creer) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161587,'auguria',1,'','left','companies',161089,NULL,NULL,0,'/societe/index.php?leftmenu=thirdparties','','ThirdParty',NULL,'companies',0,'thirdparties','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161588,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/card.php?action=create','','MenuNewThirdParty',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161589,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/list.php?action=create','','List',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161590,'auguria',1,'','left','companies',161587,NULL,NULL,5,'/societe/list.php?type=f&leftmenu=suppliers','','ListSuppliersShort',NULL,'suppliers',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161591,'auguria',1,'','left','companies',161590,NULL,NULL,0,'/societe/card.php?leftmenu=supplier&action=create&type=f','','NewSupplier',NULL,'suppliers',2,'','$user->rights->societe->creer','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161593,'auguria',1,'','left','companies',161587,NULL,NULL,3,'/societe/list.php?type=p&leftmenu=prospects','','ListProspectsShort',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161594,'auguria',1,'','left','companies',161593,NULL,NULL,0,'/societe/card.php?leftmenu=prospects&action=create&type=p','','MenuNewProspect',NULL,'companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161596,'auguria',1,'','left','companies',161587,NULL,NULL,4,'/societe/list.php?type=c&leftmenu=customers','','ListCustomersShort',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161597,'auguria',1,'','left','companies',161596,NULL,NULL,0,'/societe/card.php?leftmenu=customers&action=create&type=c','','MenuNewCustomer',NULL,'companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161687,'auguria',1,'','left','companies',161089,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','ContactsAddresses',NULL,'companies',0,'contacts','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161688,'auguria',1,'','left','companies',161687,NULL,NULL,0,'/contact/card.php?leftmenu=contacts&action=create','','NewContactAddress',NULL,'companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161689,'auguria',1,'','left','companies',161687,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','List',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161691,'auguria',1,'','left','companies',161689,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&type=p','','ThirdPartyProspects',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161692,'auguria',1,'','left','companies',161689,NULL,NULL,2,'/contact/list.php?leftmenu=contacts&type=c','','ThirdPartyCustomers',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161693,'auguria',1,'','left','companies',161689,NULL,NULL,3,'/contact/list.php?leftmenu=contacts&type=f','','ThirdPartySuppliers',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161694,'auguria',1,'','left','companies',161689,NULL,NULL,4,'/contact/list.php?leftmenu=contacts&type=o','','Others',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161737,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=1','','SuppliersCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161738,'auguria',1,'','left','companies',161737,NULL,NULL,0,'/categories/card.php?action=create&type=1','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161747,'auguria',1,'','left','companies',161089,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=2','','CustomersProspectsCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161748,'auguria',1,'','left','companies',161747,NULL,NULL,0,'/categories/card.php?action=create&type=2','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161757,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=4','','ContactCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161758,'auguria',1,'','left','companies',161757,NULL,NULL,0,'/categories/card.php?action=create&type=4','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(162187,'auguria',1,'','left','commercial',161092,NULL,NULL,4,'/comm/propal/index.php?leftmenu=propals','','Prop',NULL,'propal',0,'propals','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162188,'auguria',1,'','left','commercial',162187,NULL,NULL,0,'/comm/propal/card.php?action=create&leftmenu=propals','','NewPropal',NULL,'propal',1,'','$user->rights->propale->creer','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162189,'auguria',1,'','left','commercial',162187,NULL,NULL,1,'/comm/propal/list.php?leftmenu=propals','','List',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162190,'auguria',1,'','left','commercial',162189,NULL,NULL,2,'/comm/propal/list.php?leftmenu=propals&search_status=0','','PropalsDraft',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162191,'auguria',1,'','left','commercial',162189,NULL,NULL,3,'/comm/propal/list.php?leftmenu=propals&search_status=1','','PropalsOpened',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162192,'auguria',1,'','left','commercial',162189,NULL,NULL,4,'/comm/propal/list.php?leftmenu=propals&search_status=2','','PropalStatusSigned',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162193,'auguria',1,'','left','commercial',162189,NULL,NULL,5,'/comm/propal/list.php?leftmenu=propals&search_status=3','','PropalStatusNotSigned',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162194,'auguria',1,'','left','commercial',162189,NULL,NULL,6,'/comm/propal/list.php?leftmenu=propals&search_status=4','','PropalStatusBilled',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162197,'auguria',1,'','left','commercial',162187,NULL,NULL,4,'/comm/propal/stats/index.php?leftmenu=propals','','Statistics',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162287,'auguria',1,'','left','commercial',161092,NULL,NULL,5,'/commande/index.php?leftmenu=orders','','CustomersOrders',NULL,'orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162288,'auguria',1,'','left','commercial',162287,NULL,NULL,0,'/commande/card.php?action=create&leftmenu=orders','','NewOrder',NULL,'orders',1,'','$user->rights->commande->creer','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162289,'auguria',1,'','left','commercial',162287,NULL,NULL,1,'/commande/list.php?leftmenu=orders','','List',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162290,'auguria',1,'','left','commercial',162289,NULL,NULL,2,'/commande/list.php?leftmenu=orders&search_status=0','','StatusOrderDraftShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162291,'auguria',1,'','left','commercial',162289,NULL,NULL,3,'/commande/list.php?leftmenu=orders&search_status=1','','StatusOrderValidated',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162292,'auguria',1,'','left','commercial',162289,NULL,NULL,4,'/commande/list.php?leftmenu=orders&search_status=2','','StatusOrderOnProcessShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162293,'auguria',1,'','left','commercial',162289,NULL,NULL,5,'/commande/list.php?leftmenu=orders&search_status=3','','StatusOrderToBill',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162294,'auguria',1,'','left','commercial',162289,NULL,NULL,6,'/commande/list.php?leftmenu=orders&search_status=4','','StatusOrderProcessed',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162295,'auguria',1,'','left','commercial',162289,NULL,NULL,7,'/commande/list.php?leftmenu=orders&search_status=-1','','StatusOrderCanceledShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162296,'auguria',1,'','left','commercial',162287,NULL,NULL,4,'/commande/stats/index.php?leftmenu=orders','','Statistics',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162387,'auguria',1,'','left','commercial',161090,NULL,NULL,6,'/expedition/index.php?leftmenu=sendings','','Shipments',NULL,'sendings',0,'sendings','$user->rights->expedition->lire','$conf->expedition->enabled',2,'2017-08-30 15:14:30'),(162388,'auguria',1,'','left','commercial',162387,NULL,NULL,0,'/expedition/card.php?action=create2&leftmenu=sendings','','NewSending',NULL,'sendings',1,'','$user->rights->expedition->creer','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162389,'auguria',1,'','left','commercial',162387,NULL,NULL,1,'/expedition/list.php?leftmenu=sendings','','List',NULL,'sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162390,'auguria',1,'','left','commercial',162387,NULL,NULL,2,'/expedition/stats/index.php?leftmenu=sendings','','Statistics',NULL,'sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162487,'auguria',1,'','left','commercial',161092,NULL,NULL,7,'/contrat/index.php?leftmenu=contracts','','Contracts',NULL,'contracts',0,'contracts','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162488,'auguria',1,'','left','commercial',162487,NULL,NULL,0,'/contrat/card.php?&action=create&leftmenu=contracts','','NewContract',NULL,'contracts',1,'','$user->rights->contrat->creer','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162489,'auguria',1,'','left','commercial',162487,NULL,NULL,1,'/contrat/list.php?leftmenu=contracts','','List',NULL,'contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162490,'auguria',1,'','left','commercial',162487,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts','','MenuServices',NULL,'contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162491,'auguria',1,'','left','commercial',162490,NULL,NULL,0,'/contrat/services.php?leftmenu=contracts&mode=0','','MenuInactiveServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162492,'auguria',1,'','left','commercial',162490,NULL,NULL,1,'/contrat/services.php?leftmenu=contracts&mode=4','','MenuRunningServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162493,'auguria',1,'','left','commercial',162490,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts&mode=4&filter=expired','','MenuExpiredServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162494,'auguria',1,'','left','commercial',162490,NULL,NULL,3,'/contrat/services.php?leftmenu=contracts&mode=5','','MenuClosedServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162587,'auguria',1,'','left','commercial',161092,NULL,NULL,8,'/fichinter/list.php?leftmenu=ficheinter','','Interventions',NULL,'interventions',0,'ficheinter','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162588,'auguria',1,'','left','commercial',162587,NULL,NULL,0,'/fichinter/card.php?action=create&leftmenu=ficheinter','','NewIntervention',NULL,'interventions',1,'','$user->rights->ficheinter->creer','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162589,'auguria',1,'','left','commercial',162587,NULL,NULL,1,'/fichinter/list.php?leftmenu=ficheinter','','List',NULL,'interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162590,'auguria',1,'','left','commercial',162587,NULL,NULL,2,'/fichinter/stats/index.php?leftmenu=ficheinter','','Statistics',NULL,'interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162687,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/fourn/facture/list.php?leftmenu=suppliers_bills','','BillsSuppliers',NULL,'bills',0,'supplier_bills','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162688,'auguria',1,'','left','accountancy',162687,NULL,NULL,0,'/fourn/facture/card.php?action=create&leftmenu=suppliers_bills','','NewBill',NULL,'bills',1,'','$user->rights->fournisseur->facture->creer','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162689,'auguria',1,'','left','accountancy',162687,NULL,NULL,1,'/fourn/facture/list.php?leftmenu=suppliers_bills','','List',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162690,'auguria',1,'','left','accountancy',162687,NULL,NULL,2,'/fourn/facture/paiement.php?leftmenu=suppliers_bills','','Payments',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162691,'auguria',1,'','left','accountancy',162687,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills&mode=supplier','','Statistics',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162692,'auguria',1,'','left','accountancy',162690,NULL,NULL,1,'/fourn/facture/rapport.php?leftmenu=suppliers_bills','','Reporting',NULL,'bills',2,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162787,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills','','BillsCustomers',NULL,'bills',0,'customer_bills','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162788,'auguria',1,'','left','accountancy',162787,NULL,NULL,3,'/compta/facture/card.php?action=create&leftmenu=customers_bills','','NewBill',NULL,'bills',1,'','$user->rights->facture->creer','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162789,'auguria',1,'','left','accountancy',162787,NULL,NULL,5,'/compta/facture/fiche-rec.php?leftmenu=customers_bills','','ListOfTemplates',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162791,'auguria',1,'','left','accountancy',162787,NULL,NULL,6,'/compta/paiement/list.php?leftmenu=customers_bills','','Payments',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162792,'auguria',1,'','left','accountancy',162787,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills','','List',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162797,'auguria',1,'','left','accountancy',162791,NULL,NULL,1,'/compta/paiement/rapport.php?leftmenu=customers_bills','','Reportings',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162798,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=bank','','MenuChequeDeposits',NULL,'bills',0,'checks','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162799,'auguria',1,'','left','accountancy',162798,NULL,NULL,0,'/compta/paiement/cheque/card.php?leftmenu=checks&action=new','','NewCheckDeposit',NULL,'compta',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162800,'auguria',1,'','left','accountancy',162798,NULL,NULL,1,'/compta/paiement/cheque/list.php?leftmenu=checks','','List',NULL,'bills',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162801,'auguria',1,'','left','accountancy',162787,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills','','Statistics',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162807,'auguria',1,'','left','accountancy',162792,NULL,NULL,1,'/compta/facture/list.php?leftmenu=customers_bills&search_status=0','','BillShortStatusDraft',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162808,'auguria',1,'','left','accountancy',162792,NULL,NULL,2,'/compta/facture/list.php?leftmenu=customers_bills&search_status=1','','BillShortStatusNotPaid',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162809,'auguria',1,'','left','accountancy',162792,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills&search_status=2','','BillShortStatusPaid',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162810,'auguria',1,'','left','accountancy',162792,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills&search_status=3','','BillShortStatusCanceled',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162987,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/commande/list.php?leftmenu=orders&search_status=3','','MenuOrdersToBill',NULL,'orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',0,'2017-08-30 15:14:30'),(163087,'auguria',1,'','left','accountancy',161093,NULL,NULL,4,'/don/index.php?leftmenu=donations&mainmenu=accountancy','','Donations',NULL,'donations',0,'donations','$user->rights->don->lire','$conf->don->enabled',2,'2017-08-30 15:14:30'),(163088,'auguria',1,'','left','accountancy',163087,NULL,NULL,0,'/don/card.php?leftmenu=donations&mainmenu=accountancy&action=create','','NewDonation',NULL,'donations',1,'','$user->rights->don->creer','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163089,'auguria',1,'','left','accountancy',163087,NULL,NULL,1,'/don/list.php?leftmenu=donations&mainmenu=accountancy','','List',NULL,'donations',1,'','$user->rights->don->lire','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163187,'auguria',1,'','left','accountancy',161102,NULL,NULL,5,'/compta/deplacement/index.php?leftmenu=tripsandexpenses','','TripsAndExpenses',NULL,'trips',0,'tripsandexpenses','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163188,'auguria',1,'','left','accountancy',163187,NULL,NULL,1,'/compta/deplacement/card.php?action=create&leftmenu=tripsandexpenses','','New',NULL,'trips',1,'','$user->rights->deplacement->creer','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163189,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/list.php?leftmenu=tripsandexpenses','','List',NULL,'trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163190,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses','','Statistics',NULL,'trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163287,'auguria',1,'','left','accountancy',161093,NULL,NULL,6,'/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy','','MenuSpecialExpenses',NULL,'compta',0,'tax','(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read)','$conf->tax->enabled || $conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163297,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=accountancy','','Salaries',NULL,'salaries',1,'tax_sal','$user->rights->salaries->payment->read','$conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163298,'auguria',1,'','left','accountancy',163297,NULL,NULL,2,'/compta/salaries/card.php?leftmenu=tax_salary&action=create','','NewPayment',NULL,'companies',2,'','$user->rights->salaries->payment->write','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163299,'auguria',1,'','left','accountancy',163297,NULL,NULL,3,'/compta/salaries/index.php?leftmenu=tax_salary','','Payments',NULL,'companies',2,'','$user->rights->salaries->payment->read','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163307,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/loan/index.php?leftmenu=tax_loan&mainmenu=accountancy','','Loans',NULL,'loan',1,'tax_loan','$user->rights->loan->read','$conf->loan->enabled',0,'2017-08-30 15:14:30'),(163308,'auguria',1,'','left','accountancy',163307,NULL,NULL,2,'/loan/card.php?leftmenu=tax_loan&action=create','','NewLoan',NULL,'loan',2,'','$user->rights->loan->write','$conf->loan->enabled && $leftmenu==\"tax_loan\"',0,'2017-08-30 15:14:30'),(163310,'auguria',1,'','left','accountancy',163307,NULL,NULL,4,'/loan/calc.php?leftmenu=tax_loan','','Calculator',NULL,'companies',2,'','$user->rights->loan->calc','$conf->loan->enabled && $leftmenu==\"tax_loan\" && ! empty($conf->global->LOAN_SHOW_CALCULATOR)',0,'2017-08-30 15:14:30'),(163337,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/sociales/index.php?leftmenu=tax_social','','SocialContributions',NULL,'',1,'tax_social','$user->rights->tax->charges->lire','$conf->tax->enabled',0,'2017-08-30 15:14:30'),(163338,'auguria',1,'','left','accountancy',163337,NULL,NULL,2,'/compta/sociales/card.php?leftmenu=tax_social&action=create','','MenuNewSocialContribution',NULL,'',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163339,'auguria',1,'','left','accountancy',163337,NULL,NULL,3,'/compta/sociales/payments.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly','','Payments',NULL,'',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163387,'auguria',1,'','left','accountancy',163287,NULL,NULL,7,'/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy','','VAT',NULL,'companies',1,'tax_vat','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)',0,'2017-08-30 15:14:30'),(163388,'auguria',1,'','left','accountancy',163387,NULL,NULL,0,'/compta/tva/card.php?leftmenu=tax_vat&action=create','','New',NULL,'companies',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163389,'auguria',1,'','left','accountancy',163387,NULL,NULL,1,'/compta/tva/reglement.php?leftmenu=tax_vat','','List',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163390,'auguria',1,'','left','accountancy',163387,NULL,NULL,2,'/compta/tva/clients.php?leftmenu=tax_vat','','ReportByCustomers',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163391,'auguria',1,'','left','accountancy',163387,NULL,NULL,3,'/compta/tva/quadri_detail.php?leftmenu=tax_vat','','ReportByQuarter',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163487,'auguria',1,'','left','accountancy',161093,NULL,NULL,7,'/accountancy/index.php?leftmenu=accountancy','','MenuAccountancy',NULL,'accountancy',0,'accounting','! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163488,'auguria',1,'','left','accountancy',163487,NULL,NULL,2,'/accountancy/customer/index.php?leftmenu=dispatch_customer','','CustomersVentilation',NULL,'accountancy',1,'dispatch_customer','$user->rights->accounting->bind->write','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163489,'auguria',1,'','left','accountancy',163488,NULL,NULL,3,'/accountancy/customer/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163490,'auguria',1,'','left','accountancy',163488,NULL,NULL,4,'/accountancy/customer/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163497,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/supplier/index.php?leftmenu=dispatch_supplier','','SuppliersVentilation',NULL,'accountancy',1,'ventil_supplier','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled',0,'2017-08-30 15:14:30'),(163498,'auguria',1,'','left','accountancy',163497,NULL,NULL,6,'/accountancy/supplier/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163499,'auguria',1,'','left','accountancy',163497,NULL,NULL,7,'/accountancy/supplier/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163507,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/expensereport/index.php?leftmenu=dispatch_expensereport','','ExpenseReportsVentilation',NULL,'accountancy',1,'ventil_expensereport','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(163508,'auguria',1,'','left','accountancy',163507,NULL,NULL,6,'/accountancy/expensereport/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163509,'auguria',1,'','left','accountancy',163507,NULL,NULL,7,'/accountancy/expensereport/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163517,'auguria',1,'','left','accountancy',163487,NULL,NULL,15,'/accountancy/bookkeeping/list.php','','Bookkeeping',NULL,'accountancy',1,'bookkeeping','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163522,'auguria',1,'','left','accountancy',163487,NULL,NULL,16,'/accountancy/bookkeeping/balance.php','','AccountBalance',NULL,'accountancy',1,'balance','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163527,'auguria',1,'','left','accountancy',163487,NULL,NULL,17,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','Reportings',NULL,'main',1,'report','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163528,'auguria',1,'','left','accountancy',163527,NULL,NULL,19,'/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportInOut',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163529,'auguria',1,'','left','accountancy',163528,NULL,NULL,18,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','ByAccounts',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163530,'auguria',1,'','left','accountancy',163528,NULL,NULL,20,'/compta/resultat/clientfourn.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163531,'auguria',1,'','left','accountancy',163527,NULL,NULL,21,'/compta/stats/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportTurnover',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163532,'auguria',1,'','left','accountancy',163531,NULL,NULL,22,'/compta/stats/casoc.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163533,'auguria',1,'','left','accountancy',163531,NULL,NULL,23,'/compta/stats/cabyuser.php?mainmenu=accountancy&leftmenu=accountancy','','ByUsers',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163534,'auguria',1,'','left','accountancy',163531,NULL,NULL,24,'/compta/stats/cabyprodserv.php?mainmenu=accountancy&leftmenu=accountancy','','ByProductsAndServices',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163537,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin','','FiscalPeriod',NULL,'admin',1,'accountancy_admin_period','','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\" && $conf->global->MAIN_FEATURES_LEVEL > 0',2,'2017-08-30 15:14:30'),(163538,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'/accountancy/index.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Setup',NULL,'accountancy',1,'accountancy_admin','$user->rights->accounting->chartofaccount','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163541,'auguria',1,'','left','accountancy',163538,NULL,NULL,10,'/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingJournals',NULL,'accountancy',2,'accountancy_admin_journal','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163542,'auguria',1,'','left','accountancy',163538,NULL,NULL,20,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Pcg_version',NULL,'accountancy',2,'accountancy_admin_chartmodel','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163543,'auguria',1,'','left','accountancy',163538,NULL,NULL,30,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Chartofaccounts',NULL,'accountancy',2,'accountancy_admin_chart','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163544,'auguria',1,'','left','accountancy',163538,NULL,NULL,40,'/accountancy/admin/categories_list.php?id=32&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingCategory',NULL,'accountancy',2,'accountancy_admin_chart_group','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163545,'auguria',1,'','left','accountancy',163538,NULL,NULL,50,'/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuDefaultAccounts',NULL,'accountancy',2,'accountancy_admin_default','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163546,'auguria',1,'','left','accountancy',163538,NULL,NULL,60,'/admin/dict.php?id=10&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuVatAccounts',NULL,'accountancy',2,'accountancy_admin_vat','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163547,'auguria',1,'','left','accountancy',163538,NULL,NULL,70,'/admin/dict.php?id=7&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuTaxAccounts',NULL,'accountancy',2,'accountancy_admin_tax','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163548,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuExpenseReportAccounts',NULL,'accountancy',2,'accountancy_admin_expensereport','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163549,'auguria',1,'','left','accountancy',163538,NULL,NULL,90,'/accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuProductsAccounts',NULL,'accountancy',2,'accountancy_admin_product','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163587,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/prelevement/index.php?leftmenu=withdraw&mainmenu=bank','','StandingOrders',NULL,'withdrawals',0,'withdraw','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled',2,'2017-08-30 15:14:30'),(163589,'auguria',1,'','left','accountancy',163587,NULL,NULL,0,'/compta/prelevement/create.php?leftmenu=withdraw','','NewStandingOrder',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163590,'auguria',1,'','left','accountancy',163587,NULL,NULL,2,'/compta/prelevement/bons.php?leftmenu=withdraw','','WithdrawalsReceipts',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163591,'auguria',1,'','left','accountancy',163587,NULL,NULL,3,'/compta/prelevement/list.php?leftmenu=withdraw','','WithdrawalsLines',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163593,'auguria',1,'','left','accountancy',163587,NULL,NULL,5,'/compta/prelevement/rejets.php?leftmenu=withdraw','','Rejects',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163594,'auguria',1,'','left','accountancy',163587,NULL,NULL,6,'/compta/prelevement/stats.php?leftmenu=withdraw','','Statistics',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163687,'auguria',1,'','left','accountancy',161101,NULL,NULL,1,'/compta/bank/index.php?leftmenu=bank&mainmenu=bank','','MenuBankCash',NULL,'banks',0,'bank','$user->rights->banque->lire','$conf->banque->enabled',0,'2017-08-30 15:14:30'),(163688,'auguria',1,'','left','accountancy',163687,NULL,NULL,0,'/compta/bank/card.php?action=create&leftmenu=bank','','MenuNewFinancialAccount',NULL,'banks',1,'','$user->rights->banque->configurer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163690,'auguria',1,'','left','accountancy',163687,NULL,NULL,2,'/compta/bank/bankentries.php?leftmenu=bank','','ListTransactions',NULL,'banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163691,'auguria',1,'','left','accountancy',163687,NULL,NULL,3,'/compta/bank/budget.php?leftmenu=bank','','ListTransactionsByCategory',NULL,'banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163693,'auguria',1,'','left','accountancy',163687,NULL,NULL,5,'/compta/bank/transfer.php?leftmenu=bank','','BankTransfers',NULL,'banks',1,'','$user->rights->banque->transfer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163737,'auguria',1,'','left','accountancy',161101,NULL,NULL,4,'/categories/index.php?leftmenu=bank&type=5','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163738,'auguria',1,'','left','accountancy',163737,NULL,NULL,0,'/categories/card.php?leftmenu=bank&action=create&type=5','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163787,'auguria',1,'','left','accountancy',161093,NULL,NULL,11,'/compta/resultat/index.php?leftmenu=ca&mainmenu=accountancy','','Reportings',NULL,'main',0,'ca','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled',0,'2017-08-30 15:14:30'),(163792,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'','','Journalization',NULL,'main',1,'','$user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163793,'auguria',1,'','left','accountancy',163792,NULL,NULL,4,'/accountancy/journal/sellsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=1','','SellsJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163794,'auguria',1,'','left','accountancy',163792,NULL,NULL,1,'/accountancy/journal/bankjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=3','','BankJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163795,'auguria',1,'','left','accountancy',163792,NULL,NULL,2,'/accountancy/journal/expensereportsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=6','','ExpenseReportJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163796,'auguria',1,'','left','accountancy',163792,NULL,NULL,3,'/accountancy/journal/purchasesjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=2','','PurchasesJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163798,'auguria',1,'','left','accountancy',163787,NULL,NULL,0,'/compta/resultat/index.php?leftmenu=ca','','ReportInOut',NULL,'main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163799,'auguria',1,'','left','accountancy',163788,NULL,NULL,0,'/compta/resultat/clientfourn.php?leftmenu=ca','','ByCompanies',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163800,'auguria',1,'','left','accountancy',163787,NULL,NULL,1,'/compta/stats/index.php?leftmenu=ca','','ReportTurnover',NULL,'main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163801,'auguria',1,'','left','accountancy',163790,NULL,NULL,0,'/compta/stats/casoc.php?leftmenu=ca','','ByCompanies',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163802,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyuser.php?leftmenu=ca','','ByUsers',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163803,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyprodserv.php?leftmenu=ca','','ByProductsAndServices',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163887,'auguria',1,'','left','products',161090,NULL,NULL,0,'/product/index.php?leftmenu=product&type=0','','Products',NULL,'products',0,'product','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163888,'auguria',1,'','left','products',163887,NULL,NULL,0,'/product/card.php?leftmenu=product&action=create&type=0','','NewProduct',NULL,'products',1,'','$user->rights->produit->creer','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163889,'auguria',1,'','left','products',163887,NULL,NULL,1,'/product/list.php?leftmenu=product&type=0','','List',NULL,'products',1,'','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163890,'auguria',1,'','left','products',163887,NULL,NULL,4,'/product/reassort.php?type=0','','Stocks',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163891,'auguria',1,'','left','products',163887,NULL,NULL,7,'/product/stats/card.php?id=all&leftmenu=stats&type=0','','Statistics',NULL,'main',1,'','$user->rights->produit->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(163892,'auguria',1,'','left','products',163887,NULL,NULL,5,'/product/reassortlot.php?type=0','','StocksByLotSerial',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163893,'auguria',1,'','left','products',163887,NULL,NULL,6,'/product/stock/productlot_list.php','','LotSerial',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163987,'auguria',1,'','left','products',161090,NULL,NULL,1,'/product/index.php?leftmenu=service&type=1','','Services',NULL,'products',0,'service','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163988,'auguria',1,'','left','products',163987,NULL,NULL,0,'/product/card.php?leftmenu=service&action=create&type=1','','NewService',NULL,'products',1,'','$user->rights->service->creer','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163989,'auguria',1,'','left','products',163987,NULL,NULL,1,'/product/list.php?leftmenu=service&type=1','','List',NULL,'products',1,'','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163990,'auguria',1,'','left','products',163987,NULL,NULL,5,'/product/stats/card.php?id=all&leftmenu=stats&type=1','','Statistics',NULL,'main',1,'','$user->rights->service->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(164187,'auguria',1,'','left','products',161090,NULL,NULL,3,'/product/stock/index.php?leftmenu=stock','','Stock',NULL,'stocks',0,'stock','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164188,'auguria',1,'','left','products',164187,NULL,NULL,0,'/product/stock/card.php?action=create','','MenuNewWarehouse',NULL,'stocks',1,'','$user->rights->stock->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164189,'auguria',1,'','left','products',164187,NULL,NULL,1,'/product/stock/list.php','','List',NULL,'stocks',1,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164191,'auguria',1,'','left','products',164187,NULL,NULL,3,'/product/stock/mouvement.php','','Movements',NULL,'stocks',1,'','$user->rights->stock->mouvement->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164192,'auguria',1,'','left','products',164187,NULL,NULL,4,'/product/stock/replenish.php','','Replenishments',NULL,'stocks',1,'','$user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire','$conf->stock->enabled && $conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(164193,'auguria',1,'','left','products',164187,NULL,NULL,5,'/product/stock/massstockmove.php','','MassStockTransferShort',NULL,'stocks',1,'','$user->rights->stock->mouvement->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164287,'auguria',1,'','left','products',161090,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=0','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164288,'auguria',1,'','left','products',164287,NULL,NULL,0,'/categories/card.php?action=create&type=0','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164487,'auguria',1,'','left','project',161094,NULL,NULL,3,'/projet/activity/perweek.php?leftmenu=projects','','NewTimeSpent',NULL,'projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164687,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/index.php?leftmenu=projects','','Projects',NULL,'projects',0,'projects','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164688,'auguria',1,'','left','project',164687,NULL,NULL,1,'/projet/card.php?leftmenu=projects&action=create','','NewProject',NULL,'projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164689,'auguria',1,'','left','project',164687,NULL,NULL,2,'/projet/list.php?leftmenu=projects','','List',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164690,'auguria',1,'','left','project',164687,NULL,NULL,3,'/projet/stats/index.php?leftmenu=projects','','Statistics',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164787,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/activity/index.php?leftmenu=projects','','Activities',NULL,'projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164788,'auguria',1,'','left','project',164787,NULL,NULL,1,'/projet/tasks.php?leftmenu=projects&action=create','','NewTask',NULL,'projects',1,'','$user->rights->projet->creer','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164789,'auguria',1,'','left','project',164787,NULL,NULL,2,'/projet/tasks/list.php?leftmenu=projects','','List',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164791,'auguria',1,'','left','project',164787,NULL,NULL,4,'/projet/tasks/stats/index.php?leftmenu=projects','','Statistics',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164891,'auguria',1,'','left','project',161094,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=6','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164892,'auguria',1,'','left','project',164891,NULL,NULL,0,'/categories/card.php?action=create&type=6','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164987,'auguria',1,'','left','tools',161095,NULL,NULL,0,'/comm/mailing/index.php?leftmenu=mailing','','EMailings',NULL,'mails',0,'mailing','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164988,'auguria',1,'','left','tools',164987,NULL,NULL,0,'/comm/mailing/card.php?leftmenu=mailing&action=create','','NewMailing',NULL,'mails',1,'','$user->rights->mailing->creer','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164989,'auguria',1,'','left','tools',164987,NULL,NULL,1,'/comm/mailing/list.php?leftmenu=mailing','','List',NULL,'mails',1,'','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(165187,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/exports/index.php?leftmenu=export','','FormatedExport',NULL,'exports',0,'export','$user->rights->export->lire','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165188,'auguria',1,'','left','tools',165187,NULL,NULL,0,'/exports/export.php?leftmenu=export','','NewExport',NULL,'exports',1,'','$user->rights->export->creer','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165217,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/imports/index.php?leftmenu=import','','FormatedImport',NULL,'exports',0,'import','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165218,'auguria',1,'','left','tools',165217,NULL,NULL,0,'/imports/import.php?leftmenu=import','','NewImport',NULL,'exports',1,'','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165287,'auguria',1,'','left','members',161100,NULL,NULL,0,'/adherents/index.php?leftmenu=members&mainmenu=members','','Members',NULL,'members',0,'members','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165288,'auguria',1,'','left','members',165287,NULL,NULL,0,'/adherents/card.php?leftmenu=members&action=create','','NewMember',NULL,'members',1,'','$user->rights->adherent->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165289,'auguria',1,'','left','members',165287,NULL,NULL,1,'/adherents/list.php','','List',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165290,'auguria',1,'','left','members',165289,NULL,NULL,2,'/adherents/list.php?leftmenu=members&statut=-1','','MenuMembersToValidate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165291,'auguria',1,'','left','members',165289,NULL,NULL,3,'/adherents/list.php?leftmenu=members&statut=1','','MenuMembersValidated',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165292,'auguria',1,'','left','members',165289,NULL,NULL,4,'/adherents/list.php?leftmenu=members&statut=1&filter=outofdate','','MenuMembersNotUpToDate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165293,'auguria',1,'','left','members',165289,NULL,NULL,5,'/adherents/list.php?leftmenu=members&statut=1&filter=uptodate','','MenuMembersUpToDate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165294,'auguria',1,'','left','members',165289,NULL,NULL,6,'/adherents/list.php?leftmenu=members&statut=0','','MenuMembersResiliated',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165295,'auguria',1,'','left','members',165287,NULL,NULL,7,'/adherents/stats/geo.php?leftmenu=members&mode=memberbycountry','','MenuMembersStats',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165387,'auguria',1,'','left','members',161100,NULL,NULL,1,'/adherents/index.php?leftmenu=members&mainmenu=members','','Subscriptions',NULL,'compta',0,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165388,'auguria',1,'','left','members',165387,NULL,NULL,0,'/adherents/list.php?statut=-1&leftmenu=accountancy&mainmenu=members','','NewSubscription',NULL,'compta',1,'','$user->rights->adherent->cotisation->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165389,'auguria',1,'','left','members',165387,NULL,NULL,1,'/adherents/subscription/list.php?leftmenu=members','','List',NULL,'compta',1,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165390,'auguria',1,'','left','members',165387,NULL,NULL,7,'/adherents/stats/index.php?leftmenu=members','','MenuMembersStats',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165589,'auguria',1,'','left','members',165287,NULL,NULL,9,'/adherents/htpasswd.php?leftmenu=export','','Filehtpasswd',NULL,'members',1,'','$user->rights->adherent->export','! empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && $conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165590,'auguria',1,'','left','members',165287,NULL,NULL,10,'/adherents/cartes/carte.php?leftmenu=export','','MembersCards',NULL,'members',1,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165687,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/user/index.php?leftmenu=hrm&mode=employee','','Employees',NULL,'hrm',0,'hrm','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165688,'auguria',1,'','left','hrm',165687,NULL,NULL,1,'/user/card.php?action=create&employee=1','','NewEmployee',NULL,'hrm',1,'','$user->rights->hrm->employee->write','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165689,'auguria',1,'','left','hrm',165687,NULL,NULL,2,'/user/index.php?$leftmenu=hrm&mode=employee&contextpage=employeelist','','List',NULL,'hrm',1,'','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165787,'auguria',1,'','left','members',161100,NULL,NULL,5,'/adherents/type.php?leftmenu=setup&mainmenu=members','','MembersTypes',NULL,'members',0,'setup','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165788,'auguria',1,'','left','members',165787,NULL,NULL,0,'/adherents/type.php?leftmenu=setup&mainmenu=members&action=create','','New',NULL,'members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165789,'auguria',1,'','left','members',165787,NULL,NULL,1,'/adherents/type.php?leftmenu=setup&mainmenu=members','','List',NULL,'members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(166087,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','CPTitreMenu',NULL,'holiday',0,'hrm','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166088,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/card.php?&action=request','','MenuAddCP',NULL,'holiday',1,'','$user->rights->holiday->write','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166089,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','List',NULL,'holiday',1,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166090,'auguria',1,'','left','hrm',166089,NULL,NULL,1,'/holiday/list.php?select_statut=2&leftmenu=hrm','','ListToApprove',NULL,'trips',2,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166091,'auguria',1,'','left','hrm',166087,NULL,NULL,2,'/holiday/define_holiday.php?&action=request','','MenuConfCP',NULL,'holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166092,'auguria',1,'','left','hrm',166087,NULL,NULL,3,'/holiday/view_log.php?&action=request','','MenuLogCP',NULL,'holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166187,'auguria',1,'','left','commercial',161092,NULL,NULL,6,'/fourn/commande/index.php?leftmenu=orders_suppliers','','SuppliersOrders',NULL,'orders',0,'orders_suppliers','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166188,'auguria',1,'','left','commercial',166187,NULL,NULL,0,'/fourn/commande/card.php?action=create&leftmenu=orders_suppliers','','NewOrder',NULL,'orders',1,'','$user->rights->fournisseur->commande->creer','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166189,'auguria',1,'','left','commercial',166187,NULL,NULL,1,'/fourn/commande/list.php?leftmenu=orders_suppliers&search_status=0','','List',NULL,'orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166195,'auguria',1,'','left','commercial',166187,NULL,NULL,7,'/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier','','Statistics',NULL,'orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166287,'auguria',1,'','left','members',161100,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=3','','MembersCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166288,'auguria',1,'','left','members',166287,NULL,NULL,0,'/categories/card.php?action=create&type=3','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166387,'auguria',1,'','left','hrm',161102,NULL,NULL,5,'/expensereport/index.php?leftmenu=expensereport','','TripsAndExpenses',NULL,'trips',0,'expensereport','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166388,'auguria',1,'','left','hrm',166387,NULL,NULL,1,'/expensereport/card.php?action=create&leftmenu=expensereport','','New',NULL,'trips',1,'','$user->rights->expensereport->creer','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166389,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/list.php?leftmenu=expensereport','','List',NULL,'trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166390,'auguria',1,'','left','hrm',166389,NULL,NULL,2,'/expensereport/list.php?search_status=2&leftmenu=expensereport','','ListToApprove',NULL,'trips',2,'','$user->rights->expensereport->approve','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166391,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/stats/index.php?leftmenu=expensereport','','Statistics',NULL,'trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(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'); +INSERT INTO `llx_menu` VALUES (103094,'all',2,'agenda','top','agenda',0,NULL,NULL,100,'/comm/action/index.php','','Agenda',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103095,'all',2,'agenda','left','agenda',103094,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Actions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103096,'all',2,'agenda','left','agenda',103095,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&leftmenu=agenda&action=create','','NewAction',NULL,'commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103097,'all',2,'agenda','left','agenda',103095,NULL,NULL,102,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Calendar',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103098,'all',2,'agenda','left','agenda',103097,NULL,NULL,103,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103099,'all',2,'agenda','left','agenda',103097,NULL,NULL,104,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103100,'all',2,'agenda','left','agenda',103097,NULL,NULL,105,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103101,'all',2,'agenda','left','agenda',103097,NULL,NULL,106,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103102,'all',2,'agenda','left','agenda',103095,NULL,NULL,112,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda','','List',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103103,'all',2,'agenda','left','agenda',103102,NULL,NULL,113,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103104,'all',2,'agenda','left','agenda',103102,NULL,NULL,114,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103105,'all',2,'agenda','left','agenda',103102,NULL,NULL,115,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103106,'all',2,'agenda','left','agenda',103102,NULL,NULL,116,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2015-03-13 15:29:19'),(103107,'all',2,'agenda','left','agenda',103095,NULL,NULL,120,'/comm/action/rapport/index.php?mainmenu=agenda&leftmenu=agenda','','Reportings',NULL,'agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2015-03-13 15:29:19'),(103134,'all',2,'opensurvey','top','opensurvey',0,NULL,NULL,200,'/opensurvey/index.php','','Surveys',NULL,'opensurvey',NULL,NULL,'$user->rights->opensurvey->survey->read','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103135,'all',2,'opensurvey','left','opensurvey',-1,NULL,'opensurvey',200,'/opensurvey/index.php?mainmenu=opensurvey&leftmenu=opensurvey','','Survey',NULL,'opensurvey@opensurvey',NULL,'opensurvey','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103136,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',210,'/opensurvey/public/index.php','_blank','NewSurvey',NULL,'opensurvey@opensurvey',NULL,'opensurvey_new','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(103137,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',220,'/opensurvey/list.php','','List',NULL,'opensurvey@opensurvey',NULL,'opensurvey_list','','$conf->opensurvey->enabled',0,'2015-03-13 20:33:42'),(161088,'auguria',1,'','top','home',0,NULL,NULL,10,'/index.php?mainmenu=home&leftmenu=','','Home',NULL,'',-1,'','','1',2,'2017-08-30 15:14:30'),(161089,'auguria',1,'societe|fournisseur','top','companies',0,NULL,NULL,20,'/societe/index.php?mainmenu=companies&leftmenu=','','ThirdParties',NULL,'companies',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)',2,'2017-08-30 15:14:30'),(161090,'auguria',1,'product|service','top','products',0,NULL,NULL,30,'/product/index.php?mainmenu=products&leftmenu=','','Products/Services',NULL,'products',-1,'','$user->rights->produit->lire||$user->rights->service->lire','$conf->product->enabled || $conf->service->enabled',0,'2017-08-30 15:14:30'),(161092,'auguria',1,'propal|commande|fournisseur|contrat|ficheinter','top','commercial',0,NULL,NULL,40,'/comm/index.php?mainmenu=commercial&leftmenu=','','Commercial',NULL,'commercial',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','$conf->propal->enabled || $conf->commande->enabled || $conf->supplier_order->enabled || $conf->contrat->enabled || $conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(161093,'auguria',1,'comptabilite|accounting|facture|don|tax|salaries|loan','top','accountancy',0,NULL,NULL,50,'/compta/index.php?mainmenu=accountancy&leftmenu=','','MenuFinancial',NULL,'compta',-1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire || $user->rights->facture->lire|| $user->rights->don->lire || $user->rights->tax->charges->lire || $user->rights->salaries->read || $user->rights->loan->read','$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->don->enabled || $conf->tax->enabled || $conf->salaries->enabled || $conf->supplier_invoice->enabled || $conf->loan->enabled',2,'2017-08-30 15:14:30'),(161094,'auguria',1,'projet','top','project',0,NULL,NULL,70,'/projet/index.php?mainmenu=project&leftmenu=','','Projects',NULL,'projects',-1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(161095,'auguria',1,'mailing|export|import|opensurvey|resource','top','tools',0,NULL,NULL,90,'/core/tools.php?mainmenu=tools&leftmenu=','','Tools',NULL,'other',-1,'','$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run || $user->rights->opensurvey->read || $user->rights->resource->read','$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled || $conf->opensurvey->enabled || $conf->resource->enabled',2,'2017-08-30 15:14:30'),(161101,'auguria',1,'banque|prelevement','top','bank',0,NULL,NULL,60,'/compta/bank/index.php?mainmenu=bank&leftmenu=bank','','MenuBankCash',NULL,'banks',-1,'','$user->rights->banque->lire || $user->rights->prelevement->bons->lire','$conf->banque->enabled || $conf->prelevement->enabled',0,'2017-08-30 15:14:30'),(161102,'auguria',1,'hrm|holiday|deplacement|expensereport','top','hrm',0,NULL,NULL,80,'/hrm/index.php?mainmenu=hrm&leftmenu=','','HRM',NULL,'holiday',-1,'','$user->rights->hrm->employee->read || $user->rights->holiday->write || $user->rights->deplacement->lire || $user->rights->expensereport->lire','$conf->hrm->enabled || $conf->holiday->enabled || $conf->deplacement->enabled || $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(161177,'auguria',1,'','left','home',161088,NULL,NULL,0,'/index.php','','MyDashboard',NULL,'',0,'','','1',2,'2017-08-30 15:14:30'),(161187,'auguria',1,'','left','home',161088,NULL,NULL,1,'/admin/index.php?leftmenu=setup','','Setup',NULL,'admin',0,'setup','','$user->admin',2,'2017-08-30 15:14:30'),(161188,'auguria',1,'','left','home',161187,NULL,NULL,1,'/admin/company.php?leftmenu=setup','','MenuCompanySetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161189,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/ihm.php?leftmenu=setup','','GUISetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161190,'auguria',1,'','left','home',161187,NULL,NULL,2,'/admin/modules.php?leftmenu=setup','','Modules',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161191,'auguria',1,'','left','home',161187,NULL,NULL,6,'/admin/boxes.php?leftmenu=setup','','Boxes',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161192,'auguria',1,'','left','home',161187,NULL,NULL,3,'/admin/menus.php?leftmenu=setup','','Menus',NULL,'admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:47'),(161193,'auguria',1,'','left','home',161187,NULL,NULL,7,'/admin/delais.php?leftmenu=setup','','Alerts',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161194,'auguria',1,'','left','home',161187,NULL,NULL,10,'/admin/pdf.php?leftmenu=setup','','PDF',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161195,'auguria',1,'','left','home',161187,NULL,NULL,8,'/admin/security_other.php?leftmenu=setup','','Security',NULL,'admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:36'),(161196,'auguria',1,'','left','home',161187,NULL,NULL,11,'/admin/mails.php?leftmenu=setup','','Emails',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161197,'auguria',1,'','left','home',161187,NULL,NULL,9,'/admin/limits.php?leftmenu=setup','','MenuLimits',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161198,'auguria',1,'','left','home',161187,NULL,NULL,13,'/admin/dict.php?leftmenu=setup','','Dictionary',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161199,'auguria',1,'','left','home',161187,NULL,NULL,14,'/admin/const.php?leftmenu=setup','','OtherSetup',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161200,'auguria',1,'','left','home',161187,NULL,NULL,12,'/admin/sms.php?leftmenu=setup','','SMS',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161201,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/translation.php?leftmenu=setup','','Translation',NULL,'admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161288,'auguria',1,'','left','home',161387,NULL,NULL,0,'/admin/system/dolibarr.php?leftmenu=admintools','','InfoDolibarr',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161289,'auguria',1,'','left','home',161288,NULL,NULL,2,'/admin/system/modules.php?leftmenu=admintools','','Modules',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161290,'auguria',1,'','left','home',161288,NULL,NULL,3,'/admin/triggers.php?leftmenu=admintools','','Triggers',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161291,'auguria',1,'','left','home',161288,NULL,NULL,4,'/admin/system/filecheck.php?leftmenu=admintools','','FileCheck',NULL,'admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161292,'auguria',1,'','left','home',161387,NULL,NULL,1,'/admin/system/browser.php?leftmenu=admintools','','InfoBrowser',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161293,'auguria',1,'','left','home',161387,NULL,NULL,2,'/admin/system/os.php?leftmenu=admintools','','InfoOS',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161294,'auguria',1,'','left','home',161387,NULL,NULL,3,'/admin/system/web.php?leftmenu=admintools','','InfoWebServer',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161295,'auguria',1,'','left','home',161387,NULL,NULL,4,'/admin/system/phpinfo.php?leftmenu=admintools','','InfoPHP',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161297,'auguria',1,'','left','home',161387,NULL,NULL,5,'/admin/system/database.php?leftmenu=admintools','','InfoDatabase',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161387,'auguria',1,'','left','home',161088,NULL,NULL,2,'/admin/tools/index.php?leftmenu=admintools','','AdminTools',NULL,'admin',0,'admintools','','$user->admin',2,'2017-08-30 15:14:30'),(161388,'auguria',1,'','left','home',161387,NULL,NULL,6,'/admin/tools/dolibarr_export.php?leftmenu=admintools','','Backup',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161389,'auguria',1,'','left','home',161387,NULL,NULL,7,'/admin/tools/dolibarr_import.php?leftmenu=admintools','','Restore',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161392,'auguria',1,'','left','home',161387,NULL,NULL,8,'/admin/tools/update.php?leftmenu=admintools','','MenuUpgrade',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161393,'auguria',1,'','left','home',161387,NULL,NULL,9,'/admin/tools/eaccelerator.php?leftmenu=admintools','','EAccelerator',NULL,'admin',1,'','','$leftmenu==\"admintools\" && function_exists(\"eaccelerator_info\")',2,'2017-08-30 15:14:30'),(161394,'auguria',1,'','left','home',161387,NULL,NULL,10,'/admin/tools/listevents.php?leftmenu=admintools','','Audit',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161395,'auguria',1,'','left','home',161387,NULL,NULL,11,'/admin/tools/listsessions.php?leftmenu=admintools','','Sessions',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161396,'auguria',1,'','left','home',161387,NULL,NULL,12,'/admin/tools/purge.php?leftmenu=admintools','','Purge',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161398,'auguria',1,'','left','home',161387,NULL,NULL,14,'/admin/system/about.php?leftmenu=admintools','','ExternalResources',NULL,'admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161407,'auguria',1,'','left','home',161387,NULL,NULL,15,'/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools','','ProductVatMassChange',NULL,'products',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161487,'auguria',1,'','left','home',161088,NULL,NULL,4,'/user/home.php?leftmenu=users','','MenuUsersAndGroups',NULL,'users',0,'users','','1',2,'2017-08-30 15:14:30'),(161488,'auguria',1,'','left','home',161487,NULL,NULL,0,'/user/index.php?leftmenu=users','','Users',NULL,'users',1,'','$user->rights->user->user->lire || $user->admin','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161489,'auguria',1,'','left','home',161488,NULL,NULL,0,'/user/card.php?leftmenu=users&action=create','','NewUser',NULL,'users',2,'','($user->rights->user->user->creer || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161490,'auguria',1,'','left','home',161487,NULL,NULL,1,'/user/group/index.php?leftmenu=users','','Groups',NULL,'users',1,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161491,'auguria',1,'','left','home',161490,NULL,NULL,0,'/user/group/card.php?leftmenu=users&action=create','','NewGroup',NULL,'users',2,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->write:$user->rights->user->user->creer) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161587,'auguria',1,'','left','companies',161089,NULL,NULL,0,'/societe/index.php?leftmenu=thirdparties','','ThirdParty',NULL,'companies',0,'thirdparties','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161588,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/card.php?action=create','','MenuNewThirdParty',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161589,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/list.php?action=create','','List',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161590,'auguria',1,'','left','companies',161587,NULL,NULL,5,'/societe/list.php?type=f&leftmenu=suppliers','','ListSuppliersShort',NULL,'suppliers',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161591,'auguria',1,'','left','companies',161590,NULL,NULL,0,'/societe/card.php?leftmenu=supplier&action=create&type=f','','NewSupplier',NULL,'suppliers',2,'','$user->rights->societe->creer','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161593,'auguria',1,'','left','companies',161587,NULL,NULL,3,'/societe/list.php?type=p&leftmenu=prospects','','ListProspectsShort',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161594,'auguria',1,'','left','companies',161593,NULL,NULL,0,'/societe/card.php?leftmenu=prospects&action=create&type=p','','MenuNewProspect',NULL,'companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161596,'auguria',1,'','left','companies',161587,NULL,NULL,4,'/societe/list.php?type=c&leftmenu=customers','','ListCustomersShort',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161597,'auguria',1,'','left','companies',161596,NULL,NULL,0,'/societe/card.php?leftmenu=customers&action=create&type=c','','MenuNewCustomer',NULL,'companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161687,'auguria',1,'','left','companies',161089,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','ContactsAddresses',NULL,'companies',0,'contacts','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161688,'auguria',1,'','left','companies',161687,NULL,NULL,0,'/contact/card.php?leftmenu=contacts&action=create','','NewContactAddress',NULL,'companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161689,'auguria',1,'','left','companies',161687,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','List',NULL,'companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161691,'auguria',1,'','left','companies',161689,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&type=p','','ThirdPartyProspects',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161692,'auguria',1,'','left','companies',161689,NULL,NULL,2,'/contact/list.php?leftmenu=contacts&type=c','','ThirdPartyCustomers',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161693,'auguria',1,'','left','companies',161689,NULL,NULL,3,'/contact/list.php?leftmenu=contacts&type=f','','ThirdPartySuppliers',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161694,'auguria',1,'','left','companies',161689,NULL,NULL,4,'/contact/list.php?leftmenu=contacts&type=o','','Others',NULL,'companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161737,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=1','','SuppliersCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161738,'auguria',1,'','left','companies',161737,NULL,NULL,0,'/categories/card.php?action=create&type=1','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161747,'auguria',1,'','left','companies',161089,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=2','','CustomersProspectsCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161748,'auguria',1,'','left','companies',161747,NULL,NULL,0,'/categories/card.php?action=create&type=2','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161757,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=4','','ContactCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161758,'auguria',1,'','left','companies',161757,NULL,NULL,0,'/categories/card.php?action=create&type=4','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(162187,'auguria',1,'','left','commercial',161092,NULL,NULL,4,'/comm/propal/index.php?leftmenu=propals','','Prop',NULL,'propal',0,'propals','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162188,'auguria',1,'','left','commercial',162187,NULL,NULL,0,'/comm/propal/card.php?action=create&leftmenu=propals','','NewPropal',NULL,'propal',1,'','$user->rights->propale->creer','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162189,'auguria',1,'','left','commercial',162187,NULL,NULL,1,'/comm/propal/list.php?leftmenu=propals','','List',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162190,'auguria',1,'','left','commercial',162189,NULL,NULL,2,'/comm/propal/list.php?leftmenu=propals&search_status=0','','PropalsDraft',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162191,'auguria',1,'','left','commercial',162189,NULL,NULL,3,'/comm/propal/list.php?leftmenu=propals&search_status=1','','PropalsOpened',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162192,'auguria',1,'','left','commercial',162189,NULL,NULL,4,'/comm/propal/list.php?leftmenu=propals&search_status=2','','PropalStatusSigned',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162193,'auguria',1,'','left','commercial',162189,NULL,NULL,5,'/comm/propal/list.php?leftmenu=propals&search_status=3','','PropalStatusNotSigned',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162194,'auguria',1,'','left','commercial',162189,NULL,NULL,6,'/comm/propal/list.php?leftmenu=propals&search_status=4','','PropalStatusBilled',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162197,'auguria',1,'','left','commercial',162187,NULL,NULL,4,'/comm/propal/stats/index.php?leftmenu=propals','','Statistics',NULL,'propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162287,'auguria',1,'','left','commercial',161092,NULL,NULL,5,'/commande/index.php?leftmenu=orders','','CustomersOrders',NULL,'orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162288,'auguria',1,'','left','commercial',162287,NULL,NULL,0,'/commande/card.php?action=create&leftmenu=orders','','NewOrder',NULL,'orders',1,'','$user->rights->commande->creer','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162289,'auguria',1,'','left','commercial',162287,NULL,NULL,1,'/commande/list.php?leftmenu=orders','','List',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162290,'auguria',1,'','left','commercial',162289,NULL,NULL,2,'/commande/list.php?leftmenu=orders&search_status=0','','StatusOrderDraftShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162291,'auguria',1,'','left','commercial',162289,NULL,NULL,3,'/commande/list.php?leftmenu=orders&search_status=1','','StatusOrderValidated',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162292,'auguria',1,'','left','commercial',162289,NULL,NULL,4,'/commande/list.php?leftmenu=orders&search_status=2','','StatusOrderOnProcessShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162293,'auguria',1,'','left','commercial',162289,NULL,NULL,5,'/commande/list.php?leftmenu=orders&search_status=3','','StatusOrderToBill',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162294,'auguria',1,'','left','commercial',162289,NULL,NULL,6,'/commande/list.php?leftmenu=orders&search_status=4','','StatusOrderProcessed',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162295,'auguria',1,'','left','commercial',162289,NULL,NULL,7,'/commande/list.php?leftmenu=orders&search_status=-1','','StatusOrderCanceledShort',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162296,'auguria',1,'','left','commercial',162287,NULL,NULL,4,'/commande/stats/index.php?leftmenu=orders','','Statistics',NULL,'orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162387,'auguria',1,'','left','commercial',161090,NULL,NULL,6,'/expedition/index.php?leftmenu=sendings','','Shipments',NULL,'sendings',0,'sendings','$user->rights->expedition->lire','$conf->expedition->enabled',2,'2017-08-30 15:14:30'),(162388,'auguria',1,'','left','commercial',162387,NULL,NULL,0,'/expedition/card.php?action=create2&leftmenu=sendings','','NewSending',NULL,'sendings',1,'','$user->rights->expedition->creer','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162389,'auguria',1,'','left','commercial',162387,NULL,NULL,1,'/expedition/list.php?leftmenu=sendings','','List',NULL,'sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162390,'auguria',1,'','left','commercial',162387,NULL,NULL,2,'/expedition/stats/index.php?leftmenu=sendings','','Statistics',NULL,'sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162487,'auguria',1,'','left','commercial',161092,NULL,NULL,7,'/contrat/index.php?leftmenu=contracts','','Contracts',NULL,'contracts',0,'contracts','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162488,'auguria',1,'','left','commercial',162487,NULL,NULL,0,'/contrat/card.php?&action=create&leftmenu=contracts','','NewContract',NULL,'contracts',1,'','$user->rights->contrat->creer','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162489,'auguria',1,'','left','commercial',162487,NULL,NULL,1,'/contrat/list.php?leftmenu=contracts','','List',NULL,'contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162490,'auguria',1,'','left','commercial',162487,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts','','MenuServices',NULL,'contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162491,'auguria',1,'','left','commercial',162490,NULL,NULL,0,'/contrat/services.php?leftmenu=contracts&mode=0','','MenuInactiveServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162492,'auguria',1,'','left','commercial',162490,NULL,NULL,1,'/contrat/services.php?leftmenu=contracts&mode=4','','MenuRunningServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162493,'auguria',1,'','left','commercial',162490,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts&mode=4&filter=expired','','MenuExpiredServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162494,'auguria',1,'','left','commercial',162490,NULL,NULL,3,'/contrat/services.php?leftmenu=contracts&mode=5','','MenuClosedServices',NULL,'contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162587,'auguria',1,'','left','commercial',161092,NULL,NULL,8,'/fichinter/list.php?leftmenu=ficheinter','','Interventions',NULL,'interventions',0,'ficheinter','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162588,'auguria',1,'','left','commercial',162587,NULL,NULL,0,'/fichinter/card.php?action=create&leftmenu=ficheinter','','NewIntervention',NULL,'interventions',1,'','$user->rights->ficheinter->creer','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162589,'auguria',1,'','left','commercial',162587,NULL,NULL,1,'/fichinter/list.php?leftmenu=ficheinter','','List',NULL,'interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162590,'auguria',1,'','left','commercial',162587,NULL,NULL,2,'/fichinter/stats/index.php?leftmenu=ficheinter','','Statistics',NULL,'interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162687,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/fourn/facture/list.php?leftmenu=suppliers_bills','','BillsSuppliers',NULL,'bills',0,'supplier_bills','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162688,'auguria',1,'','left','accountancy',162687,NULL,NULL,0,'/fourn/facture/card.php?action=create&leftmenu=suppliers_bills','','NewBill',NULL,'bills',1,'','$user->rights->fournisseur->facture->creer','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162689,'auguria',1,'','left','accountancy',162687,NULL,NULL,1,'/fourn/facture/list.php?leftmenu=suppliers_bills','','List',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162690,'auguria',1,'','left','accountancy',162687,NULL,NULL,2,'/fourn/facture/paiement.php?leftmenu=suppliers_bills','','Payments',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162691,'auguria',1,'','left','accountancy',162687,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills&mode=supplier','','Statistics',NULL,'bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162692,'auguria',1,'','left','accountancy',162690,NULL,NULL,1,'/fourn/facture/rapport.php?leftmenu=suppliers_bills','','Reporting',NULL,'bills',2,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162787,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills','','BillsCustomers',NULL,'bills',0,'customer_bills','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162788,'auguria',1,'','left','accountancy',162787,NULL,NULL,3,'/compta/facture/card.php?action=create&leftmenu=customers_bills','','NewBill',NULL,'bills',1,'','$user->rights->facture->creer','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162789,'auguria',1,'','left','accountancy',162787,NULL,NULL,5,'/compta/facture/fiche-rec.php?leftmenu=customers_bills','','ListOfTemplates',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162791,'auguria',1,'','left','accountancy',162787,NULL,NULL,6,'/compta/paiement/list.php?leftmenu=customers_bills','','Payments',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162792,'auguria',1,'','left','accountancy',162787,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills','','List',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162797,'auguria',1,'','left','accountancy',162791,NULL,NULL,1,'/compta/paiement/rapport.php?leftmenu=customers_bills','','Reportings',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162798,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=bank','','MenuChequeDeposits',NULL,'bills',0,'checks','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162799,'auguria',1,'','left','accountancy',162798,NULL,NULL,0,'/compta/paiement/cheque/card.php?leftmenu=checks&action=new','','NewCheckDeposit',NULL,'compta',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162800,'auguria',1,'','left','accountancy',162798,NULL,NULL,1,'/compta/paiement/cheque/list.php?leftmenu=checks','','List',NULL,'bills',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162801,'auguria',1,'','left','accountancy',162787,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills','','Statistics',NULL,'bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162807,'auguria',1,'','left','accountancy',162792,NULL,NULL,1,'/compta/facture/list.php?leftmenu=customers_bills&search_status=0','','BillShortStatusDraft',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162808,'auguria',1,'','left','accountancy',162792,NULL,NULL,2,'/compta/facture/list.php?leftmenu=customers_bills&search_status=1','','BillShortStatusNotPaid',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162809,'auguria',1,'','left','accountancy',162792,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills&search_status=2','','BillShortStatusPaid',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162810,'auguria',1,'','left','accountancy',162792,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills&search_status=3','','BillShortStatusCanceled',NULL,'bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162987,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/commande/list.php?leftmenu=orders&search_status=3','','MenuOrdersToBill',NULL,'orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',0,'2017-08-30 15:14:30'),(163087,'auguria',1,'','left','accountancy',161093,NULL,NULL,4,'/don/index.php?leftmenu=donations&mainmenu=accountancy','','Donations',NULL,'donations',0,'donations','$user->rights->don->lire','$conf->don->enabled',2,'2017-08-30 15:14:30'),(163088,'auguria',1,'','left','accountancy',163087,NULL,NULL,0,'/don/card.php?leftmenu=donations&mainmenu=accountancy&action=create','','NewDonation',NULL,'donations',1,'','$user->rights->don->creer','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163089,'auguria',1,'','left','accountancy',163087,NULL,NULL,1,'/don/list.php?leftmenu=donations&mainmenu=accountancy','','List',NULL,'donations',1,'','$user->rights->don->lire','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163187,'auguria',1,'','left','accountancy',161102,NULL,NULL,5,'/compta/deplacement/index.php?leftmenu=tripsandexpenses','','TripsAndExpenses',NULL,'trips',0,'tripsandexpenses','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163188,'auguria',1,'','left','accountancy',163187,NULL,NULL,1,'/compta/deplacement/card.php?action=create&leftmenu=tripsandexpenses','','New',NULL,'trips',1,'','$user->rights->deplacement->creer','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163189,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/list.php?leftmenu=tripsandexpenses','','List',NULL,'trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163190,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses','','Statistics',NULL,'trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163287,'auguria',1,'','left','accountancy',161093,NULL,NULL,6,'/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy','','MenuSpecialExpenses',NULL,'compta',0,'tax','(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read)','$conf->tax->enabled || $conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163297,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=accountancy','','Salaries',NULL,'salaries',1,'tax_sal','$user->rights->salaries->payment->read','$conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163298,'auguria',1,'','left','accountancy',163297,NULL,NULL,2,'/compta/salaries/card.php?leftmenu=tax_salary&action=create','','NewPayment',NULL,'companies',2,'','$user->rights->salaries->payment->write','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163299,'auguria',1,'','left','accountancy',163297,NULL,NULL,3,'/compta/salaries/index.php?leftmenu=tax_salary','','Payments',NULL,'companies',2,'','$user->rights->salaries->payment->read','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163307,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/loan/index.php?leftmenu=tax_loan&mainmenu=accountancy','','Loans',NULL,'loan',1,'tax_loan','$user->rights->loan->read','$conf->loan->enabled',0,'2017-08-30 15:14:30'),(163308,'auguria',1,'','left','accountancy',163307,NULL,NULL,2,'/loan/card.php?leftmenu=tax_loan&action=create','','NewLoan',NULL,'loan',2,'','$user->rights->loan->write','$conf->loan->enabled && $leftmenu==\"tax_loan\"',0,'2017-08-30 15:14:30'),(163310,'auguria',1,'','left','accountancy',163307,NULL,NULL,4,'/loan/calc.php?leftmenu=tax_loan','','Calculator',NULL,'companies',2,'','$user->rights->loan->calc','$conf->loan->enabled && $leftmenu==\"tax_loan\" && ! empty($conf->global->LOAN_SHOW_CALCULATOR)',0,'2017-08-30 15:14:30'),(163337,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/sociales/index.php?leftmenu=tax_social','','SocialContributions',NULL,'',1,'tax_social','$user->rights->tax->charges->lire','$conf->tax->enabled',0,'2017-08-30 15:14:30'),(163338,'auguria',1,'','left','accountancy',163337,NULL,NULL,2,'/compta/sociales/card.php?leftmenu=tax_social&action=create','','MenuNewSocialContribution',NULL,'',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163339,'auguria',1,'','left','accountancy',163337,NULL,NULL,3,'/compta/sociales/payments.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly','','Payments',NULL,'',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163387,'auguria',1,'','left','accountancy',163287,NULL,NULL,7,'/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy','','VAT',NULL,'companies',1,'tax_vat','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)',0,'2017-08-30 15:14:30'),(163388,'auguria',1,'','left','accountancy',163387,NULL,NULL,0,'/compta/tva/card.php?leftmenu=tax_vat&action=create','','New',NULL,'companies',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163389,'auguria',1,'','left','accountancy',163387,NULL,NULL,1,'/compta/tva/reglement.php?leftmenu=tax_vat','','List',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163390,'auguria',1,'','left','accountancy',163387,NULL,NULL,2,'/compta/tva/clients.php?leftmenu=tax_vat','','ReportByCustomers',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163391,'auguria',1,'','left','accountancy',163387,NULL,NULL,3,'/compta/tva/quadri_detail.php?leftmenu=tax_vat','','ReportByQuarter',NULL,'companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163487,'auguria',1,'','left','accountancy',161093,NULL,NULL,7,'/accountancy/index.php?leftmenu=accountancy','','MenuAccountancy',NULL,'accountancy',0,'accounting','! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163488,'auguria',1,'','left','accountancy',163487,NULL,NULL,2,'/accountancy/customer/index.php?leftmenu=dispatch_customer','','CustomersVentilation',NULL,'accountancy',1,'dispatch_customer','$user->rights->accounting->bind->write','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163489,'auguria',1,'','left','accountancy',163488,NULL,NULL,3,'/accountancy/customer/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163490,'auguria',1,'','left','accountancy',163488,NULL,NULL,4,'/accountancy/customer/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163497,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/supplier/index.php?leftmenu=dispatch_supplier','','SuppliersVentilation',NULL,'accountancy',1,'ventil_supplier','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled',0,'2017-08-30 15:14:30'),(163498,'auguria',1,'','left','accountancy',163497,NULL,NULL,6,'/accountancy/supplier/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163499,'auguria',1,'','left','accountancy',163497,NULL,NULL,7,'/accountancy/supplier/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163507,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/expensereport/index.php?leftmenu=dispatch_expensereport','','ExpenseReportsVentilation',NULL,'accountancy',1,'ventil_expensereport','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(163508,'auguria',1,'','left','accountancy',163507,NULL,NULL,6,'/accountancy/expensereport/list.php','','ToDispatch',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163509,'auguria',1,'','left','accountancy',163507,NULL,NULL,7,'/accountancy/expensereport/lines.php','','Dispatched',NULL,'accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163517,'auguria',1,'','left','accountancy',163487,NULL,NULL,15,'/accountancy/bookkeeping/list.php','','Bookkeeping',NULL,'accountancy',1,'bookkeeping','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163522,'auguria',1,'','left','accountancy',163487,NULL,NULL,16,'/accountancy/bookkeeping/balance.php','','AccountBalance',NULL,'accountancy',1,'balance','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163527,'auguria',1,'','left','accountancy',163487,NULL,NULL,17,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','Reportings',NULL,'main',1,'report','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163528,'auguria',1,'','left','accountancy',163527,NULL,NULL,19,'/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportInOut',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163529,'auguria',1,'','left','accountancy',163528,NULL,NULL,18,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','ByAccounts',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163530,'auguria',1,'','left','accountancy',163528,NULL,NULL,20,'/compta/resultat/clientfourn.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163531,'auguria',1,'','left','accountancy',163527,NULL,NULL,21,'/compta/stats/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportTurnover',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163532,'auguria',1,'','left','accountancy',163531,NULL,NULL,22,'/compta/stats/casoc.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163533,'auguria',1,'','left','accountancy',163531,NULL,NULL,23,'/compta/stats/cabyuser.php?mainmenu=accountancy&leftmenu=accountancy','','ByUsers',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163534,'auguria',1,'','left','accountancy',163531,NULL,NULL,24,'/compta/stats/cabyprodserv.php?mainmenu=accountancy&leftmenu=accountancy','','ByProductsAndServices',NULL,'main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163537,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin','','FiscalPeriod',NULL,'admin',1,'accountancy_admin_period','','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\" && $conf->global->MAIN_FEATURES_LEVEL > 0',2,'2017-08-30 15:14:30'),(163538,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'/accountancy/index.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Setup',NULL,'accountancy',1,'accountancy_admin','$user->rights->accounting->chartofaccount','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163541,'auguria',1,'','left','accountancy',163538,NULL,NULL,10,'/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingJournals',NULL,'accountancy',2,'accountancy_admin_journal','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163542,'auguria',1,'','left','accountancy',163538,NULL,NULL,20,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Pcg_version',NULL,'accountancy',2,'accountancy_admin_chartmodel','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163543,'auguria',1,'','left','accountancy',163538,NULL,NULL,30,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Chartofaccounts',NULL,'accountancy',2,'accountancy_admin_chart','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163544,'auguria',1,'','left','accountancy',163538,NULL,NULL,40,'/accountancy/admin/categories_list.php?id=32&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingCategory',NULL,'accountancy',2,'accountancy_admin_chart_group','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163545,'auguria',1,'','left','accountancy',163538,NULL,NULL,50,'/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuDefaultAccounts',NULL,'accountancy',2,'accountancy_admin_default','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163546,'auguria',1,'','left','accountancy',163538,NULL,NULL,60,'/admin/dict.php?id=10&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuVatAccounts',NULL,'accountancy',2,'accountancy_admin_vat','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163547,'auguria',1,'','left','accountancy',163538,NULL,NULL,70,'/admin/dict.php?id=7&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuTaxAccounts',NULL,'accountancy',2,'accountancy_admin_tax','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163548,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuExpenseReportAccounts',NULL,'accountancy',2,'accountancy_admin_expensereport','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163549,'auguria',1,'','left','accountancy',163538,NULL,NULL,90,'/accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuProductsAccounts',NULL,'accountancy',2,'accountancy_admin_product','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163587,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/prelevement/index.php?leftmenu=withdraw&mainmenu=bank','','StandingOrders',NULL,'withdrawals',0,'withdraw','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled',2,'2017-08-30 15:14:30'),(163589,'auguria',1,'','left','accountancy',163587,NULL,NULL,0,'/compta/prelevement/create.php?leftmenu=withdraw','','NewStandingOrder',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163590,'auguria',1,'','left','accountancy',163587,NULL,NULL,2,'/compta/prelevement/bons.php?leftmenu=withdraw','','WithdrawalsReceipts',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163591,'auguria',1,'','left','accountancy',163587,NULL,NULL,3,'/compta/prelevement/list.php?leftmenu=withdraw','','WithdrawalsLines',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163593,'auguria',1,'','left','accountancy',163587,NULL,NULL,5,'/compta/prelevement/rejets.php?leftmenu=withdraw','','Rejects',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163594,'auguria',1,'','left','accountancy',163587,NULL,NULL,6,'/compta/prelevement/stats.php?leftmenu=withdraw','','Statistics',NULL,'withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163687,'auguria',1,'','left','accountancy',161101,NULL,NULL,1,'/compta/bank/index.php?leftmenu=bank&mainmenu=bank','','MenuBankCash',NULL,'banks',0,'bank','$user->rights->banque->lire','$conf->banque->enabled',0,'2017-08-30 15:14:30'),(163688,'auguria',1,'','left','accountancy',163687,NULL,NULL,0,'/compta/bank/card.php?action=create&leftmenu=bank','','MenuNewFinancialAccount',NULL,'banks',1,'','$user->rights->banque->configurer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163690,'auguria',1,'','left','accountancy',163687,NULL,NULL,2,'/compta/bank/bankentries.php?leftmenu=bank','','ListTransactions',NULL,'banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163691,'auguria',1,'','left','accountancy',163687,NULL,NULL,3,'/compta/bank/budget.php?leftmenu=bank','','ListTransactionsByCategory',NULL,'banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163693,'auguria',1,'','left','accountancy',163687,NULL,NULL,5,'/compta/bank/transfer.php?leftmenu=bank','','BankTransfers',NULL,'banks',1,'','$user->rights->banque->transfer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163737,'auguria',1,'','left','accountancy',161101,NULL,NULL,4,'/categories/index.php?leftmenu=bank&type=5','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163738,'auguria',1,'','left','accountancy',163737,NULL,NULL,0,'/categories/card.php?leftmenu=bank&action=create&type=5','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163787,'auguria',1,'','left','accountancy',161093,NULL,NULL,11,'/compta/resultat/index.php?leftmenu=ca&mainmenu=accountancy','','Reportings',NULL,'main',0,'ca','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled',0,'2017-08-30 15:14:30'),(163792,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'','','Journalization',NULL,'main',1,'','$user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163793,'auguria',1,'','left','accountancy',163792,NULL,NULL,4,'/accountancy/journal/sellsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=1','','SellsJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163794,'auguria',1,'','left','accountancy',163792,NULL,NULL,1,'/accountancy/journal/bankjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=3','','BankJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163795,'auguria',1,'','left','accountancy',163792,NULL,NULL,2,'/accountancy/journal/expensereportsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=6','','ExpenseReportJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163796,'auguria',1,'','left','accountancy',163792,NULL,NULL,3,'/accountancy/journal/purchasesjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=2','','PurchasesJournal',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163798,'auguria',1,'','left','accountancy',163787,NULL,NULL,0,'/compta/resultat/index.php?leftmenu=ca','','ReportInOut',NULL,'main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163799,'auguria',1,'','left','accountancy',163788,NULL,NULL,0,'/compta/resultat/clientfourn.php?leftmenu=ca','','ByCompanies',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163800,'auguria',1,'','left','accountancy',163787,NULL,NULL,1,'/compta/stats/index.php?leftmenu=ca','','ReportTurnover',NULL,'main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163801,'auguria',1,'','left','accountancy',163790,NULL,NULL,0,'/compta/stats/casoc.php?leftmenu=ca','','ByCompanies',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163802,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyuser.php?leftmenu=ca','','ByUsers',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163803,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyprodserv.php?leftmenu=ca','','ByProductsAndServices',NULL,'main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163887,'auguria',1,'','left','products',161090,NULL,NULL,0,'/product/index.php?leftmenu=product&type=0','','Products',NULL,'products',0,'product','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163888,'auguria',1,'','left','products',163887,NULL,NULL,0,'/product/card.php?leftmenu=product&action=create&type=0','','NewProduct',NULL,'products',1,'','$user->rights->produit->creer','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163889,'auguria',1,'','left','products',163887,NULL,NULL,1,'/product/list.php?leftmenu=product&type=0','','List',NULL,'products',1,'','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163890,'auguria',1,'','left','products',163887,NULL,NULL,4,'/product/reassort.php?type=0','','Stocks',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163891,'auguria',1,'','left','products',163887,NULL,NULL,7,'/product/stats/card.php?id=all&leftmenu=stats&type=0','','Statistics',NULL,'main',1,'','$user->rights->produit->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(163892,'auguria',1,'','left','products',163887,NULL,NULL,5,'/product/reassortlot.php?type=0','','StocksByLotSerial',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163893,'auguria',1,'','left','products',163887,NULL,NULL,6,'/product/stock/productlot_list.php','','LotSerial',NULL,'products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163987,'auguria',1,'','left','products',161090,NULL,NULL,1,'/product/index.php?leftmenu=service&type=1','','Services',NULL,'products',0,'service','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163988,'auguria',1,'','left','products',163987,NULL,NULL,0,'/product/card.php?leftmenu=service&action=create&type=1','','NewService',NULL,'products',1,'','$user->rights->service->creer','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163989,'auguria',1,'','left','products',163987,NULL,NULL,1,'/product/list.php?leftmenu=service&type=1','','List',NULL,'products',1,'','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163990,'auguria',1,'','left','products',163987,NULL,NULL,5,'/product/stats/card.php?id=all&leftmenu=stats&type=1','','Statistics',NULL,'main',1,'','$user->rights->service->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(164187,'auguria',1,'','left','products',161090,NULL,NULL,3,'/product/stock/index.php?leftmenu=stock','','Stock',NULL,'stocks',0,'stock','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164188,'auguria',1,'','left','products',164187,NULL,NULL,0,'/product/stock/card.php?action=create','','MenuNewWarehouse',NULL,'stocks',1,'','$user->rights->stock->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164189,'auguria',1,'','left','products',164187,NULL,NULL,1,'/product/stock/list.php','','List',NULL,'stocks',1,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164191,'auguria',1,'','left','products',164187,NULL,NULL,3,'/product/stock/mouvement.php','','Movements',NULL,'stocks',1,'','$user->rights->stock->mouvement->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164192,'auguria',1,'','left','products',164187,NULL,NULL,4,'/product/stock/replenish.php','','Replenishments',NULL,'stocks',1,'','$user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire','$conf->stock->enabled && $conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(164193,'auguria',1,'','left','products',164187,NULL,NULL,5,'/product/stock/massstockmove.php','','MassStockTransferShort',NULL,'stocks',1,'','$user->rights->stock->mouvement->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164287,'auguria',1,'','left','products',161090,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=0','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164288,'auguria',1,'','left','products',164287,NULL,NULL,0,'/categories/card.php?action=create&type=0','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164487,'auguria',1,'','left','project',161094,NULL,NULL,3,'/projet/activity/perweek.php?leftmenu=projects','','NewTimeSpent',NULL,'projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164687,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/index.php?leftmenu=projects','','Projects',NULL,'projects',0,'projects','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164688,'auguria',1,'','left','project',164687,NULL,NULL,1,'/projet/card.php?leftmenu=projects&action=create','','NewProject',NULL,'projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164689,'auguria',1,'','left','project',164687,NULL,NULL,2,'/projet/list.php?leftmenu=projects','','List',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164690,'auguria',1,'','left','project',164687,NULL,NULL,3,'/projet/stats/index.php?leftmenu=projects','','Statistics',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164787,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/activity/index.php?leftmenu=projects','','Activities',NULL,'projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164788,'auguria',1,'','left','project',164787,NULL,NULL,1,'/projet/tasks.php?leftmenu=projects&action=create','','NewTask',NULL,'projects',1,'','$user->rights->projet->creer','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164789,'auguria',1,'','left','project',164787,NULL,NULL,2,'/projet/tasks/list.php?leftmenu=projects','','List',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164791,'auguria',1,'','left','project',164787,NULL,NULL,4,'/projet/tasks/stats/index.php?leftmenu=projects','','Statistics',NULL,'projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164891,'auguria',1,'','left','project',161094,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=6','','Categories',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164892,'auguria',1,'','left','project',164891,NULL,NULL,0,'/categories/card.php?action=create&type=6','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164987,'auguria',1,'','left','tools',161095,NULL,NULL,0,'/comm/mailing/index.php?leftmenu=mailing','','EMailings',NULL,'mails',0,'mailing','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164988,'auguria',1,'','left','tools',164987,NULL,NULL,0,'/comm/mailing/card.php?leftmenu=mailing&action=create','','NewMailing',NULL,'mails',1,'','$user->rights->mailing->creer','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164989,'auguria',1,'','left','tools',164987,NULL,NULL,1,'/comm/mailing/list.php?leftmenu=mailing','','List',NULL,'mails',1,'','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(165187,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/exports/index.php?leftmenu=export','','FormatedExport',NULL,'exports',0,'export','$user->rights->export->lire','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165188,'auguria',1,'','left','tools',165187,NULL,NULL,0,'/exports/export.php?leftmenu=export','','NewExport',NULL,'exports',1,'','$user->rights->export->creer','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165217,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/imports/index.php?leftmenu=import','','FormatedImport',NULL,'exports',0,'import','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165218,'auguria',1,'','left','tools',165217,NULL,NULL,0,'/imports/import.php?leftmenu=import','','NewImport',NULL,'exports',1,'','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165287,'auguria',1,'','left','members',161100,NULL,NULL,0,'/adherents/index.php?leftmenu=members&mainmenu=members','','Members',NULL,'members',0,'members','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165288,'auguria',1,'','left','members',165287,NULL,NULL,0,'/adherents/card.php?leftmenu=members&action=create','','NewMember',NULL,'members',1,'','$user->rights->adherent->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165289,'auguria',1,'','left','members',165287,NULL,NULL,1,'/adherents/list.php','','List',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165290,'auguria',1,'','left','members',165289,NULL,NULL,2,'/adherents/list.php?leftmenu=members&statut=-1','','MenuMembersToValidate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165291,'auguria',1,'','left','members',165289,NULL,NULL,3,'/adherents/list.php?leftmenu=members&statut=1','','MenuMembersValidated',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165292,'auguria',1,'','left','members',165289,NULL,NULL,4,'/adherents/list.php?leftmenu=members&statut=1&filter=outofdate','','MenuMembersNotUpToDate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165293,'auguria',1,'','left','members',165289,NULL,NULL,5,'/adherents/list.php?leftmenu=members&statut=1&filter=uptodate','','MenuMembersUpToDate',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165294,'auguria',1,'','left','members',165289,NULL,NULL,6,'/adherents/list.php?leftmenu=members&statut=0','','MenuMembersResiliated',NULL,'members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165295,'auguria',1,'','left','members',165287,NULL,NULL,7,'/adherents/stats/geo.php?leftmenu=members&mode=memberbycountry','','MenuMembersStats',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165387,'auguria',1,'','left','members',161100,NULL,NULL,1,'/adherents/index.php?leftmenu=members&mainmenu=members','','Subscriptions',NULL,'compta',0,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165388,'auguria',1,'','left','members',165387,NULL,NULL,0,'/adherents/list.php?statut=-1&leftmenu=accountancy&mainmenu=members','','NewSubscription',NULL,'compta',1,'','$user->rights->adherent->cotisation->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165389,'auguria',1,'','left','members',165387,NULL,NULL,1,'/adherents/subscription/list.php?leftmenu=members','','List',NULL,'compta',1,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165390,'auguria',1,'','left','members',165387,NULL,NULL,7,'/adherents/stats/index.php?leftmenu=members','','MenuMembersStats',NULL,'members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165589,'auguria',1,'','left','members',165287,NULL,NULL,9,'/adherents/htpasswd.php?leftmenu=export','','Filehtpasswd',NULL,'members',1,'','$user->rights->adherent->export','! empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && $conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165590,'auguria',1,'','left','members',165287,NULL,NULL,10,'/adherents/cartes/carte.php?leftmenu=export','','MembersCards',NULL,'members',1,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165687,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/user/index.php?leftmenu=hrm&mode=employee','','Employees',NULL,'hrm',0,'hrm','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165688,'auguria',1,'','left','hrm',165687,NULL,NULL,1,'/user/card.php?action=create&employee=1','','NewEmployee',NULL,'hrm',1,'','$user->rights->hrm->employee->write','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165689,'auguria',1,'','left','hrm',165687,NULL,NULL,2,'/user/index.php?$leftmenu=hrm&mode=employee&contextpage=employeelist','','List',NULL,'hrm',1,'','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165787,'auguria',1,'','left','members',161100,NULL,NULL,5,'/adherents/type.php?leftmenu=setup&mainmenu=members','','MembersTypes',NULL,'members',0,'setup','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165788,'auguria',1,'','left','members',165787,NULL,NULL,0,'/adherents/type.php?leftmenu=setup&mainmenu=members&action=create','','New',NULL,'members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165789,'auguria',1,'','left','members',165787,NULL,NULL,1,'/adherents/type.php?leftmenu=setup&mainmenu=members','','List',NULL,'members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(166087,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','CPTitreMenu',NULL,'holiday',0,'hrm','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166088,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/card.php?&action=request','','MenuAddCP',NULL,'holiday',1,'','$user->rights->holiday->write','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166089,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','List',NULL,'holiday',1,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166090,'auguria',1,'','left','hrm',166089,NULL,NULL,1,'/holiday/list.php?select_statut=2&leftmenu=hrm','','ListToApprove',NULL,'trips',2,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166091,'auguria',1,'','left','hrm',166087,NULL,NULL,2,'/holiday/define_holiday.php?&action=request','','MenuConfCP',NULL,'holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166092,'auguria',1,'','left','hrm',166087,NULL,NULL,3,'/holiday/view_log.php?&action=request','','MenuLogCP',NULL,'holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166187,'auguria',1,'','left','commercial',161092,NULL,NULL,6,'/fourn/commande/index.php?leftmenu=orders_suppliers','','SuppliersOrders',NULL,'orders',0,'orders_suppliers','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166188,'auguria',1,'','left','commercial',166187,NULL,NULL,0,'/fourn/commande/card.php?action=create&leftmenu=orders_suppliers','','NewOrder',NULL,'orders',1,'','$user->rights->fournisseur->commande->creer','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166189,'auguria',1,'','left','commercial',166187,NULL,NULL,1,'/fourn/commande/list.php?leftmenu=orders_suppliers&search_status=0','','List',NULL,'orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166195,'auguria',1,'','left','commercial',166187,NULL,NULL,7,'/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier','','Statistics',NULL,'orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166287,'auguria',1,'','left','members',161100,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=3','','MembersCategoriesShort',NULL,'categories',0,'cat','$user->rights->categorie->lire','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166288,'auguria',1,'','left','members',166287,NULL,NULL,0,'/categories/card.php?action=create&type=3','','NewCategory',NULL,'categories',1,'','$user->rights->categorie->creer','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166387,'auguria',1,'','left','hrm',161102,NULL,NULL,5,'/expensereport/index.php?leftmenu=expensereport','','TripsAndExpenses',NULL,'trips',0,'expensereport','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166388,'auguria',1,'','left','hrm',166387,NULL,NULL,1,'/expensereport/card.php?action=create&leftmenu=expensereport','','New',NULL,'trips',1,'','$user->rights->expensereport->creer','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166389,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/list.php?leftmenu=expensereport','','List',NULL,'trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166390,'auguria',1,'','left','hrm',166389,NULL,NULL,2,'/expensereport/list.php?search_status=2&leftmenu=expensereport','','ListToApprove',NULL,'trips',2,'','$user->rights->expensereport->approve','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166391,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/stats/index.php?leftmenu=expensereport','','Statistics',NULL,'trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(167182,'all',1,'knowledgemanagement','left','ticket',-1,NULL,'ticket',101,'/knowledgemanagement/knowledgerecord_list.php','','MenuKnowledgeRecord','','knowledgemanagement',NULL,'knowledgemanagement_knowledgerecord','$user->rights->knowledgemanagement->knowledgerecord->read','$conf->knowledgemanagement->enabled',2,'2022-02-07 13:39:27'),(167183,'all',1,'knowledgemanagement','left','ticket',-1,'knowledgemanagement_knowledgerecord','ticket',111,'/knowledgemanagement/knowledgerecord_list.php','','ListKnowledgeRecord','','knowledgemanagement',NULL,'knowledgemanagement_list','$user->rights->knowledgemanagement->knowledgerecord->read','$conf->knowledgemanagement->enabled',2,'2022-02-07 13:39:27'),(167184,'all',1,'knowledgemanagement','left','ticket',-1,'knowledgemanagement_knowledgerecord','ticket',110,'/knowledgemanagement/knowledgerecord_card.php?action=create','','NewKnowledgeRecord','','knowledgemanagement',NULL,'knowledgemanagement_new','$user->rights->knowledgemanagement->knowledgerecord->write','$conf->knowledgemanagement->enabled',2,'2022-02-07 13:39:27'),(167185,'all',1,'knowledgemanagement','left','ticket',-1,'knowledgemanagement_knowledgerecord','ticket',112,'/categories/index.php?type=13','','Categories','','knowledgemanagement',NULL,NULL,'$user->rights->knowledgemanagement->knowledgerecord->read','$conf->knowledgemanagement->enabled',0,'2022-02-07 13:39:27'),(167331,'all',1,'agenda','top','agenda',0,NULL,NULL,86,'/comm/action/index.php','','TMenuAgenda','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read || $user->rights->resource->read','$conf->agenda->enabled || $conf->resource->enabled',2,'2022-12-11 21:23:42'),(167332,'all',1,'agenda','left','agenda',167331,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Actions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167333,'all',1,'agenda','left','agenda',167332,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&leftmenu=agenda&action=create','','NewAction','','commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167334,'all',1,'agenda','left','agenda',167332,NULL,NULL,140,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda','','Calendar','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167335,'all',1,'agenda','left','agenda',167334,NULL,NULL,141,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167336,'all',1,'agenda','left','agenda',167334,NULL,NULL,142,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167337,'all',1,'agenda','left','agenda',167334,NULL,NULL,143,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=todo&filtert=-1','','MenuToDoActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-12-11 21:23:42'),(167338,'all',1,'agenda','left','agenda',167334,NULL,NULL,144,'/comm/action/index.php?action=default&mainmenu=agenda&leftmenu=agenda&status=done&filtert=-1','','MenuDoneActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-12-11 21:23:42'),(167339,'all',1,'agenda','left','agenda',167332,NULL,NULL,110,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda','','List','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167340,'all',1,'agenda','left','agenda',167339,NULL,NULL,111,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167341,'all',1,'agenda','left','agenda',167339,NULL,NULL,112,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions','','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167342,'all',1,'agenda','left','agenda',167339,NULL,NULL,113,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=todo&filtert=-1','','MenuToDoActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-12-11 21:23:42'),(167343,'all',1,'agenda','left','agenda',167339,NULL,NULL,114,'/comm/action/list.php?mode=show_list&mainmenu=agenda&leftmenu=agenda&status=done&filtert=-1','','MenuDoneActions','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2022-12-11 21:23:42'),(167344,'all',1,'agenda','left','agenda',167332,NULL,NULL,160,'/comm/action/rapport/index.php?mainmenu=agenda&leftmenu=agenda','','Reportings','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2022-12-11 21:23:42'),(167345,'all',1,'agenda','left','agenda',167332,NULL,NULL,170,'/categories/index.php?mainmenu=agenda&leftmenu=agenda&type=10','','Categories','','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->categorie->enabled',2,'2022-12-11 21:23:42'),(167346,'all',1,'barcode','left','tools',-1,NULL,'tools',200,'/barcode/printsheet.php?mainmenu=tools&leftmenu=barcodeprint','','BarCodePrintsheet','','products',NULL,'barcodeprint','$user->hasRight(\"barcode\", \"read\")','isModEnabled(\"barcode\")',0,'2022-12-11 21:23:42'),(167347,'all',1,'barcode','left','home',-1,'admintools','home',300,'/barcode/codeinit.php?mainmenu=home&leftmenu=admintools','','MassBarcodeInit','','products',NULL,NULL,'$user->admin','isModEnabled(\"barcode\") && preg_match(\'/^(admintools|all)/\',$leftmenu)',0,'2022-12-11 21:23:42'),(167348,'all',1,'cron','left','home',-1,'admintools','home',500,'/cron/list.php?leftmenu=admintools','','CronList','','cron',NULL,NULL,'$user->rights->cron->read','$conf->cron->enabled && preg_match(\'/^(admintools|all)/\', $leftmenu)',2,'2022-12-11 21:23:42'),(167349,'all',1,'blockedlog','left','tools',-1,NULL,'tools',200,'/blockedlog/admin/blockedlog_list.php?mainmenu=tools&leftmenu=blockedlogbrowser','','BrowseBlockedLog','','blockedlog',NULL,'blockedlogbrowser','$user->rights->blockedlog->read','$conf->blockedlog->enabled',2,'2022-12-11 21:23:42'),(167350,'all',1,'ecm','top','ecm',0,NULL,NULL,82,'/ecm/index.php','','MenuECM','','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload || $user->rights->ecm->setup','$conf->ecm->enabled',2,'2022-12-11 21:23:42'),(167351,'all',1,'ecm','left','ecm',-1,NULL,'ecm',101,'/ecm/index.php?mainmenu=ecm&leftmenu=ecm','','ECMArea','','ecm',NULL,'ecm','$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2022-12-11 21:23:42'),(167352,'all',1,'ecm','left','ecm',-1,'ecm','ecm',102,'/ecm/index.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsManual','','ecm',NULL,'ecm_manual','$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2022-12-11 21:23:42'),(167353,'all',1,'ecm','left','ecm',-1,'ecm','ecm',103,'/ecm/index_auto.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsAuto','','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload','($user->rights->ecm->read || $user->rights->ecm->upload) && getDolGlobalInt(\"ECM_AUTO_TREE_ENABLED\")',2,'2022-12-11 21:23:42'),(167354,'all',1,'ecm','left','ecm',-1,'ecm','ecm',104,'/ecm/index_medias.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsMedias','','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload','($user->rights->ecm->read || $user->rights->ecm->upload) && getDolGlobalInt(\"MAIN_FEATURES_LEVEL\") == 2',2,'2022-12-11 21:23:42'),(167355,'all',1,'margins','left','billing',-1,NULL,'billing',100,'/margin/index.php','','Margins','','margins',NULL,'margins','$user->rights->margins->liretous','$conf->margin->enabled',2,'2022-12-11 21:23:43'),(167356,'all',1,'opensurvey','left','tools',-1,NULL,'tools',200,'/opensurvey/index.php?mainmenu=tools&leftmenu=opensurvey','','Survey','','opensurvey',NULL,'opensurvey','$user->rights->opensurvey->read','$conf->opensurvey->enabled',0,'2022-12-11 21:23:43'),(167357,'all',1,'opensurvey','left','tools',-1,'opensurvey','tools',210,'/opensurvey/wizard/index.php','','NewSurvey','','opensurvey',NULL,'opensurvey_new','$user->rights->opensurvey->write','$conf->opensurvey->enabled',0,'2022-12-11 21:23:43'),(167358,'all',1,'opensurvey','left','tools',-1,'opensurvey','tools',220,'/opensurvey/list.php','','List','','opensurvey',NULL,'opensurvey_list','$user->rights->opensurvey->read','$conf->opensurvey->enabled',0,'2022-12-11 21:23:43'),(167359,'all',1,'printing','left','home',-1,'admintools','home',300,'/printing/index.php?mainmenu=home&leftmenu=admintools','','MenuDirectPrinting','','printing',NULL,NULL,'$user->rights->printing->read','$conf->printing->enabled && preg_match(\'/^(admintools|all)/\', $leftmenu)',0,'2022-12-11 21:23:43'),(167360,'all',1,'recruitment','left','hrm',-1,NULL,'hrm',1001,'/recruitment/index.php','','Recruitment','','recruitment',NULL,'recruitmentjobposition','$user->rights->recruitment->recruitmentjobposition->read','$conf->recruitment->enabled',2,'2022-12-11 21:23:43'),(167361,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1002,'/recruitment/recruitmentjobposition_card.php?action=create','','NewPositionToBeFilled','','recruitment',NULL,'recruitment_recruitmentjobposition_new','$user->rights->recruitment->recruitmentjobposition->write','$conf->recruitment->enabled',2,'2022-12-11 21:23:43'),(167362,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1003,'/recruitment/recruitmentjobposition_list.php','','ListOfPositionsToBeFilled','','recruitment',NULL,'recruitment_recruitmentjobposition_list','$user->rights->recruitment->recruitmentjobposition->read','$conf->recruitment->enabled',2,'2022-12-11 21:23:43'),(167363,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1004,'/recruitment/recruitmentcandidature_card.php?action=create','','NewCandidature','','recruitment',NULL,'recruitment_recruitmentcandidature_new','$user->rights->recruitment->recruitmentjobposition->write','$conf->recruitment->enabled',2,'2022-12-11 21:23:43'),(167364,'all',1,'recruitment','left','hrm',-1,'recruitmentjobposition','hrm',1005,'/recruitment/recruitmentcandidature_list.php','','ListOfCandidatures','','recruitment',NULL,'recruitment_recruitmentcandidature_list','$user->rights->recruitment->recruitmentjobposition->read','$conf->recruitment->enabled',2,'2022-12-11 21:23:43'),(167365,'all',1,'resource','left','agenda',-1,NULL,'agenda',100,'/resource/list.php','','MenuResourceIndex','','resource',NULL,'resource','$user->rights->resource->read','1',0,'2022-12-11 21:23:43'),(167366,'all',1,'resource','left','agenda',-1,'resource','agenda',101,'/resource/card.php?action=create','','MenuResourceAdd','','resource',NULL,'resource_add','$user->rights->resource->write','1',0,'2022-12-11 21:23:43'),(167367,'all',1,'resource','left','agenda',-1,'resource','agenda',102,'/resource/list.php','','List','','resource',NULL,'resource_list','$user->rights->resource->read','1',0,'2022-12-11 21:23:43'),(167368,'all',1,'stripe','left','bank',-1,NULL,'bank',100,'','','StripeAccount','','stripe',NULL,'stripe','$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-12-11 21:23:43'),(167369,'all',1,'stripe','left','bank',-1,'stripe','bank',102,'/stripe/charge.php','','StripeChargeList','','stripe',NULL,NULL,'$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-12-11 21:23:43'),(167370,'all',1,'stripe','left','bank',-1,'stripe','bank',102,'/stripe/transaction.php','','StripeTransactionList','','stripe',NULL,NULL,'$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-12-11 21:23:43'),(167371,'all',1,'stripe','left','bank',-1,'stripe','bank',103,'/stripe/payout.php','','StripePayoutList','','stripe',NULL,NULL,'$user->rights->banque->lire','$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',0,'2022-12-11 21:23:43'),(167372,'all',1,'ticket','left','ticket',-1,NULL,'ticket',101,'/ticket/index.php','','Ticket','','ticket',NULL,'ticket','$user->rights->ticket->read','$conf->ticket->enabled',2,'2022-12-11 21:23:44'),(167373,'all',1,'ticket','left','ticket',-1,'ticket','ticket',102,'/ticket/card.php?action=create','','NewTicket','','ticket',NULL,NULL,'$user->rights->ticket->write','$conf->ticket->enabled',2,'2022-12-11 21:23:44'),(167374,'all',1,'ticket','left','ticket',-1,'ticket','ticket',103,'/ticket/list.php?search_fk_status=non_closed','','List','','ticket',NULL,'ticketlist','$user->rights->ticket->read','$conf->ticket->enabled',2,'2022-12-11 21:23:44'),(167375,'all',1,'ticket','left','ticket',-1,'ticket','ticket',105,'/ticket/list.php?mode=mine&search_fk_status=non_closed','','MenuTicketMyAssign','','ticket',NULL,'ticketmy','$user->rights->ticket->read','$conf->ticket->enabled',0,'2022-12-11 21:23:44'),(167376,'all',1,'ticket','left','ticket',-1,'ticket','ticket',107,'/ticket/stats/index.php','','Statistics','','ticket',NULL,NULL,'$user->rights->ticket->read','$conf->ticket->enabled',0,'2022-12-11 21:23:44'),(167377,'all',1,'ticket','left','ticket',-1,'ticket','ticket',107,'/categories/index.php?type=12','','Categories','','ticket',NULL,NULL,'$user->rights->ticket->read','$conf->categorie->enabled',0,'2022-12-11 21:23:44'),(167378,'all',1,'takepos','top','takepos',0,NULL,NULL,1001,'/takepos/index.php','takepos','PointOfSaleShort','','cashdesk',NULL,NULL,'$user->rights->takepos->run','$conf->takepos->enabled',2,'2022-12-11 21:23:44'),(167379,'all',1,'website','top','website',0,NULL,NULL,100,'/website/index.php','','WebSites','','website',NULL,NULL,'$user->rights->website->read','$conf->website->enabled',2,'2022-12-11 21:23:44'); /*!40000 ALTER TABLE `llx_menu` ENABLE KEYS */; UNLOCK TABLES; @@ -8891,20 +8971,20 @@ DROP TABLE IF EXISTS `llx_mrp_mo`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_mrp_mo` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '(PROV)', + `ref` varchar(128) NOT NULL DEFAULT '(PROV)', `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `qty` double NOT NULL, `fk_warehouse` int(11) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `status` int(11) NOT NULL, `fk_product` int(11) NOT NULL, `date_start_planned` datetime DEFAULT NULL, @@ -8913,7 +8993,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `mrptype` int(11) DEFAULT 0, `fk_parent_line` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -8952,7 +9032,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_mrp_mo_fk_object` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -8978,20 +9058,20 @@ CREATE TABLE `llx_mrp_production` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_mo` int(11) NOT NULL, `origin_id` int(11) DEFAULT NULL, - `origin_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `origin_type` varchar(10) DEFAULT NULL, `position` int(11) NOT NULL DEFAULT 0, `fk_product` int(11) NOT NULL, `fk_warehouse` int(11) DEFAULT NULL, `qty` double NOT NULL DEFAULT 1, - `batch` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `role` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, + `role` varchar(10) DEFAULT NULL, `fk_mrp_production` int(11) DEFAULT NULL, `fk_stock_movement` int(11) DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `qty_frozen` smallint(6) DEFAULT 0, `disable_stock_change` smallint(6) DEFAULT 0, PRIMARY KEY (`rowid`), @@ -9024,8 +9104,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `name` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code` varchar(255) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, `entity` int(11) DEFAULT 1, `fk_user` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) @@ -9084,11 +9164,11 @@ 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 utf8mb3_unicode_ci NOT NULL, + `objet_type` varchar(24) NOT NULL, `objet_id` int(11) NOT 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, + `email` varchar(255) DEFAULT NULL, + `type` varchar(16) DEFAULT 'email', + `type_target` varchar(16) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9117,7 +9197,7 @@ 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 utf8mb3_unicode_ci DEFAULT 'email', + `type` varchar(16) DEFAULT 'email', PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9141,12 +9221,12 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `objet_type` varchar(16) DEFAULT NULL, `objet_id` int(11) NOT NULL, - `type_notif` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT 'browser', + `type_notif` varchar(16) DEFAULT 'browser', `date_notif` datetime DEFAULT NULL, `user_id` int(11) DEFAULT NULL, - `moreparam` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `moreparam` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9169,8 +9249,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `state` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `service` varchar(36) DEFAULT NULL, + `state` varchar(128) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `fk_adherent` int(11) DEFAULT NULL, `entity` int(11) DEFAULT NULL, @@ -9196,14 +9276,15 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `token` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `service` varchar(36) DEFAULT NULL, + `token` text DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `fk_adherent` int(11) DEFAULT NULL, `entity` int(11) DEFAULT NULL, - `tokenstring` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `restricted_ips` varchar(200) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `tokenstring` text DEFAULT NULL, + `state` text DEFAULT NULL, + `restricted_ips` varchar(200) DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`rowid`) @@ -9229,11 +9310,11 @@ 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 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, + `type_object` varchar(32) NOT NULL, + `property` varchar(32) NOT NULL, + `lang` varchar(5) NOT NULL DEFAULT '0', + `value` text DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_object_lang` (`fk_object`,`type_object`,`property`,`lang`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -9258,13 +9339,13 @@ 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 utf8mb3_unicode_ci NOT NULL, + `object_type` varchar(32) NOT NULL, `object_id` int(11) NOT NULL, `datec` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `name` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, - `ip` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `pathoffile` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `name` varchar(255) NOT NULL, + `ip` varchar(128) DEFAULT NULL, + `pathoffile` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9287,9 +9368,11 @@ 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 utf8mb3_unicode_ci NOT NULL, - `comment` text COLLATE utf8mb3_unicode_ci NOT NULL, - `usercomment` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `id_sondage` char(16) NOT NULL, + `comment` text NOT NULL, + `usercomment` text DEFAULT NULL, + `ip` varchar(250) DEFAULT NULL, + `date_creation` datetime DEFAULT NULL, PRIMARY KEY (`id_comment`), KEY `idx_id_comment` (`id_comment`), KEY `idx_id_sondage` (`id_sondage`) @@ -9302,7 +9385,7 @@ CREATE TABLE `llx_opensurvey_comments` ( LOCK TABLES `llx_opensurvey_comments` WRITE; /*!40000 ALTER TABLE `llx_opensurvey_comments` DISABLE KEYS */; -INSERT INTO `llx_opensurvey_comments` VALUES (2,'434dio8rxfljs3p1','aaa','aaa'),(5,'434dio8rxfljs3p1','aaa','aaa'),(6,'434dio8rxfljs3p1','gfh','jj'),(11,'434dio8rxfljs3p1','fsdf','fdsf'),(12,'3imby4hf7joiilsu','fsdf','aa'),(16,'3imby4hf7joiilsu','gdfg','gfdg'),(17,'3imby4hf7joiilsu','gfdgd','gdfgd'),(18,'om4e7azfiurnjtqe','fds','fdsf'),(26,'qgsfrgb922rqzocy','gfdg','gfdg'),(27,'qgsfrgb922rqzocy','gfdg','gfd'),(30,'ckanvbe7kt3rdb3h','hfgh','fdfds'); +INSERT INTO `llx_opensurvey_comments` VALUES (2,'434dio8rxfljs3p1','aaa','aaa',NULL,NULL),(5,'434dio8rxfljs3p1','aaa','aaa',NULL,NULL),(6,'434dio8rxfljs3p1','gfh','jj',NULL,NULL),(11,'434dio8rxfljs3p1','fsdf','fdsf',NULL,NULL),(12,'3imby4hf7joiilsu','fsdf','aa',NULL,NULL),(16,'3imby4hf7joiilsu','gdfg','gfdg',NULL,NULL),(17,'3imby4hf7joiilsu','gfdgd','gdfgd',NULL,NULL),(18,'om4e7azfiurnjtqe','fds','fdsf',NULL,NULL),(26,'qgsfrgb922rqzocy','gfdg','gfdg',NULL,NULL),(27,'qgsfrgb922rqzocy','gfdg','gfd',NULL,NULL),(30,'ckanvbe7kt3rdb3h','hfgh','fdfds',NULL,NULL); /*!40000 ALTER TABLE `llx_opensurvey_comments` ENABLE KEYS */; UNLOCK TABLES; @@ -9315,9 +9398,9 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `question` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `available_answers` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `id_sondage` varchar(16) DEFAULT NULL, + `question` text DEFAULT NULL, + `available_answers` text DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9339,21 +9422,21 @@ 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 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, + `id_sondage` varchar(16) NOT NULL, + `commentaires` text DEFAULT NULL, + `mail_admin` varchar(128) DEFAULT NULL, + `nom_admin` varchar(64) DEFAULT NULL, `fk_user_creat` int(11) NOT NULL, - `titre` text COLLATE utf8mb3_unicode_ci NOT NULL, + `titre` text NOT NULL, `date_fin` datetime DEFAULT NULL, `status` int(11) DEFAULT 1, - `format` varchar(2) COLLATE utf8mb3_unicode_ci NOT NULL, + `format` varchar(2) NOT NULL, `mailsonde` tinyint(4) NOT NULL DEFAULT 0, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `entity` int(11) NOT NULL DEFAULT 1, `allow_comments` tinyint(4) NOT NULL DEFAULT 1, `allow_spy` tinyint(4) NOT NULL DEFAULT 1, - `sujet` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `sujet` text DEFAULT NULL, PRIMARY KEY (`id_sondage`), KEY `idx_date_fin` (`date_fin`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -9379,7 +9462,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL + `reponses` text DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9401,9 +9484,11 @@ DROP TABLE IF EXISTS `llx_opensurvey_user_studs`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_opensurvey_user_studs` ( `id_users` int(11) NOT NULL AUTO_INCREMENT, - `nom` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL, - `id_sondage` varchar(16) COLLATE utf8mb3_unicode_ci NOT NULL, - `reponses` varchar(100) COLLATE utf8mb3_unicode_ci NOT NULL, + `nom` varchar(64) NOT NULL, + `id_sondage` varchar(16) NOT NULL, + `reponses` varchar(200) NOT NULL, + `ip` varchar(250) DEFAULT NULL, + `date_creation` datetime DEFAULT NULL, PRIMARY KEY (`id_users`), KEY `idx_id_users` (`id_users`), KEY `idx_nom` (`nom`), @@ -9420,7 +9505,7 @@ CREATE TABLE `llx_opensurvey_user_studs` ( LOCK TABLES `llx_opensurvey_user_studs` WRITE; /*!40000 ALTER TABLE `llx_opensurvey_user_studs` DISABLE KEYS */; -INSERT INTO `llx_opensurvey_user_studs` VALUES (1,'gfdgdf','om4e7azfiurnjtqe','01'),(2,'aa','3imby4hf7joiilsu','210'),(3,'fsdf','z2qcqjh5pm1q4p99','0110'),(5,'hfghf','z2qcqjh5pm1q4p99','1110'),(6,'qqqq','ah9xvaqu1ajjrqse','000111'),(7,'hjgh','ah9xvaqu1ajjrqse','000010'),(8,'bcvb','qgsfrgb922rqzocy','011000'),(9,'gdfg','ah9xvaqu1ajjrqse','001000'),(10,'ggg','ah9xvaqu1ajjrqse','000100'),(11,'gfdgd','ah9xvaqu1ajjrqse','001000'),(12,'hhhh','ah9xvaqu1ajjrqse','010000'),(13,'iii','ah9xvaqu1ajjrqse','000100'),(14,'kkk','ah9xvaqu1ajjrqse','001000'),(15,'lllll','ah9xvaqu1ajjrqse','000001'),(16,'kk','ah9xvaqu1ajjrqse','000001'),(17,'gggg','ah9xvaqu1ajjrqse','001000'),(18,'mmmm','ah9xvaqu1ajjrqse','000000'),(19,'jkjkj','ah9xvaqu1ajjrqse','000001'),(20,'azerty','8mcdnf2hgcntfibe','012'),(21,'hfghfg','8mcdnf2hgcntfibe','012'),(22,'fd','ckanvbe7kt3rdb3h','10'),(25,'John Doe','m4467s2mtk6khmxc','1'),(26,'Martial Bill','m4467s2mtk6khmxc','01'),(27,'Marissa Campbell','m4467s2mtk6khmxc','11'),(28,'Leonard Cast','m4467s2mtk6khmxc','01'),(29,'John Doe','tim1dye8x5eeetxu','01'),(30,'Eldy','tim1dye8x5eeetxu','11'); +INSERT INTO `llx_opensurvey_user_studs` VALUES (1,'gfdgdf','om4e7azfiurnjtqe','01',NULL,NULL),(2,'aa','3imby4hf7joiilsu','210',NULL,NULL),(3,'fsdf','z2qcqjh5pm1q4p99','0110',NULL,NULL),(5,'hfghf','z2qcqjh5pm1q4p99','1110',NULL,NULL),(6,'qqqq','ah9xvaqu1ajjrqse','000111',NULL,NULL),(7,'hjgh','ah9xvaqu1ajjrqse','000010',NULL,NULL),(8,'bcvb','qgsfrgb922rqzocy','011000',NULL,NULL),(9,'gdfg','ah9xvaqu1ajjrqse','001000',NULL,NULL),(10,'ggg','ah9xvaqu1ajjrqse','000100',NULL,NULL),(11,'gfdgd','ah9xvaqu1ajjrqse','001000',NULL,NULL),(12,'hhhh','ah9xvaqu1ajjrqse','010000',NULL,NULL),(13,'iii','ah9xvaqu1ajjrqse','000100',NULL,NULL),(14,'kkk','ah9xvaqu1ajjrqse','001000',NULL,NULL),(15,'lllll','ah9xvaqu1ajjrqse','000001',NULL,NULL),(16,'kk','ah9xvaqu1ajjrqse','000001',NULL,NULL),(17,'gggg','ah9xvaqu1ajjrqse','001000',NULL,NULL),(18,'mmmm','ah9xvaqu1ajjrqse','000000',NULL,NULL),(19,'jkjkj','ah9xvaqu1ajjrqse','000001',NULL,NULL),(20,'azerty','8mcdnf2hgcntfibe','012',NULL,NULL),(21,'hfghfg','8mcdnf2hgcntfibe','012',NULL,NULL),(22,'fd','ckanvbe7kt3rdb3h','10',NULL,NULL),(25,'John Doe','m4467s2mtk6khmxc','1',NULL,NULL),(26,'Martial Bill','m4467s2mtk6khmxc','01',NULL,NULL),(27,'Marissa Campbell','m4467s2mtk6khmxc','11',NULL,NULL),(28,'Leonard Cast','m4467s2mtk6khmxc','01',NULL,NULL),(29,'John Doe','tim1dye8x5eeetxu','01',NULL,NULL),(30,'Eldy','tim1dye8x5eeetxu','11',NULL,NULL); /*!40000 ALTER TABLE `llx_opensurvey_user_studs` ENABLE KEYS */; UNLOCK TABLES; @@ -9434,11 +9519,11 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `transkey` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `transvalue` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lang` varchar(5) DEFAULT NULL, + `transkey` varchar(128) DEFAULT NULL, + `transvalue` text DEFAULT NULL, PRIMARY KEY (`rowid`), - UNIQUE KEY `uk_overwrite_trans` (`lang`,`transkey`) + UNIQUE KEY `uk_overwrite_trans` (`entity`,`lang`,`transkey`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9462,7 +9547,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9485,16 +9570,16 @@ DROP TABLE IF EXISTS `llx_paiement`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_paiement` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '', - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(30) NOT NULL DEFAULT '', + `ref_ext` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datep` datetime DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, `fk_paiement` int(11) NOT NULL, - `num_paiement` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) NOT NULL DEFAULT 0, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -9502,8 +9587,8 @@ 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(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ext_payment_site` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ext_payment_id` varchar(255) DEFAULT NULL, + `ext_payment_site` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9514,7 +9599,7 @@ CREATE TABLE `llx_paiement` ( LOCK TABLES `llx_paiement` WRITE; /*!40000 ALTER TABLE `llx_paiement` DISABLE KEYS */; -INSERT INTO `llx_paiement` VALUES (3,'',NULL,1,'2013-07-18 20:50:47','2021-07-11 17:49:28','2021-07-08 12:00:00',10.00000000,4,'','',6,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(5,'',NULL,1,'2013-08-01 03:34:11','2022-02-07 13:37:54','2021-08-01 03:34:11',5.63000000,6,'','Payment Invoice FA1108-0003',8,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(6,'',NULL,1,'2013-08-06 20:33:54','2022-02-07 13:37:54','2021-08-06 20:33:53',5.98000000,4,'','Payment Invoice FA1108-0004',13,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(8,'',NULL,1,'2013-08-08 02:53:40','2022-02-07 13:37:54','2021-08-08 12:00:00',26.10000000,4,'','',14,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(9,'',NULL,1,'2013-08-08 02:55:58','2022-02-07 13:37:54','2021-08-08 12:00:00',26.96000000,1,'','',15,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(17,'',NULL,1,'2014-12-09 15:28:44','2022-02-07 13:37:54','2021-12-09 12:00:00',2.00000000,4,'','',16,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(18,'',NULL,1,'2014-12-09 15:28:53','2022-02-07 13:37:54','2021-12-09 12:00:00',-2.00000000,4,'','',17,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(19,'',NULL,1,'2014-12-09 17:35:55','2022-02-07 13:37:54','2021-12-09 12:00:00',-2.00000000,4,'','',18,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(20,'',NULL,1,'2014-12-09 17:37:02','2022-02-07 13:37:54','2021-12-09 12:00:00',2.00000000,4,'','',19,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(21,'',NULL,1,'2014-12-09 18:35:07','2022-02-07 13:37:54','2021-12-09 12:00:00',-2.00000000,4,'','',20,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(23,'',NULL,1,'2014-12-12 18:54:33','2022-02-07 13:37:54','2021-12-12 12:00:00',1.00000000,1,'','',21,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(24,'',NULL,1,'2015-03-06 16:48:16','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); +INSERT INTO `llx_paiement` VALUES (3,'',NULL,1,'2013-07-18 20:50:47','2022-12-11 21:23:22','2022-07-08 12:00:00',10.00000000,4,'','',6,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(5,'',NULL,1,'2013-08-01 03:34:11','2022-12-11 21:23:22','2022-08-01 03:34:11',5.63000000,6,'','Payment Invoice FA1108-0003',8,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(6,'',NULL,1,'2013-08-06 20:33:54','2022-12-11 21:23:22','2022-08-06 20:33:53',5.98000000,4,'','Payment Invoice FA1108-0004',13,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(8,'',NULL,1,'2013-08-08 02:53:40','2022-12-11 21:23:22','2022-08-08 12:00:00',26.10000000,4,'','',14,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(9,'',NULL,1,'2013-08-08 02:55:58','2022-12-11 21:23:22','2022-08-08 12:00:00',26.96000000,1,'','',15,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(17,'',NULL,1,'2014-12-09 15:28:44','2022-12-11 21:23:22','2022-12-09 12:00:00',2.00000000,4,'','',16,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(18,'',NULL,1,'2014-12-09 15:28:53','2022-12-11 21:23:22','2022-12-09 12:00:00',-2.00000000,4,'','',17,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(19,'',NULL,1,'2014-12-09 17:35:55','2022-12-11 21:23:22','2022-12-09 12:00:00',-2.00000000,4,'','',18,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(20,'',NULL,1,'2014-12-09 17:37:02','2022-12-11 21:23:22','2022-12-09 12:00:00',2.00000000,4,'','',19,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(21,'',NULL,1,'2014-12-09 18:35:07','2022-12-11 21:23:22','2022-12-09 12:00:00',-2.00000000,4,'','',20,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(23,'',NULL,1,'2014-12-12 18:54:33','2022-02-07 13:37:54','2021-12-12 12:00:00',1.00000000,1,'','',21,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(24,'',NULL,1,'2015-03-06 16:48:16','2022-07-04 01:11:35','2022-03-06 00:00:00',20.00000000,4,'','Adhésion/cotisation 2016',22,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(25,'',NULL,1,'2015-03-20 14:30:11','2022-07-04 01:11:35','2022-03-20 00:00:00',10.00000000,2,'','Adhésion/cotisation 2011',23,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(26,'',NULL,1,'2016-03-02 19:57:58','2022-12-11 21:23:22','2022-07-09 12:00:00',605.00000000,2,'','',24,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(29,'',NULL,1,'2016-03-02 20:01:39','2022-07-04 01:11:35','2022-03-19 12:00:00',500.00000000,4,'','',26,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(30,'',NULL,1,'2016-03-02 20:02:06','2022-07-04 01:11:35','2022-03-21 12:00:00',400.00000000,2,'','',27,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(32,'',NULL,1,'2016-03-03 19:22:32','2022-12-11 21:23:22','2022-10-03 12:00:00',-400.00000000,4,'','',28,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(33,'',NULL,1,'2016-03-03 19:23:16','2022-07-04 01:11:35','2022-03-10 12:00:00',-300.00000000,4,'','',29,1,NULL,0,0,0.00000000,0.00000000,NULL,NULL),(34,'PAY1603-0001',NULL,1,'2017-02-06 08:10:24','2022-07-04 01:11:35','2022-03-22 12:00:00',150.00000000,7,'','',33,12,NULL,0,0,0.00000000,150.00000000,NULL,NULL),(35,'PAY1603-0002',NULL,1,'2017-02-06 08:10:50','2022-07-04 01:11:35','2022-03-25 12:00:00',140.00000000,3,'','',34,12,NULL,0,0,0.00000000,140.00000000,NULL,NULL),(36,'PAY1702-0003',NULL,1,'2017-02-21 16:07:43','2022-07-04 01:11:35','2022-02-21 12:00:00',50.00000000,3,'T170201','',37,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL),(38,'PAY1803-0004',NULL,1,'2018-03-16 13:59:31','2022-07-04 01:11:35','2022-03-16 12:00:00',10.00000000,7,'','',39,12,NULL,0,0,0.00000000,10.00000000,NULL,NULL),(39,'PAY1801-0005',NULL,1,'2019-10-04 10:28:14','2022-02-07 13:37:54','2022-01-19 12:00:00',5.63000000,4,'','',41,12,NULL,0,0,0.00000000,5.63000000,NULL,NULL),(40,'PAY2001-0006',NULL,1,'2020-01-16 02:36:48','2022-02-07 13:37:54','2022-01-16 12:00:00',20.50000000,2,'','',50,12,NULL,0,0,0.00000000,20.50000000,NULL,NULL),(41,'PAY2001-0007',NULL,1,'2020-01-21 10:23:17','2022-02-07 13:37:54','2022-01-21 00:00:00',50.00000000,7,'','Subscription 2017',53,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL),(42,'PAY2001-0008',NULL,1,'2020-01-21 10:23:28','2022-02-07 13:37:54','2022-01-21 00:00:00',50.00000000,7,'','Subscription 2018',54,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL),(43,'PAY2001-0009',NULL,1,'2020-01-21 10:23:49','2022-02-07 13:37:54','2022-01-21 00:00:00',50.00000000,6,'','Subscription 2019',55,12,NULL,0,0,0.00000000,50.00000000,NULL,NULL); /*!40000 ALTER TABLE `llx_paiement` ENABLE KEYS */; UNLOCK TABLES; @@ -9531,7 +9616,7 @@ CREATE TABLE `llx_paiement_facture` ( `fk_facture` int(11) DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, `multicurrency_amount` double(24,8) DEFAULT 0.00000000, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_paiement_facture` (`fk_paiement`,`fk_facture`), @@ -9567,8 +9652,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -9595,7 +9680,7 @@ DROP TABLE IF EXISTS `llx_paiementfourn`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_paiementfourn` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `entity` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, @@ -9604,12 +9689,12 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `statut` smallint(6) NOT NULL DEFAULT 0, `multicurrency_amount` double(24,8) DEFAULT 0.00000000, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9637,7 +9722,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_paiementfourn_facturefourn` (`fk_paiementfourn`,`fk_facturefourn`), @@ -9665,27 +9750,28 @@ 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 utf8mb3_unicode_ci NOT NULL DEFAULT '(PROV)', + `ref` varchar(128) NOT NULL DEFAULT '(PROV)', `status` smallint(6) NOT NULL DEFAULT 0, `fk_soc` int(11) DEFAULT NULL, `fk_member` int(11) DEFAULT NULL, `date_partnership_start` date NOT NULL, `date_partnership_end` date DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `reason_decline_or_cancel` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `reason_decline_or_cancel` text DEFAULT NULL, `date_creation` datetime NOT NULL, - `fk_user_creat` int(11) NOT NULL, + `fk_user_creat` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_modif` int(11) DEFAULT NULL, - `note_private` text COLLATE 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, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `count_last_url_check_error` int(11) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `last_check_backlink` datetime DEFAULT NULL, `fk_type` int(11) NOT NULL DEFAULT 0, - `url_to_check` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `url_to_check` varchar(255) DEFAULT NULL, + `ip` varchar(250) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_fk_type_fk_soc` (`fk_type`,`fk_soc`,`date_partnership_start`), UNIQUE KEY `uk_fk_type_fk_member` (`fk_type`,`fk_member`,`date_partnership_start`), @@ -9719,7 +9805,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_partnership_fk_object` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -9749,10 +9835,10 @@ 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 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, + `num_payment` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, + `ext_payment_id` varchar(255) DEFAULT NULL, + `ext_payment_site` varchar(128) DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -9785,8 +9871,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -9821,9 +9907,9 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -9849,7 +9935,7 @@ DROP TABLE IF EXISTS `llx_payment_salary`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_payment_salary` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, @@ -9859,12 +9945,12 @@ CREATE TABLE `llx_payment_salary` ( `amount` double(24,8) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `fk_typepayment` int(11) NOT NULL, - `num_payment` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `datesp` date DEFAULT NULL, `dateep` date DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -9900,7 +9986,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_payment_salary_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -9924,7 +10010,7 @@ DROP TABLE IF EXISTS `llx_payment_various`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_payment_various` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `datep` date DEFAULT NULL, @@ -9932,16 +10018,16 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `accountancy_code` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `accountancy_code` varchar(32) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `subledger_account` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `subledger_account` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9971,8 +10057,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) NOT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -9999,8 +10085,8 @@ DROP TABLE IF EXISTS `llx_pos_cash_fence`; CREATE TABLE `llx_pos_cash_fence` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(64) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `opening` double(24,8) DEFAULT 0.00000000, `cash` double(24,8) DEFAULT 0.00000000, `card` double(24,8) DEFAULT 0.00000000, @@ -10011,12 +10097,12 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `posnumber` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `posmodule` varchar(30) DEFAULT NULL, + `posnumber` varchar(30) DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10031,6 +10117,35 @@ INSERT INTO `llx_pos_cash_fence` VALUES (1,1,'1',NULL,-324.29000000,400.00000000 /*!40000 ALTER TABLE `llx_pos_cash_fence` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_prelevement` +-- + +DROP TABLE IF EXISTS `llx_prelevement`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_prelevement` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_facture` int(11) DEFAULT NULL, + `fk_prelevement_lignes` int(11) NOT NULL, + `fk_facture_fourn` int(11) DEFAULT NULL, + `fk_salary` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_prelevement_fk_prelevement_lignes` (`fk_prelevement_lignes`), + CONSTRAINT `fk_prelevement_fk_prelevement_lignes` FOREIGN KEY (`fk_prelevement_lignes`) REFERENCES `llx_prelevement_lignes` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_prelevement` +-- + +LOCK TABLES `llx_prelevement` WRITE; +/*!40000 ALTER TABLE `llx_prelevement` DISABLE KEYS */; +INSERT INTO `llx_prelevement` VALUES (1,211,1,NULL,NULL); +/*!40000 ALTER TABLE `llx_prelevement` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_prelevement_bons` -- @@ -10040,19 +10155,19 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(12) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, `statut` smallint(6) DEFAULT 0, `credite` smallint(6) DEFAULT 0, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `date_trans` datetime DEFAULT NULL, `method_trans` smallint(6) DEFAULT NULL, `fk_user_trans` int(11) DEFAULT NULL, `date_credit` datetime DEFAULT NULL, `fk_user_credit` int(11) DEFAULT NULL, - `type` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT 'debit-order', + `type` varchar(16) DEFAULT 'debit-order', PRIMARY KEY (`rowid`), UNIQUE KEY `uk_prelevement_bons_ref` (`ref`,`entity`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -10069,41 +10184,13 @@ INSERT INTO `llx_prelevement_bons` VALUES (1,'T170201',1,'2017-02-21 15:53:46',5 UNLOCK TABLES; -- --- Table structure for table `llx_prelevement_facture` +-- Table structure for table `llx_prelevement_demande` -- -DROP TABLE IF EXISTS `llx_prelevement_facture`; +DROP TABLE IF EXISTS `llx_prelevement_demande`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `llx_prelevement_facture` ( - `rowid` int(11) NOT NULL AUTO_INCREMENT, - `fk_facture` int(11) DEFAULT NULL, - `fk_prelevement_lignes` int(11) NOT NULL, - `fk_facture_fourn` int(11) DEFAULT NULL, - PRIMARY KEY (`rowid`), - KEY `idx_prelevement_facture_fk_prelevement_lignes` (`fk_prelevement_lignes`), - CONSTRAINT `fk_prelevement_facture_fk_prelevement_lignes` FOREIGN KEY (`fk_prelevement_lignes`) REFERENCES `llx_prelevement_lignes` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `llx_prelevement_facture` --- - -LOCK TABLES `llx_prelevement_facture` WRITE; -/*!40000 ALTER TABLE `llx_prelevement_facture` DISABLE KEYS */; -INSERT INTO `llx_prelevement_facture` VALUES (1,211,1,NULL); -/*!40000 ALTER TABLE `llx_prelevement_facture` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `llx_prelevement_facture_demande` --- - -DROP TABLE IF EXISTS `llx_prelevement_facture_demande`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `llx_prelevement_facture_demande` ( +CREATE TABLE `llx_prelevement_demande` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_facture` int(11) DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, @@ -10112,29 +10199,30 @@ CREATE TABLE `llx_prelevement_facture_demande` ( `date_traite` datetime DEFAULT NULL, `fk_prelevement_bons` int(11) DEFAULT NULL, `fk_user_demande` int(11) NOT NULL, - `code_banque` varchar(128) COLLATE 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, + `code_banque` varchar(128) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, `entity` int(11) DEFAULT NULL, - `sourcetype` varchar(32) COLLATE 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, + `sourcetype` varchar(32) DEFAULT NULL, + `ext_payment_id` varchar(255) DEFAULT NULL, + `ext_payment_site` varchar(128) DEFAULT NULL, `fk_facture_fourn` int(11) DEFAULT NULL, + `fk_salary` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), - KEY `idx_prelevement_facture_demande_fk_facture` (`fk_facture`), - KEY `idx_prelevement_facture_demande_fk_facture_fourn` (`fk_facture_fourn`) + KEY `idx_prelevement_demande_fk_facture` (`fk_facture`), + KEY `idx_prelevement_demande_fk_facture_fourn` (`fk_facture_fourn`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `llx_prelevement_facture_demande` +-- Dumping data for table `llx_prelevement_demande` -- -LOCK TABLES `llx_prelevement_facture_demande` WRITE; -/*!40000 ALTER TABLE `llx_prelevement_facture_demande` DISABLE KEYS */; -INSERT INTO `llx_prelevement_facture_demande` VALUES (1,211,50.00000000,'2017-02-06 08:11:17',1,'2017-02-21 15:53:46',1,12,'','','','',NULL,NULL,NULL,NULL,NULL),(2,5,NULL,'2020-01-01 14:35:21',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4XtGr4FnPvt5gmHCi23hC','StripeTest',NULL),(3,6,NULL,'2020-01-01 14:50:42',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4mkGr4FnPvt5gaMAjhU23','StripeTest',NULL),(4,7,NULL,'2020-01-01 14:59:09',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4uvGr4FnPvt5gPJHfyUQt','StripeTest',NULL),(5,8,NULL,'2020-01-01 15:08:10',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw53eGr4FnPvt5gY0i3EWWR','StripeTest',NULL),(6,9,NULL,'2020-01-01 15:27:14',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5M6Gr4FnPvt5gyICZxNY7','StripeTest',NULL),(7,10,NULL,'2020-01-01 15:36:11',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5UlGr4FnPvt5gdsfT25YK','StripeTest',NULL),(8,11,NULL,'2020-01-01 15:44:14',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5cYGr4FnPvt5ggY1HBL2m','StripeTest',NULL),(9,12,NULL,'2020-01-01 16:52:06',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw6gDGr4FnPvt5gjuuxU6K3','StripeTest',NULL); -/*!40000 ALTER TABLE `llx_prelevement_facture_demande` ENABLE KEYS */; +LOCK TABLES `llx_prelevement_demande` WRITE; +/*!40000 ALTER TABLE `llx_prelevement_demande` DISABLE KEYS */; +INSERT INTO `llx_prelevement_demande` VALUES (1,211,50.00000000,'2017-02-06 08:11:17',1,'2017-02-21 15:53:46',1,12,'','','','',NULL,NULL,NULL,NULL,NULL,NULL),(2,5,NULL,'2020-01-01 14:35:21',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4XtGr4FnPvt5gmHCi23hC','StripeTest',NULL,NULL),(3,6,NULL,'2020-01-01 14:50:42',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4mkGr4FnPvt5gaMAjhU23','StripeTest',NULL,NULL),(4,7,NULL,'2020-01-01 14:59:09',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw4uvGr4FnPvt5gPJHfyUQt','StripeTest',NULL,NULL),(5,8,NULL,'2020-01-01 15:08:10',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw53eGr4FnPvt5gY0i3EWWR','StripeTest',NULL,NULL),(6,9,NULL,'2020-01-01 15:27:14',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5M6Gr4FnPvt5gyICZxNY7','StripeTest',NULL,NULL),(7,10,NULL,'2020-01-01 15:36:11',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5UlGr4FnPvt5gdsfT25YK','StripeTest',NULL,NULL),(8,11,NULL,'2020-01-01 15:44:14',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw5cYGr4FnPvt5ggY1HBL2m','StripeTest',NULL,NULL),(9,12,NULL,'2020-01-01 16:52:06',0,NULL,NULL,0,NULL,NULL,NULL,NULL,1,'member','pi_1Fw6gDGr4FnPvt5gjuuxU6K3','StripeTest',NULL,NULL); +/*!40000 ALTER TABLE `llx_prelevement_demande` ENABLE KEYS */; UNLOCK TABLES; -- @@ -10149,13 +10237,13 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `client_nom` varchar(255) DEFAULT NULL, `amount` double(24,8) 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, + `code_banque` varchar(128) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + `note` text DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_prelevement_lignes_fk_prelevement_bons` (`fk_prelevement_bons`), CONSTRAINT `fk_prelevement_lignes_fk_prelevement_bons` FOREIGN KEY (`fk_prelevement_bons`) REFERENCES `llx_prelevement_bons` (`rowid`) @@ -10186,7 +10274,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `afacturer` tinyint(4) DEFAULT 0, `fk_facture` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) @@ -10213,12 +10301,12 @@ 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 utf8mb3_unicode_ci NOT NULL, - `printer_location` text COLLATE utf8mb3_unicode_ci NOT NULL, - `printer_id` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `printer_name` text NOT NULL, + `printer_location` text NOT NULL, + `printer_id` varchar(255) NOT NULL, `copy` int(11) NOT NULL DEFAULT 1, - `module` varchar(16) COLLATE utf8mb3_unicode_ci NOT NULL, - `driver` varchar(16) COLLATE utf8mb3_unicode_ci NOT NULL, + `module` varchar(16) NOT NULL, + `driver` varchar(16) NOT NULL, `userid` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -10246,44 +10334,45 @@ CREATE TABLE `llx_product` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `virtual` tinyint(4) NOT NULL DEFAULT 0, `fk_parent` int(11) DEFAULT 0, - `ref` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(128) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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, + `ref_ext` varchar(128) DEFAULT NULL, + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `note` text DEFAULT NULL, + `customcode` varchar(32) DEFAULT NULL, `fk_country` int(11) DEFAULT NULL, `price` double(24,8) DEFAULT 0.00000000, `price_ttc` double(24,8) DEFAULT 0.00000000, `price_min` double(24,8) DEFAULT 0.00000000, `price_min_ttc` double(24,8) DEFAULT 0.00000000, - `price_base_type` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT 'HT', + `price_base_type` varchar(3) DEFAULT 'HT', `tva_tx` double(6,3) DEFAULT NULL, `recuperableonly` int(11) NOT NULL DEFAULT 0, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `tosell` tinyint(4) DEFAULT 1, `tobuy` tinyint(4) DEFAULT 1, `onportal` smallint(6) DEFAULT 0, `tobatch` tinyint(4) NOT NULL DEFAULT 0, + `sell_or_eat_by_mandatory` tinyint(4) NOT NULL DEFAULT 0, `fk_product_type` int(11) DEFAULT 0, - `duration` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `duration` varchar(6) DEFAULT NULL, `seuil_stock_alerte` float DEFAULT NULL, - `url` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `barcode` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `barcode` varchar(255) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT NULL, - `accountancy_code_sell` varchar(32) COLLATE 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, + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_sell_intra` varchar(32) DEFAULT NULL, + `accountancy_code_sell_export` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, + `accountancy_code_buy_intra` varchar(32) DEFAULT NULL, + `accountancy_code_buy_export` varchar(32) DEFAULT NULL, + `partnumber` varchar(32) DEFAULT NULL, `weight` float DEFAULT NULL, `weight_units` tinyint(4) DEFAULT NULL, `length` float DEFAULT NULL, @@ -10296,18 +10385,18 @@ CREATE TABLE `llx_product` ( `pmp` double(24,8) NOT NULL DEFAULT 0.00000000, `fifo` double(24,8) DEFAULT NULL, `lifo` double(24,8) DEFAULT NULL, - `canvas` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT 'default@product', + `canvas` varchar(32) DEFAULT 'default@product', `finished` tinyint(4) DEFAULT NULL, `hidden` tinyint(4) DEFAULT 0, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `desiredstock` float DEFAULT NULL, `fk_price_expression` int(11) DEFAULT NULL, `fk_unit` int(11) DEFAULT NULL, `cost_price` double(24,8) DEFAULT NULL, - `default_vat_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `default_vat_code` varchar(10) DEFAULT NULL, `price_autogen` smallint(6) DEFAULT 0, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT '', + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT '', `width` float DEFAULT NULL, `width_units` tinyint(4) DEFAULT NULL, `height` float DEFAULT NULL, @@ -10317,11 +10406,12 @@ CREATE TABLE `llx_product` ( `net_measure` float DEFAULT NULL, `net_measure_units` tinyint(4) DEFAULT NULL, `fk_state` int(11) DEFAULT NULL, - `batch_mask` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `batch_mask` varchar(32) DEFAULT NULL, `lifetime` int(11) DEFAULT NULL, `qc_frequency` int(11) DEFAULT NULL, `mandatory_period` tinyint(4) DEFAULT 0, `fk_default_bom` int(11) DEFAULT NULL, + `fk_default_workstation` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_ref` (`ref`,`entity`), UNIQUE KEY `uk_product_barcode` (`barcode`,`fk_barcode_type`,`entity`), @@ -10350,7 +10440,7 @@ CREATE TABLE `llx_product` ( LOCK TABLES `llx_product` WRITE; /*!40000 ALTER TABLE `llx_product` DISABLE KEYS */; -INSERT INTO `llx_product` VALUES (1,'2012-07-08 14:33:17','2020-01-18 19:17:03',0,0,'PINKDRESS',1,NULL,'Pink dress','A beatifull pink dress','','',NULL,9.00000000,10.12500000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,12,1,1,0,1,0,'',NULL,NULL,'123456789066',2,'','','','',NULL,NULL,NULL,670,-3,NULL,0,NULL,0,NULL,0,2.8,0.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(2,'2012-07-09 00:30:01','2019-11-28 15:09:50',0,0,'PEARPIE',1,NULL,'Pear Pie','','','',NULL,10.00000000,12.00000000,8.33333000,10.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',1,12,1,1,0,0,0,'',NULL,NULL,'123456789077',2,'','','','',NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,NULL,0,998,0.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(3,'2012-07-09 00:30:25','2018-01-16 16:40:03',0,0,'CAKECONTRIB',1,NULL,'Cake making contribution','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,1,'1m',NULL,NULL,'123456789088',2,'701CAKEM',NULL,NULL,'601CAKEM',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(4,'2012-07-10 14:44:06','2021-04-15 11:40:18',0,0,'APPLEPIE',1,NULL,'Apple Pie','Nice Bio Apple Pie.
\r\n ','','',NULL,9.00000000,9.00000000,6.00000000,6.00000000,'HT',0.000,0,9.000,'1',9.000,'1',1,12,1,1,0,1,0,'',NULL,NULL,'123456789034',2,'701','','','601',NULL,NULL,NULL,500,-3,NULL,0,NULL,0,NULL,0,1021.2,10.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,'CGST+SGST',0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(5,'2013-07-20 23:11:38','2018-01-16 16:18:24',0,0,'DOLIDROID',1,NULL,'DoliDroid, Android app for Dolibarr','DoliDroid is the Android front-end client for Dolibarr ERP & CRM web software.
\r\nThis application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP & CRM software (an Open-source web software to manage your business).
\r\n

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

\r\n\r\n

WARNING ! 

\r\n\r\n

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

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

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

\r\n\r\n

WARNING ! 

\r\n\r\n

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

','','',NULL,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,0,'',NULL,'https://play.google.com/store/apps/details?id=com.nltechno.dolidroidpro','123456789023',2,'701',NULL,NULL,'601',NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(10,'2011-12-31 00:00:00','2017-02-16 00:12:09',0,0,'COMP-XP4523',1,NULL,'Computer XP4523','A powerfull computer XP4523 ','This product is imported.
\r\nWarning: Delay to get it are not reliable.','USXP765',11,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,'0',0.000,'0',NULL,12,1,1,0,1,0,0,'',150,NULL,'123456789055',2,'701OLDC',NULL,NULL,'601OLDC',NULL,NULL,NULL,1.7,0,NULL,0,NULL,0,NULL,0,110,0.00000000,NULL,NULL,NULL,NULL,0,'20110729232310',200,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(11,'2015-01-13 20:24:42','2019-10-08 17:21:07',0,0,'ROLLUPABC',1,NULL,'Rollup Dolibarr','A nice rollup','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',0.000,0,0.000,'0',0.000,'0',1,12,1,1,0,0,0,0,'',NULL,NULL,'123456789044',2,'','','','',NULL,NULL,NULL,95,-3,NULL,0,2.34,-4,NULL,0,-1,0.00000000,NULL,NULL,'',1,0,NULL,NULL,NULL,NULL,12.00000000,NULL,0,NULL,'',NULL,8,NULL,8,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(12,'2018-07-30 17:31:29','2018-07-30 13:35:02',0,0,'DOLICLOUD',1,NULL,'SaaS service of Dolibarr ERP CRM','Cloud hosting of Dolibarr ERP and CRM software','','',NULL,9.00000000,9.00000000,9.00000000,9.00000000,'HT',0.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,1,'',NULL,'http://www.dolicloud.com','123456789013',2,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,'',0,0,NULL,NULL,NULL,NULL,8.50000000,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(13,'2017-02-16 03:49:00','2017-02-15 23:49:27',0,0,'COMP-XP4548',1,NULL,'Computer XP4523','A powerfull computer XP4523 ','This product is imported.
\r\nWarning: Delay to get it are not reliable.','USXP765',11,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,'0',0.000,'0',12,12,1,1,0,1,0,0,'',150,NULL,NULL,2,'',NULL,NULL,'',NULL,NULL,NULL,1.7,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,200,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(23,'2019-10-07 00:00:00','2019-11-28 13:51:35',0,0,'PREF123456',1,NULL,'Product name in default language','Product description in default language','a private note (free text)','customs code',1,100.00000000,110.00000000,100.00000000,110.00000000,'HT',10.000,0,0.000,'0',0.000,'0',12,NULL,0,1,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-3,1,-1,4,-4,5,-3,NULL,0.00000000,NULL,NULL,NULL,0,0,'20191007122224',NULL,NULL,NULL,NULL,NULL,0,'a public note (free text)','',2,-1,3,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(24,'2019-11-28 16:33:35','2019-11-28 15:02:01',0,0,'POS-CARROT',1,NULL,'Carrot','','','',NULL,0.83333000,1.00000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(25,'2019-11-28 16:37:36','2020-01-13 11:13:19',0,0,'POS-APPLE',1,NULL,'Apple','','','',NULL,1.25000000,1.50000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,15.599999999999994,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(26,'2019-11-28 16:38:44','2019-11-28 12:38:44',0,0,'POS-KIWI',1,NULL,'Kiwi','','','',NULL,1.08333000,1.30000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(27,'2019-11-28 16:39:21','2019-11-28 14:57:44',0,0,'POS-PEACH',1,NULL,'Peach','','','',NULL,1.08333000,1.30000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,'',0,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(28,'2019-11-28 16:39:58','2019-11-28 12:39:58',0,0,'POS-ORANGE',1,NULL,'Orange','','','',NULL,2.00000000,2.40000000,0.00000000,0.00000000,'HT',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,1,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(29,'2019-11-28 17:03:14','2019-11-28 13:03:14',0,0,'POS-Eggs',1,NULL,'Eggs','','','',NULL,1.66667000,2.00000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(30,'2019-11-28 17:09:14','2019-11-28 13:09:14',0,0,'POS-Chips',1,NULL,'Chips','','','',NULL,0.41667000,0.50000000,0.00000000,0.00000000,'TTC',20.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,0,0,'',NULL,NULL,NULL,2,'','','','',NULL,NULL,NULL,30,-3,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL),(31,'2021-04-15 08:38:02','2021-04-15 11:38:02',0,0,'PRODSER',1,NULL,'Product NFC - Unique','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',19.600,0,0.000,'0',0.000,'0',12,12,1,1,0,2,0,0,'',0,NULL,NULL,2,'','','','','','',NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,0,NULL,NULL,NULL,NULL,0,NULL,'',NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL); /*!40000 ALTER TABLE `llx_product` ENABLE KEYS */; UNLOCK TABLES; @@ -10394,9 +10484,9 @@ 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 utf8mb3_unicode_ci NOT NULL, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(255) NOT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `label` varchar(255) NOT NULL, `position` int(11) NOT NULL DEFAULT 0, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), @@ -10429,7 +10519,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `variation_ref_ext` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), KEY `idx_product_att_com_product_parent` (`fk_product_parent`), @@ -10557,8 +10647,8 @@ 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(180) COLLATE utf8mb3_unicode_ci NOT NULL, - `value` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(180) NOT NULL, + `value` varchar(255) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `position` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`rowid`), @@ -10589,9 +10679,9 @@ CREATE TABLE `llx_product_batch` ( `fk_product_stock` int(11) NOT NULL, `eatby` datetime DEFAULT NULL, `sellby` datetime DEFAULT NULL, - `batch` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, `qty` double NOT NULL DEFAULT 0, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_batch` (`fk_product_stock`,`batch`), KEY `idx_fk_product_stock` (`fk_product_stock`), @@ -10628,17 +10718,17 @@ CREATE TABLE `llx_product_customer_price` ( `price_ttc` double(24,8) DEFAULT 0.00000000, `price_min` double(24,8) DEFAULT 0.00000000, `price_min_ttc` double(24,8) DEFAULT 0.00000000, - `price_base_type` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT 'HT', + `price_base_type` varchar(3) DEFAULT 'HT', `tva_tx` double(6,3) DEFAULT NULL, - `default_vat_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `default_vat_code` varchar(10) DEFAULT NULL, `recuperableonly` int(11) NOT NULL DEFAULT 0, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `fk_user` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ref_customer` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `ref_customer` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_customer_price_fk_product_fk_soc` (`fk_product`,`fk_soc`), KEY `idx_product_customer_price_fk_user` (`fk_user`), @@ -10679,17 +10769,17 @@ 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 utf8mb3_unicode_ci DEFAULT 'HT', + `price_base_type` varchar(3) DEFAULT 'HT', `tva_tx` double(6,3) DEFAULT NULL, `recuperableonly` int(11) NOT NULL DEFAULT 0, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `fk_user` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE 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, + `import_key` varchar(14) DEFAULT NULL, + `default_vat_code` varchar(10) DEFAULT NULL, + `ref_customer` varchar(30) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10714,7 +10804,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_product_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -10742,8 +10832,8 @@ CREATE TABLE `llx_product_fournisseur_price` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_product` int(11) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, - `ref_fourn` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `desc_fourn` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_fourn` varchar(128) DEFAULT NULL, + `desc_fourn` text DEFAULT NULL, `fk_availability` int(11) DEFAULT NULL, `price` double(24,8) DEFAULT 0.00000000, `quantity` double DEFAULT NULL, @@ -10752,27 +10842,27 @@ CREATE TABLE `llx_product_fournisseur_price` ( `unitprice` double(24,8) DEFAULT 0.00000000, `charges` double(24,8) DEFAULT 0.00000000, `tva_tx` double(6,3) NOT NULL DEFAULT 0.000, - `default_vat_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `default_vat_code` varchar(10) DEFAULT NULL, `info_bits` int(11) NOT NULL DEFAULT 0, `fk_user` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_supplier_price_expression` int(11) DEFAULT NULL, `fk_price_expression` int(11) DEFAULT NULL, `delivery_time_days` int(11) DEFAULT NULL, - `supplier_reputation` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `supplier_reputation` varchar(10) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_unitprice` double(24,8) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_price` double(24,8) DEFAULT NULL, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', - `barcode` varchar(180) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', + `barcode` varchar(180) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT NULL, - `packaging` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `packaging` varchar(64) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_fournisseur_price_ref` (`ref_fourn`,`fk_soc`,`quantity`,`entity`), UNIQUE KEY `uk_product_barcode` (`barcode`,`fk_barcode_type`,`entity`), @@ -10808,7 +10898,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_product_fournisseur_price_extrafields` (`fk_object`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -10839,7 +10929,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_price` double(24,8) DEFAULT NULL, `multicurrency_unitprice` double(24,8) DEFAULT NULL, @@ -10867,11 +10957,11 @@ 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 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, + `lang` varchar(5) NOT NULL DEFAULT '0', + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `note` text DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_lang` (`fk_product`,`lang`), CONSTRAINT `fk_product_lang_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`) @@ -10899,7 +10989,9 @@ CREATE TABLE `llx_product_lot` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) DEFAULT 1, `fk_product` int(11) NOT NULL, - `batch` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `eatby` date DEFAULT NULL, `sellby` date DEFAULT NULL, `datec` datetime DEFAULT NULL, @@ -10910,7 +11002,7 @@ CREATE TABLE `llx_product_lot` ( `eol_date` datetime DEFAULT NULL, `manufacturing_date` datetime DEFAULT NULL, `scrapping_date` datetime DEFAULT NULL, - `barcode` varchar(180) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `barcode` varchar(180) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_lot` (`fk_product`,`batch`) @@ -10923,7 +11015,7 @@ CREATE TABLE `llx_product_lot` ( LOCK TABLES `llx_product_lot` WRITE; /*!40000 ALTER TABLE `llx_product_lot` DISABLE KEYS */; -INSERT INTO `llx_product_lot` VALUES (1,1,2,'123456','2018-07-07',NULL,'2018-07-21 20:55:19','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,1,2,'2222','2018-07-08','2018-07-07','2018-07-21 21:00:42','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,1,10,'5599887766452',NULL,NULL,'2018-07-30 17:39:31','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,1,10,'4494487766452',NULL,NULL,'2018-07-30 17:40:12','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(39,1,1,'000000',NULL,NULL,'2020-01-08 20:41:18','2020-01-08 16:41:18',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(40,1,4,'aaa','2020-01-01',NULL,'2020-01-08 20:41:18','2020-01-13 11:28:05',NULL,12,NULL,NULL,NULL,NULL,NULL,NULL),(46,1,1,'string',NULL,NULL,'2020-01-18 20:16:58','2020-01-18 19:16:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(47,1,4,'000000',NULL,NULL,'2020-01-08 16:40:27','2020-01-21 10:30:15',1,1,NULL,NULL,NULL,NULL,NULL,NULL),(50,1,4,'Lot 2021-02',NULL,NULL,'2021-04-15 08:40:18','2021-04-15 11:40:18',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +INSERT INTO `llx_product_lot` VALUES (1,1,2,'123456',NULL,NULL,'2018-07-07',NULL,'2018-07-21 20:55:19','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,1,2,'2222',NULL,NULL,'2018-07-08','2018-07-07','2018-07-21 21:00:42','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,1,10,'5599887766452',NULL,NULL,NULL,NULL,'2018-07-30 17:39:31','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,1,10,'4494487766452',NULL,NULL,NULL,NULL,'2018-07-30 17:40:12','2018-12-12 10:53:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(39,1,1,'000000',NULL,NULL,NULL,NULL,'2020-01-08 20:41:18','2020-01-08 16:41:18',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(40,1,4,'aaa',NULL,NULL,'2020-01-01',NULL,'2020-01-08 20:41:18','2020-01-13 11:28:05',NULL,12,NULL,NULL,NULL,NULL,NULL,NULL),(46,1,1,'string',NULL,NULL,NULL,NULL,'2020-01-18 20:16:58','2020-01-18 19:16:58',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(47,1,4,'000000',NULL,NULL,NULL,NULL,'2020-01-08 16:40:27','2020-01-21 10:30:15',1,1,NULL,NULL,NULL,NULL,NULL,NULL),(50,1,4,'Lot 2021-02',NULL,NULL,NULL,NULL,'2021-04-15 08:40:18','2021-04-15 11:40:18',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_product_lot` ENABLE KEYS */; UNLOCK TABLES; @@ -10938,7 +11030,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_product_lot_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -10964,12 +11056,12 @@ 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 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, + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_sell_intra` varchar(32) DEFAULT NULL, + `accountancy_code_sell_export` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, + `accountancy_code_buy_intra` varchar(32) DEFAULT NULL, + `accountancy_code_buy_export` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_perentity` (`fk_product`,`entity`), KEY `idx_product_perentity_fk_product` (`fk_product`) @@ -11003,21 +11095,21 @@ CREATE TABLE `llx_product_price` ( `price_ttc` double(24,8) DEFAULT NULL, `price_min` double(24,8) DEFAULT NULL, `price_min_ttc` double(24,8) DEFAULT NULL, - `price_base_type` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT 'HT', + `price_base_type` varchar(3) DEFAULT 'HT', `tva_tx` double(6,3) NOT NULL DEFAULT 0.000, - `default_vat_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `default_vat_code` varchar(10) DEFAULT NULL, `recuperableonly` int(11) NOT NULL DEFAULT 0, `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `fk_user_author` int(11) DEFAULT NULL, `tosell` tinyint(4) DEFAULT 1, `price_by_qty` int(11) NOT NULL DEFAULT 0, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_price_expression` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_price` double(24,8) DEFAULT 0.00000000, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_price_ttc` double(24,8) DEFAULT NULL, @@ -11057,12 +11149,12 @@ CREATE TABLE `llx_product_price_by_qty` ( `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `quantity` double DEFAULT NULL, `unitprice` double(24,8) DEFAULT 0.00000000, - `price_base_type` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT 'HT', + `price_base_type` varchar(3) DEFAULT 'HT', `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_price` double(24,8) DEFAULT NULL, `multicurrency_price_ttc` double(24,8) DEFAULT NULL, @@ -11122,7 +11214,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_product_stock` (`fk_product`,`fk_entrepot`), KEY `idx_product_stock_fk_product` (`fk_product`), @@ -11154,7 +11246,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -11182,36 +11274,40 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `title` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `title` varchar(255) NOT NULL, + `description` text DEFAULT NULL, `fk_user_creat` int(11) NOT NULL, `public` int(11) DEFAULT NULL, `fk_statut` smallint(6) NOT NULL DEFAULT 0, `fk_opp_status` int(11) DEFAULT NULL, `opp_percent` double(5,2) DEFAULT NULL, - `note_private` text COLLATE 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, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `budget_amount` double(24,8) DEFAULT NULL, `date_close` datetime DEFAULT NULL, `fk_user_close` int(11) DEFAULT NULL, `opp_amount` double(24,8) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `usage_bill_time` int(11) DEFAULT 0, `usage_opportunity` int(11) DEFAULT 0, `usage_task` int(11) DEFAULT 1, `usage_organize_event` int(11) DEFAULT 0, - `email_msgid` varchar(175) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_msgid` varchar(175) DEFAULT NULL, `fk_opp_status_end` int(11) DEFAULT NULL, `accept_conference_suggestions` int(11) DEFAULT 0, `accept_booth_suggestions` int(11) DEFAULT 0, `price_registration` double(24,8) DEFAULT NULL, `price_booth` double(24,8) DEFAULT NULL, `max_attendees` int(11) DEFAULT 0, + `ip` varchar(250) DEFAULT NULL, + `date_start_event` datetime DEFAULT NULL, + `date_end_event` datetime DEFAULT NULL, + `location` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_projet_ref` (`ref`,`entity`), KEY `idx_projet_fk_soc` (`fk_soc`), @@ -11225,7 +11321,7 @@ CREATE TABLE `llx_projet` ( LOCK TABLES `llx_projet` WRITE; /*!40000 ALTER TABLE `llx_projet` DISABLE KEYS */; -INSERT INTO `llx_projet` VALUES (1,11,'2012-07-09 00:00:00','2017-10-05 20:51:28','2012-07-09',NULL,'PROJ1',1,'Project One','',1,0,1,NULL,NULL,NULL,'gdfgdfg','baleine',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0),(2,13,'2012-07-09 00:00:00','2017-10-05 20:51:51','2012-07-09',NULL,'PROJ2',1,'Project Two','',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0),(3,1,'2012-07-09 00:00:00','2020-01-15 12:40:50','2012-07-09',NULL,'PROJINDIAN',1,'Project for Indian company move','',1,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0),(4,NULL,'2012-07-09 00:00:00','2012-07-08 22:50:49','2012-07-09',NULL,'PROJSHARED',1,'The Global project','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0),(5,NULL,'2012-07-11 00:00:00','2020-01-15 12:27:15','2012-07-11','2013-07-14','RMLL',1,'Project management RMLL','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0),(6,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0001',1,'PROJALICE1','The Alice project number 1',12,0,1,2,20.00,NULL,NULL,NULL,NULL,5000.00000000,NULL,NULL,8000.00000000,NULL,12,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(7,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0002',1,'PROJALICE2','The Alice project number 2',12,0,1,6,100.00,NULL,NULL,NULL,NULL,NULL,'2017-02-01 16:24:31',12,7000.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(8,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0003',1,'PROJALICE2','The Alice project number 3',12,0,1,6,100.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3550.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(9,4,'2018-07-31 00:00:00','2019-12-20 16:33:15','2018-07-31',NULL,'PJ1607-0004',1,'Project Top X','',12,0,2,2,27.00,NULL,NULL,NULL,NULL,NULL,'2019-12-20 20:33:15',12,4000.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(10,1,'2019-12-21 19:46:33','2019-12-21 15:48:06','2019-12-21',NULL,'PJ1912-0005',1,'Contact for a new shop in Delhi','',12,0,1,1,20.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,18000.00000000,NULL,12,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(11,10,'2019-12-21 19:49:28','2019-12-21 16:10:21','2019-12-02','2019-12-13','PJ1912-0006',1,'Request for new development of logo','Request to redesign a new logo',12,0,1,4,60.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,6500.00000000,NULL,12,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(12,4,'2019-12-21 19:52:12','2019-12-21 15:52:12','2019-12-21',NULL,'PJ1912-0007',1,'Adding new tool for Customer Relationship Management','',12,1,0,1,0.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16000.00000000,NULL,NULL,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0),(13,26,'2019-12-21 19:53:21','2019-12-21 15:53:59','2019-12-21',NULL,'PJ1912-0008',1,'Cooking 100 apple pie for chrsitmas','',12,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0); +INSERT INTO `llx_projet` VALUES (1,11,'2012-07-09 00:00:00','2017-10-05 20:51:28','2012-07-09',NULL,'PROJ1',1,'Project One','',1,0,1,NULL,NULL,NULL,'gdfgdfg','baleine',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(2,13,'2012-07-09 00:00:00','2017-10-05 20:51:51','2012-07-09',NULL,'PROJ2',1,'Project Two','',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(3,1,'2012-07-09 00:00:00','2020-01-15 12:40:50','2012-07-09',NULL,'PROJINDIAN',1,'Project for Indian company move','',1,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(4,NULL,'2012-07-09 00:00:00','2012-07-08 22:50:49','2012-07-09',NULL,'PROJSHARED',1,'The Global project','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(5,NULL,'2012-07-11 00:00:00','2020-01-15 12:27:15','2012-07-11','2013-07-14','RMLL',1,'Project management RMLL','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(6,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0001',1,'PROJALICE1','The Alice project number 1',12,0,1,2,20.00,NULL,NULL,NULL,NULL,5000.00000000,NULL,NULL,8000.00000000,NULL,12,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(7,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0002',1,'PROJALICE2','The Alice project number 2',12,0,1,6,100.00,NULL,NULL,NULL,NULL,NULL,'2017-02-01 16:24:31',12,7000.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(8,10,'2018-07-30 00:00:00','2019-11-28 11:52:54','2018-07-30',NULL,'PJ1607-0003',1,'PROJALICE2','The Alice project number 3',12,0,1,6,100.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3550.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(9,4,'2018-07-31 00:00:00','2019-12-20 16:33:15','2018-07-31',NULL,'PJ1607-0004',1,'Project Top X','',12,0,2,2,27.00,NULL,NULL,NULL,NULL,NULL,'2019-12-20 20:33:15',12,4000.00000000,NULL,NULL,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(10,1,'2019-12-21 19:46:33','2019-12-21 15:48:06','2019-12-21',NULL,'PJ1912-0005',1,'Contact for a new shop in Delhi','',12,0,1,1,20.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,18000.00000000,NULL,12,0,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(11,10,'2019-12-21 19:49:28','2019-12-21 16:10:21','2019-12-02','2019-12-13','PJ1912-0006',1,'Request for new development of logo','Request to redesign a new logo',12,0,1,4,60.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,6500.00000000,NULL,12,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(12,4,'2019-12-21 19:52:12','2019-12-21 15:52:12','2019-12-21',NULL,'PJ1912-0007',1,'Adding new tool for Customer Relationship Management','',12,1,0,1,0.00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16000.00000000,NULL,NULL,1,1,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL),(13,26,'2019-12-21 19:53:21','2019-12-21 15:53:59','2019-12-21',NULL,'PJ1912-0008',1,'Cooking 100 apple pie for chrsitmas','',12,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,1,0,1,0,NULL,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_projet` ENABLE KEYS */; UNLOCK TABLES; @@ -11240,8 +11336,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `priority` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `priority` mediumtext DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_projet_extrafields` (`fk_object`) ) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -11266,7 +11362,7 @@ DROP TABLE IF EXISTS `llx_projet_task`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_projet_task` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_projet` int(11) NOT NULL, `fk_task_parent` int(11) NOT NULL DEFAULT 0, @@ -11275,8 +11371,8 @@ CREATE TABLE `llx_projet_task` ( `dateo` datetime DEFAULT NULL, `datee` datetime DEFAULT NULL, `datev` datetime DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) NOT NULL, + `description` text DEFAULT NULL, `duration_effective` double DEFAULT 0, `planned_workload` double DEFAULT 0, `progress` int(11) DEFAULT 0, @@ -11285,11 +11381,11 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, `rang` int(11) DEFAULT 0, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_projet_task_ref` (`ref`,`entity`), @@ -11323,7 +11419,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_projet_task_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -11354,10 +11450,10 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `invoice_id` int(11) DEFAULT NULL, `invoice_line_id` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `intervention_id` int(11) DEFAULT NULL, @@ -11392,11 +11488,11 @@ CREATE TABLE `llx_propal` ( `fk_soc` int(11) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(255) DEFAULT NULL, + `ref_client` varchar(255) DEFAULT NULL, `datec` datetime DEFAULT NULL, `datep` date DEFAULT NULL, `fin_validite` datetime DEFAULT NULL, @@ -11419,32 +11515,32 @@ CREATE TABLE `llx_propal` ( `localtax2` double(24,8) DEFAULT 0.00000000, `total_ttc` double(24,8) DEFAULT 0.00000000, `fk_account` int(11) DEFAULT NULL, - `fk_currency` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_currency` varchar(3) DEFAULT NULL, `fk_cond_reglement` int(11) DEFAULT NULL, - `deposit_percent` varchar(63) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `deposit_percent` varchar(63) DEFAULT NULL, `fk_mode_reglement` int(11) 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, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `date_livraison` date DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, `fk_warehouse` int(11) DEFAULT NULL, `fk_availability` int(11) DEFAULT NULL, `fk_delivery_address` int(11) DEFAULT NULL, `fk_input_reason` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `last_main_doc` varchar(255) COLLATE 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, + `last_main_doc` varchar(255) DEFAULT NULL, + `online_sign_ip` varchar(48) DEFAULT NULL, + `online_sign_name` varchar(64) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_propal_ref` (`ref`,`entity`), KEY `idx_propal_fk_soc` (`fk_soc`), @@ -11471,7 +11567,7 @@ CREATE TABLE `llx_propal` ( LOCK TABLES `llx_propal` WRITE; /*!40000 ALTER TABLE `llx_propal` DISABLE KEYS */; -INSERT INTO `llx_propal` VALUES (1,2,NULL,'2021-07-11 17:49:28','PR1007-0001',1,NULL,NULL,'','2012-07-09 01:33:49','2021-07-09','2020-07-24 12:00:00','2020-08-08 14:24:18',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,30.00000000,3.84000000,0.00000000,0.00000000,33.84000000,NULL,NULL,1,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); +INSERT INTO `llx_propal` VALUES (1,2,NULL,'2022-12-11 21:23:22','PR1007-0001',1,NULL,NULL,'','2012-07-09 01:33:49','2022-07-09','2021-07-24 12:00:00','2021-08-08 14:24:18',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,30.00000000,3.84000000,0.00000000,0.00000000,33.84000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(2,1,NULL,'2022-12-11 21:23:22','PR1007-0002',1,NULL,NULL,'','2012-07-10 02:11:44','2022-07-10','2021-07-25 12:00:00','2022-07-10 02:12:55','2020-07-20 15:23:12','2021-07-20 15:23:12',1,NULL,1,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,NULL,1,'','','azur',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(3,4,NULL,'2022-12-11 21:23:22','PR1007-0003',1,NULL,NULL,'','2012-07-18 11:35:11','2022-07-18','2022-08-02 12:00:00','2022-07-18 11:36:18','2020-07-20 15:21:15','2022-07-20 15:21:15',1,NULL,1,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(5,19,NULL,'2022-07-04 01:11:35','PR1302-0005',1,NULL,NULL,'','2015-02-17 15:39:56','2022-02-17','2022-03-04 12:00:00','2021-11-15 23:27:10',NULL,NULL,1,NULL,12,NULL,NULL,1,0,NULL,NULL,0,10.00000000,2.00000000,0.00000000,0.00000000,12.00000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(6,19,NULL,'2022-07-04 01:11:35','PR1302-0006',1,NULL,NULL,'','2015-02-17 15:40:12','2022-02-17','2022-03-04 12:00:00',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(7,19,NULL,'2022-07-04 01:11:35','PR1302-0007',1,NULL,NULL,'','2015-02-17 15:41:15','2022-02-17','2022-03-04 12:00:00','2021-01-29 21:49:33',NULL,NULL,1,NULL,12,NULL,NULL,1,0,NULL,NULL,0,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,400.00000000,0.00000000,400.00000000,NULL,NULL,NULL),(8,19,NULL,'2022-07-04 01:11:35','PR1302-0008',1,NULL,NULL,'','2015-02-17 15:43:39','2022-02-17','2022-03-04 12:00:00',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,NULL,0,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(10,7,4,'2022-12-11 21:23:22','PR1909-0031',1,NULL,NULL,'','2017-11-15 23:37:08','2022-11-15','2022-11-30 12:00:00','2022-09-27 16:54:30',NULL,NULL,12,NULL,12,NULL,NULL,1,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,NULL,3,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',NULL,NULL,1.00000000,10.00000000,0.00000000,10.00000000,'propale/PR1909-0031/PR1909-0031.pdf',NULL,NULL),(11,1,NULL,'2022-07-04 01:11:35','PR1702-0009',1,NULL,NULL,'','2017-02-16 01:44:58','2022-05-13','2022-05-28 12:00:00','2022-02-16 01:44:58',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,60.00000000,0.00000000,0.00000000,0.00000000,60.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,60.00000000,0.00000000,60.00000000,NULL,NULL,NULL),(12,7,NULL,'2022-07-04 01:11:35','PR1702-0010',1,NULL,NULL,'','2017-02-16 01:45:44','2022-06-24','2021-07-09 12:00:00','2022-02-16 01:45:44',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,832.00000000,0.00000000,0.00000000,0.00000000,832.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,832.00000000,0.00000000,832.00000000,NULL,NULL,NULL),(13,26,NULL,'2022-07-04 01:11:35','PR1702-0011',1,NULL,NULL,'','2017-02-16 01:46:15','2022-04-03','2021-04-18 12:00:00','2022-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,242.00000000,0.00000000,0.00000000,0.00000000,242.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,242.00000000,0.00000000,242.00000000,NULL,NULL,NULL),(14,3,NULL,'2022-07-04 01:11:35','PR1702-0012',1,NULL,NULL,'','2017-02-16 01:46:15','2022-06-19','2021-07-04 12:00:00','2022-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,245.00000000,0.00000000,0.00000000,0.00000000,245.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,245.00000000,0.00000000,245.00000000,NULL,NULL,NULL),(15,26,NULL,'2022-07-04 01:11:35','PR1702-0013',1,NULL,NULL,'','2017-02-16 01:46:15','2022-05-01','2022-05-16 12:00:00','2021-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,940.00000000,0.00000000,0.00000000,0.00000000,940.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,940.00000000,0.00000000,940.00000000,NULL,NULL,NULL),(16,1,NULL,'2022-07-04 01:11:35','PR1702-0014',1,NULL,NULL,'','2017-02-16 01:46:15','2022-05-13','2022-05-28 12:00:00','2022-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,125.00000000,0.00000000,0.00000000,0.00000000,125.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,125.00000000,0.00000000,125.00000000,NULL,NULL,NULL),(17,1,NULL,'2022-12-11 21:23:22','PR1702-0015',1,NULL,NULL,'','2017-02-16 01:46:15','2022-07-23','2022-08-07 12:00:00','2022-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,163.00000000,0.00000000,0.00000000,0.00000000,163.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,163.00000000,0.00000000,163.00000000,NULL,NULL,NULL),(18,26,NULL,'2022-07-04 01:11:35','PR1702-0016',1,NULL,NULL,'','2017-02-16 01:46:15','2022-02-13','2022-02-28 12:00:00','2022-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,900.00000000,0.00000000,0.00000000,0.00000000,900.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,900.00000000,0.00000000,900.00000000,NULL,NULL,NULL),(19,12,NULL,'2022-07-04 01:11:35','PR1702-0017',1,NULL,NULL,'','2017-02-16 01:46:15','2022-03-30','2022-04-14 12:00:00','2022-02-16 01:46:15',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL,NULL,NULL),(20,26,NULL,'2022-12-11 21:23:22','PR1702-0018',1,NULL,NULL,'','2017-02-16 01:46:15','2022-11-13','2022-11-28 12:00:00','2022-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,830.00000000,0.00000000,0.00000000,0.00000000,830.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,830.00000000,0.00000000,830.00000000,NULL,NULL,NULL),(21,1,NULL,'2022-12-11 21:23:22','PR1702-0019',1,NULL,NULL,'','2017-02-16 01:46:15','2022-09-23','2022-10-08 12:00:00','2022-02-16 04:47:09',NULL,NULL,1,NULL,12,NULL,NULL,1,0,NULL,NULL,0,89.00000000,0.00000000,0.00000000,0.00000000,89.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,89.00000000,0.00000000,89.00000000,NULL,NULL,NULL),(22,26,NULL,'2022-12-11 21:23:22','PR1702-0020',1,NULL,NULL,'','2017-02-16 01:46:15','2022-11-13','2022-11-28 12:00:00','2022-02-16 01:46:15',NULL,NULL,1,NULL,1,NULL,NULL,0,0,NULL,NULL,0,70.00000000,0.00000000,0.00000000,0.00000000,70.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,70.00000000,0.00000000,70.00000000,'propale/PR1702-0020/PR1702-0020.pdf',NULL,NULL),(23,12,NULL,'2022-07-04 01:11:35','PR1702-0021',1,NULL,NULL,'','2017-02-16 01:46:17','2022-04-03','2021-04-18 12:00:00','2021-02-17 16:07:18',NULL,NULL,2,NULL,12,NULL,NULL,1,0,NULL,NULL,0,715.00000000,0.00000000,0.00000000,0.00000000,715.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,715.00000000,0.00000000,715.00000000,NULL,NULL,NULL),(24,7,NULL,'2022-12-11 21:23:22','PR1702-0022',1,NULL,NULL,'','2017-02-16 01:46:17','2022-11-13','2022-11-28 12:00:00','2022-02-16 01:46:17',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,250.00000000,0.00000000,0.00000000,0.00000000,250.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,250.00000000,0.00000000,250.00000000,NULL,NULL,NULL),(25,3,NULL,'2022-12-11 21:23:22','PR1702-0023',1,NULL,NULL,'','2017-02-16 01:46:17','2022-07-09','2021-07-24 12:00:00','2022-02-16 01:46:17','2020-02-16 04:47:29','2022-02-16 04:47:29',1,NULL,1,12,12,4,0,NULL,NULL,0,1018.00000000,0.00000000,0.00000000,0.00000000,1018.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1018.00000000,0.00000000,1018.00000000,NULL,NULL,NULL),(26,1,NULL,'2022-07-04 01:11:35','PR1702-0024',1,NULL,NULL,'','2017-02-16 01:46:17','2022-04-03','2021-04-18 12:00:00','2021-02-16 01:46:18',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,710.00000000,0.00000000,0.00000000,0.00000000,710.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,710.00000000,0.00000000,710.00000000,NULL,NULL,NULL),(27,6,NULL,'2022-12-11 21:23:22','PR1702-0025',1,NULL,NULL,'','2017-02-16 01:46:18','2022-11-12','2022-11-27 12:00:00','2022-02-16 01:46:18',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,300.00000000,0.00000000,300.00000000,NULL,NULL,NULL),(28,19,NULL,'2022-12-11 21:23:22','PR1702-0026',1,NULL,NULL,'','2017-02-16 01:46:18','2022-07-30','2022-08-14 12:00:00','2022-02-16 01:46:18','2020-02-16 04:46:31','2022-02-16 04:46:31',2,NULL,2,12,12,2,0,NULL,NULL,0,440.00000000,0.00000000,0.00000000,0.00000000,440.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,440.00000000,0.00000000,440.00000000,NULL,NULL,NULL),(29,1,NULL,'2022-12-11 21:23:22','PR1702-0027',1,NULL,NULL,'','2017-02-16 01:46:18','2022-07-23','2022-08-07 12:00:00','2022-02-16 01:46:18','2021-12-20 20:50:23','2022-12-20 20:50:23',2,NULL,2,12,12,2,0,NULL,NULL,0,1000.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,'propale/PR1702-0027/PR1702-0027.pdf',NULL,NULL),(30,1,NULL,'2022-07-04 01:11:35','PR1702-0028',1,NULL,NULL,'','2017-02-16 01:46:18','2022-05-01','2022-05-16 12:00:00','2021-02-16 01:46:18','2019-02-16 04:46:42','2021-02-16 04:46:42',2,NULL,2,12,12,3,0,NULL,NULL,0,1200.00000000,0.00000000,0.00000000,0.00000000,1200.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1200.00000000,0.00000000,1200.00000000,NULL,NULL,NULL),(31,11,NULL,'2022-07-04 01:11:35','PR1702-0029',1,NULL,NULL,'','2017-02-16 01:46:18','2022-06-24','2021-07-09 12:00:00','2022-02-16 01:46:18',NULL,NULL,1,NULL,1,NULL,NULL,1,0,NULL,NULL,0,720.00000000,0.00000000,0.00000000,0.00000000,720.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,720.00000000,0.00000000,720.00000000,NULL,NULL,NULL),(32,19,NULL,'2022-12-11 21:23:22','PR1702-0030',1,NULL,NULL,'','2017-02-16 01:46:18','2022-11-12','2022-11-27 12:00:00','2022-02-16 01:46:18',NULL,NULL,2,NULL,2,NULL,NULL,1,0,NULL,NULL,0,608.00000000,0.00000000,0.00000000,0.00000000,608.00000000,NULL,NULL,3,NULL,3,'','','',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,608.00000000,0.00000000,608.00000000,NULL,NULL,NULL),(33,10,6,'2022-12-11 21:23:22','PR1909-0032',1,NULL,NULL,'','2019-09-27 17:07:40','2022-09-27','2022-10-12 12:00:00','2022-09-27 17:08:59',NULL,NULL,12,12,12,NULL,NULL,1,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL,'This is a private note','This is a public note','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,'propale/PR1909-0032/PR1909-0032.pdf',NULL,NULL),(34,10,6,'2022-12-11 21:23:22','PR1909-0033',1,NULL,NULL,'','2019-09-27 17:11:21','2022-09-27','2022-10-12 12:00:00','2022-09-27 17:13:13','2020-01-07 23:43:06','2022-01-07 23:43:06',12,12,12,12,12,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,NULL,NULL,NULL,NULL,'a & a
\r\nb < r','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,'propale/PR1909-0033/PR1909-0033.pdf',NULL,NULL),(35,10,NULL,'2022-12-11 21:23:22','(PROV35)',1,NULL,NULL,'','2019-09-27 17:53:44','2022-09-27','2022-10-12 12:00:00',NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,NULL,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,5.00000000,0.00000000,5.00000000,'propale/(PROV35)/(PROV35).pdf',NULL,NULL),(36,1,NULL,'2022-02-07 13:37:54','PR2001-0034',1,NULL,NULL,'','2020-01-01 23:55:35','2022-01-01','2022-01-16 12:00:00','2022-01-19 14:24:22','2021-01-19 14:24:27','2022-01-19 14:24:27',12,NULL,12,12,12,2,0,NULL,NULL,0,4.00000000,0.24000000,0.00000000,0.00000000,4.24000000,NULL,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,4.00000000,0.24000000,4.24000000,'propale/PR2001-0034/PR2001-0034.pdf',NULL,NULL),(37,10,NULL,'2022-02-07 13:37:54','(PROV37)',1,NULL,NULL,'','2020-01-06 00:44:16','2022-01-05','2022-01-20 12:00:00',NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,'propale/(PROV37)/(PROV37).pdf',NULL,NULL),(38,30,NULL,'2022-02-07 13:37:54','(PROV38)',1,NULL,NULL,'','2020-01-13 17:25:28','2022-01-13','2022-01-28 12:00:00',NULL,NULL,NULL,12,NULL,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL,'','','azur',NULL,NULL,NULL,0,NULL,0,NULL,NULL,0,'',1,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,'propale/(PROV38)/(PROV38).pdf',NULL,NULL); /*!40000 ALTER TABLE `llx_propal` ENABLE KEYS */; UNLOCK TABLES; @@ -11486,7 +11582,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_propal_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -11511,13 +11607,13 @@ 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 utf8mb3_unicode_ci NOT NULL, - `lang` varchar(5) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `file_name` varchar(200) NOT NULL, + `lang` varchar(5) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_mod` int(11) NOT NULL, `datec` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -11543,15 +11639,15 @@ CREATE TABLE `llx_propaldet` ( `fk_propal` int(11) DEFAULT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `fk_remise_except` int(11) DEFAULT NULL, `tva_tx` double(6,3) DEFAULT 0.000, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -11572,7 +11668,7 @@ CREATE TABLE `llx_propaldet` ( `rang` int(11) DEFAULT 0, `fk_unit` int(11) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -11607,7 +11703,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_propaldet_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -11632,13 +11728,13 @@ DROP TABLE IF EXISTS `llx_reception`; CREATE TABLE `llx_reception` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) NOT NULL, `fk_projet` int(11) DEFAULT NULL, - `ref_ext` varchar(30) COLLATE 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, + `ref_ext` varchar(30) DEFAULT NULL, + `ref_int` varchar(30) DEFAULT NULL, + `ref_supplier` varchar(128) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -11647,7 +11743,7 @@ CREATE TABLE `llx_reception` ( `date_delivery` datetime DEFAULT NULL, `date_reception` datetime DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, - `tracking_number` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `tracking_number` varchar(50) DEFAULT NULL, `fk_statut` smallint(6) DEFAULT 0, `billed` smallint(6) DEFAULT 0, `height` float DEFAULT NULL, @@ -11656,13 +11752,13 @@ CREATE TABLE `llx_reception` ( `size` float DEFAULT NULL, `weight_units` int(11) DEFAULT NULL, `weight` float DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_reception_uk_ref` (`ref`,`entity`), KEY `idx_reception_fk_soc` (`fk_soc`), @@ -11697,7 +11793,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_reception_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -11722,25 +11818,26 @@ DROP TABLE IF EXISTS `llx_recruitment_recruitmentcandidature`; CREATE TABLE `llx_recruitment_recruitmentcandidature` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_recruitmentjobposition` int(11) DEFAULT NULL, - `ref` varchar(128) CHARACTER SET utf8mb4 NOT NULL DEFAULT '(PROV)', - `description` text CHARACTER SET utf8mb4 DEFAULT NULL, - `note_public` text CHARACTER SET utf8mb4 DEFAULT NULL, - `note_private` text CHARACTER SET utf8mb4 DEFAULT NULL, + `ref` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '(PROV)', + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `note_public` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `note_private` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, - `model_pdf` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `model_pdf` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `status` smallint(6) NOT NULL, - `firstname` varchar(128) CHARACTER SET utf8mb4 DEFAULT NULL, - `lastname` varchar(128) CHARACTER SET utf8mb4 DEFAULT NULL, - `email` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, - `phone` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL, + `firstname` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `lastname` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `phone` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `remuneration_requested` int(11) DEFAULT NULL, `remuneration_proposed` int(11) DEFAULT NULL, `fk_recruitment_origin` int(11) DEFAULT NULL, - `email_msgid` varchar(175) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_msgid` varchar(175) DEFAULT NULL, + `email_date` datetime DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `date_birth` date DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -11759,7 +11856,7 @@ CREATE TABLE `llx_recruitment_recruitmentcandidature` ( LOCK TABLES `llx_recruitment_recruitmentcandidature` WRITE; /*!40000 ALTER TABLE `llx_recruitment_recruitmentcandidature` DISABLE KEYS */; -INSERT INTO `llx_recruitment_recruitmentcandidature` VALUES (118,3,'(PROV118)','',NULL,NULL,'2021-04-15 07:28:32','2021-04-15 10:28:32',12,NULL,NULL,NULL,0,'Stud','Studson','student1@myschool.com','',20000,NULL,NULL,NULL,1,'2005-04-15'),(119,4,'(PROV119)','',NULL,NULL,'2021-04-15 07:29:26','2021-04-15 10:29:26',12,NULL,NULL,NULL,3,'Garfield','Erika','egarfield@example.com','',40000,NULL,NULL,NULL,1,'1990-04-15'); +INSERT INTO `llx_recruitment_recruitmentcandidature` VALUES (118,3,'(PROV118)','',NULL,NULL,'2021-04-15 07:28:32','2021-04-15 10:28:32',12,NULL,NULL,NULL,0,'Stud','Studson','student1@myschool.com','',20000,NULL,NULL,NULL,NULL,1,'2005-04-15'),(119,4,'(PROV119)','',NULL,NULL,'2021-04-15 07:29:26','2021-04-15 10:29:26',12,NULL,NULL,NULL,3,'Garfield','Erika','egarfield@example.com','',40000,NULL,NULL,NULL,NULL,1,'1990-04-15'); /*!40000 ALTER TABLE `llx_recruitment_recruitmentcandidature` ENABLE KEYS */; UNLOCK TABLES; @@ -11774,8 +11871,8 @@ CREATE TABLE `llx_recruitment_recruitmentcandidature_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, - `aa` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `aa` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_fk_object` (`fk_object`), KEY `idx_recruitmentcandidature_fk_object` (`fk_object`) @@ -11801,8 +11898,8 @@ DROP TABLE IF EXISTS `llx_recruitment_recruitmentjobposition`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_recruitment_recruitmentjobposition` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) CHARACTER SET utf8mb4 NOT NULL DEFAULT '(PROV)', - `label` varchar(255) CHARACTER SET utf8mb4 NOT NULL, + `ref` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '(PROV)', + `label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `qty` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) DEFAULT NULL, `fk_project` int(11) DEFAULT NULL, @@ -11810,21 +11907,21 @@ CREATE TABLE `llx_recruitment_recruitmentjobposition` ( `fk_user_supervisor` int(11) DEFAULT NULL, `fk_establishment` int(11) DEFAULT NULL, `date_planned` date DEFAULT NULL, - `description` text CHARACTER SET utf8mb4 DEFAULT NULL, - `note_public` text CHARACTER SET utf8mb4 DEFAULT NULL, - `note_private` text CHARACTER SET utf8mb4 DEFAULT NULL, + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `note_public` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `note_private` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, - `model_pdf` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `model_pdf` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `status` smallint(6) NOT NULL, - `last_main_doc` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, - `email_recruiter` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, + `last_main_doc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `email_recruiter` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `remuneration` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, - `remuneration_suggested` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, + `remuneration` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `remuneration_suggested` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_recruitment_recruitmentjobposition_rowid` (`rowid`), KEY `idx_recruitment_recruitmentjobposition_ref` (`ref`), @@ -11863,7 +11960,7 @@ CREATE TABLE `llx_recruitment_recruitmentjobposition_extrafields` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_object` int(11) NOT NULL, - `import_key` varchar(14) CHARACTER SET utf8mb4 DEFAULT NULL, + `import_key` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `bbb` double(24,8) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_fk_object` (`fk_object`), @@ -11891,12 +11988,12 @@ DROP TABLE IF EXISTS `llx_resource`; CREATE TABLE `llx_resource` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(255) COLLATE 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, + `ref` varchar(255) DEFAULT NULL, + `asset_number` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `fk_code_type_resource` varchar(32) DEFAULT NULL, + `note_public` text DEFAULT NULL, + `note_private` text DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -11904,8 +12001,8 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_country` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_resource_ref` (`ref`,`entity`), @@ -11936,7 +12033,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_resource_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -11960,15 +12057,16 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `module` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `libelle` varchar(255) DEFAULT NULL, + `module` varchar(64) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `perms` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `subperms` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `type` varchar(1) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `perms` varchar(50) DEFAULT NULL, + `subperms` varchar(50) DEFAULT NULL, + `type` varchar(1) DEFAULT NULL, `bydefault` tinyint(4) DEFAULT 0, `module_position` int(11) NOT NULL DEFAULT 0, `family_position` int(11) NOT NULL DEFAULT 0, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`id`,`entity`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -11979,7 +12077,7 @@ CREATE TABLE `llx_rights_def` ( LOCK TABLES `llx_rights_def` WRITE; /*!40000 ALTER TABLE `llx_rights_def` DISABLE KEYS */; -INSERT INTO `llx_rights_def` VALUES (11,'Read invoices','facture',1,'lire',NULL,'a',0,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); +INSERT INTO `llx_rights_def` VALUES (11,'Read invoices','facture',1,'lire',NULL,'a',0,0,0,'2022-12-11 21:23:42'),(11,'Lire les factures','facture',2,'lire',NULL,'a',1,10,0,'2022-12-11 21:23:36'),(12,'Create and update invoices','facture',1,'creer',NULL,'a',0,0,0,'2022-12-11 21:23:42'),(12,'Creer/modifier les factures','facture',2,'creer',NULL,'a',0,10,0,'2022-12-11 21:23:36'),(13,'Devalidate invoices','facture',1,'invoice_advance','unvalidate','a',0,0,0,'2022-12-11 21:23:42'),(13,'Dévalider les factures','facture',2,'invoice_advance','unvalidate','a',0,10,0,'2022-12-11 21:23:36'),(14,'Validate invoices','facture',1,'invoice_advance','validate','a',0,0,0,'2022-12-11 21:23:42'),(14,'Valider les factures','facture',2,'valider',NULL,'a',0,10,0,'2022-12-11 21:23:36'),(15,'Send invoices by email','facture',1,'invoice_advance','send','a',0,0,0,'2022-12-11 21:23:42'),(15,'Envoyer les factures par mail','facture',2,'invoice_advance','send','a',0,10,0,'2022-12-11 21:23:36'),(16,'Issue payments on invoices','facture',1,'paiement',NULL,'a',0,0,0,'2022-12-11 21:23:42'),(16,'Emettre des paiements sur les factures','facture',2,'paiement',NULL,'a',0,10,0,'2022-12-11 21:23:36'),(19,'Delete invoices','facture',1,'supprimer',NULL,'a',0,0,0,'2022-12-11 21:23:42'),(19,'Supprimer les factures','facture',2,'supprimer',NULL,'a',0,10,0,'2022-12-11 21:23:36'),(21,'Lire les propositions commerciales','propale',1,'lire',NULL,'r',1,22,0,'2022-12-11 21:23:36'),(21,'Lire les propositions commerciales','propale',2,'lire',NULL,'r',1,22,0,'2022-12-11 21:23:36'),(22,'Creer/modifier les propositions commerciales','propale',1,'creer',NULL,'w',0,22,0,'2022-12-11 21:23:36'),(22,'Creer/modifier les propositions commerciales','propale',2,'creer',NULL,'w',0,22,0,'2022-12-11 21:23:36'),(24,'Valider les propositions commerciales','propale',1,'propal_advance','validate','d',0,22,0,'2022-12-11 21:23:36'),(24,'Valider les propositions commerciales','propale',2,'valider',NULL,'d',0,22,0,'2022-12-11 21:23:36'),(25,'Envoyer les propositions commerciales aux clients','propale',1,'propal_advance','send','d',0,22,0,'2022-12-11 21:23:36'),(25,'Envoyer les propositions commerciales aux clients','propale',2,'propal_advance','send','d',0,22,0,'2022-12-11 21:23:36'),(26,'Cloturer les propositions commerciales','propale',1,'propal_advance','close','d',0,22,0,'2022-12-11 21:23:36'),(26,'Cloturer les propositions commerciales','propale',2,'propal_advance','close','d',0,22,0,'2022-12-11 21:23:36'),(27,'Supprimer les propositions commerciales','propale',1,'supprimer',NULL,'d',0,22,0,'2022-12-11 21:23:36'),(27,'Supprimer les propositions commerciales','propale',2,'supprimer',NULL,'d',0,22,0,'2022-12-11 21:23:36'),(28,'Exporter les propositions commerciales et attributs','propale',1,'export',NULL,'r',0,22,0,'2022-12-11 21:23:36'),(28,'Exporter les propositions commerciales et attributs','propale',2,'export',NULL,'r',0,22,0,'2022-12-11 21:23:36'),(31,'Lire les produits','produit',1,'lire',NULL,'r',1,25,0,'2022-12-11 21:23:36'),(31,'Lire les produits','produit',2,'lire',NULL,'r',1,25,0,'2022-12-11 21:23:36'),(32,'Creer/modifier les produits','produit',1,'creer',NULL,'w',0,25,0,'2022-12-11 21:23:36'),(32,'Creer/modifier les produits','produit',2,'creer',NULL,'w',0,25,0,'2022-12-11 21:23:36'),(34,'Supprimer les produits','produit',1,'supprimer',NULL,'d',0,25,0,'2022-12-11 21:23:36'),(34,'Supprimer les produits','produit',2,'supprimer',NULL,'d',0,25,0,'2022-12-11 21:23:36'),(38,'Exporter les produits','produit',1,'export',NULL,'r',0,25,0,'2022-12-11 21:23:36'),(38,'Exporter les produits','produit',2,'export',NULL,'r',0,25,0,'2022-12-11 21:23:36'),(39,'Ignore minimum price','produit',1,'ignore_price_min_advance',NULL,'r',0,25,0,'2022-12-11 21:23:36'),(41,'Read projects and tasks (shared projects or projects I am contact for). Can also enter time consumed on assigned tasks (timesheet)','projet',1,'lire',NULL,'r',1,14,0,'2022-12-11 21:23:36'),(42,'Create/modify projects and tasks (shared projects or projects I am contact for)','projet',1,'creer',NULL,'w',0,14,0,'2022-12-11 21:23:36'),(44,'Delete project and tasks (shared projects or projects I am contact for)','projet',1,'supprimer',NULL,'d',0,14,0,'2022-12-11 21:23:36'),(45,'Export projects','projet',1,'export',NULL,'d',0,14,0,'2022-12-11 21:23:36'),(61,'Lire les fiches d\'intervention','ficheinter',1,'lire',NULL,'r',1,41,0,'2022-12-11 21:23:36'),(62,'Creer/modifier les fiches d\'intervention','ficheinter',1,'creer',NULL,'w',0,41,0,'2022-12-11 21:23:36'),(64,'Supprimer les fiches d\'intervention','ficheinter',1,'supprimer',NULL,'d',0,41,0,'2022-12-11 21:23:36'),(67,'Exporter les fiches interventions','ficheinter',1,'export',NULL,'r',0,41,0,'2022-12-11 21:23:36'),(68,'Envoyer les fiches d\'intervention par courriel','ficheinter',1,'ficheinter_advance','send','r',0,41,0,'2022-12-11 21:23:36'),(69,'Valider les fiches d\'intervention ','ficheinter',1,'ficheinter_advance','validate','a',0,41,0,'2022-12-11 21:23:36'),(70,'Dévalider les fiches d\'intervention','ficheinter',1,'ficheinter_advance','unvalidate','a',0,41,0,'2022-12-11 21:23:36'),(71,'Read members\' card','adherent',1,'lire',NULL,'r',0,55,0,'2022-12-11 21:23:36'),(72,'Create/modify members (need also user module permissions if member linked to a user)','adherent',1,'creer',NULL,'w',0,55,0,'2022-12-11 21:23:36'),(74,'Remove members','adherent',1,'supprimer',NULL,'d',0,55,0,'2022-12-11 21:23:36'),(75,'Setup types of membership','adherent',1,'configurer',NULL,'w',0,55,0,'2022-12-11 21:23:36'),(76,'Export members','adherent',1,'export',NULL,'r',0,55,0,'2022-12-11 21:23:36'),(78,'Read subscriptions','adherent',1,'cotisation','lire','r',0,55,0,'2022-12-11 21:23:36'),(79,'Create/modify/remove subscriptions','adherent',1,'cotisation','creer','w',0,55,0,'2022-12-11 21:23:36'),(81,'Read sales orders','commande',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(82,'Creeat/modify sales orders','commande',1,'creer',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(84,'Validate sales orders','commande',1,'order_advance','validate','d',0,0,0,'2022-12-11 21:23:42'),(85,'Generate the documents sales orders','commande',1,'order_advance','generetedoc','d',0,0,0,'2022-12-11 21:23:42'),(86,'Send sales orders by email','commande',1,'order_advance','send','d',0,0,0,'2022-12-11 21:23:42'),(87,'Close sale orders','commande',1,'order_advance','close','d',0,0,0,'2022-12-11 21:23:42'),(88,'Cancel sale orders','commande',1,'order_advance','annuler','d',0,0,0,'2022-12-11 21:23:42'),(89,'Delete sales orders','commande',1,'supprimer',NULL,'d',0,0,0,'2022-12-11 21:23:42'),(91,'Lire les charges','tax',1,'charges','lire','r',0,50,0,'2022-12-11 21:23:36'),(91,'Lire les charges','tax',2,'charges','lire','r',1,50,0,'2022-12-11 21:23:36'),(92,'Creer/modifier les charges','tax',1,'charges','creer','w',0,50,0,'2022-12-11 21:23:36'),(92,'Creer/modifier les charges','tax',2,'charges','creer','w',0,50,0,'2022-12-11 21:23:36'),(93,'Supprimer les charges','tax',1,'charges','supprimer','d',0,50,0,'2022-12-11 21:23:36'),(93,'Supprimer les charges','tax',2,'charges','supprimer','d',0,50,0,'2022-12-11 21:23:36'),(94,'Exporter les charges','tax',1,'charges','export','r',0,50,0,'2022-12-11 21:23:36'),(94,'Exporter les charges','tax',2,'charges','export','r',0,50,0,'2022-12-11 21:23:36'),(101,'Lire les expeditions','expedition',1,'lire',NULL,'r',0,40,0,'2022-12-11 21:23:36'),(102,'Creer modifier les expeditions','expedition',1,'creer',NULL,'w',0,40,0,'2022-12-11 21:23:36'),(104,'Valider les expeditions','expedition',1,'shipping_advance','validate','d',0,40,0,'2022-12-11 21:23:36'),(105,'Envoyer les expeditions aux clients','expedition',1,'shipping_advance','send','d',0,40,0,'2022-12-11 21:23:36'),(106,'Exporter les expeditions','expedition',1,'shipment','export','r',0,40,0,'2022-12-11 21:23:36'),(109,'Supprimer les expeditions','expedition',1,'supprimer',NULL,'d',0,40,0,'2022-12-11 21:23:36'),(111,'Read bank account and transactions','banque',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(111,'Lire les comptes bancaires','banque',2,'lire',NULL,'r',1,51,0,'2022-12-11 21:23:36'),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',1,'modifier',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',2,'modifier',NULL,'w',0,51,0,'2022-12-11 21:23:36'),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',1,'configurer',NULL,'a',0,0,0,'2022-12-11 21:23:42'),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',2,'configurer',NULL,'a',0,51,0,'2022-12-11 21:23:36'),(114,'Rapprocher les ecritures bancaires','banque',1,'consolidate',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(114,'Rapprocher les ecritures bancaires','banque',2,'consolidate',NULL,'w',0,51,0,'2022-12-11 21:23:36'),(115,'Exporter transactions et releves','banque',1,'export',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(115,'Exporter transactions et releves','banque',2,'export',NULL,'r',0,51,0,'2022-12-11 21:23:36'),(116,'Virements entre comptes','banque',1,'transfer',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(116,'Virements entre comptes','banque',2,'transfer',NULL,'w',0,51,0,'2022-12-11 21:23:36'),(117,'Gerer les envois de cheques','banque',1,'cheque',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(117,'Gerer les envois de cheques','banque',2,'cheque',NULL,'w',0,51,0,'2022-12-11 21:23:36'),(121,'Read third parties','societe',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(121,'Lire les societes','societe',2,'lire',NULL,'r',1,9,0,'2022-12-11 21:23:36'),(122,'Create and update third parties','societe',1,'creer',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(122,'Creer modifier les societes','societe',2,'creer',NULL,'w',0,9,0,'2022-12-11 21:23:36'),(125,'Delete third parties','societe',1,'supprimer',NULL,'d',0,0,0,'2022-12-11 21:23:43'),(125,'Supprimer les societes','societe',2,'supprimer',NULL,'d',0,9,0,'2022-12-11 21:23:36'),(126,'Export third parties','societe',1,'export',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(126,'Exporter les societes','societe',2,'export',NULL,'r',0,9,0,'2022-12-11 21:23:36'),(130,'Modify thirdparty information payment','societe',1,'thirdparty_paymentinformation_advance','write','w',0,0,0,'2022-12-11 21:23:43'),(141,'Read all projects and tasks (also private projects I am not contact for)','projet',1,'all','lire','r',0,14,0,'2022-12-11 21:23:36'),(142,'Create/modify all projects and tasks (also private projects I am not contact for)','projet',1,'all','creer','w',0,14,0,'2022-12-11 21:23:36'),(144,'Delete all projects and tasks (also private projects I am not contact for)','projet',1,'all','supprimer','d',0,14,0,'2022-12-11 21:23:36'),(151,'Read withdrawals','prelevement',1,'bons','lire','r',1,52,0,'2022-12-11 21:23:36'),(152,'Create/modify a withdrawals','prelevement',1,'bons','creer','w',0,52,0,'2022-12-11 21:23:36'),(153,'Send withdrawals to bank','prelevement',1,'bons','send','a',0,52,0,'2022-12-11 21:23:36'),(154,'credit/refuse withdrawals','prelevement',1,'bons','credit','a',0,52,0,'2022-12-11 21:23:36'),(161,'Lire les contrats','contrat',1,'lire',NULL,'r',1,35,0,'2022-12-11 21:23:36'),(162,'Creer / modifier les contrats','contrat',1,'creer',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(163,'Activer un service d\'un contrat','contrat',1,'activer',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(164,'Desactiver un service d\'un contrat','contrat',1,'desactiver',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(165,'Supprimer un contrat','contrat',1,'supprimer',NULL,'d',0,35,0,'2022-12-11 21:23:36'),(167,'Export contracts','contrat',1,'export',NULL,'r',0,35,0,'2022-12-11 21:23:36'),(221,'Consulter les mailings','mailing',1,'lire',NULL,'r',1,11,0,'2022-12-11 21:23:36'),(221,'Consulter les mailings','mailing',2,'lire',NULL,'r',1,11,0,'2022-12-11 21:23:36'),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',1,'creer',NULL,'w',0,11,0,'2022-12-11 21:23:36'),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',2,'creer',NULL,'w',0,11,0,'2022-12-11 21:23:36'),(223,'Valider les mailings (permet leur envoi)','mailing',1,'valider',NULL,'w',0,11,0,'2022-12-11 21:23:36'),(223,'Valider les mailings (permet leur envoi)','mailing',2,'valider',NULL,'w',0,11,0,'2022-12-11 21:23:36'),(229,'Supprimer les mailings','mailing',1,'supprimer',NULL,'d',0,11,0,'2022-12-11 21:23:36'),(229,'Supprimer les mailings','mailing',2,'supprimer',NULL,'d',0,11,0,'2022-12-11 21:23:36'),(237,'View recipients and info','mailing',1,'mailing_advance','recipient','r',0,11,0,'2022-12-11 21:23:36'),(237,'View recipients and info','mailing',2,'mailing_advance','recipient','r',0,11,0,'2022-12-11 21:23:36'),(238,'Manually send mailings','mailing',1,'mailing_advance','send','w',0,11,0,'2022-12-11 21:23:36'),(238,'Manually send mailings','mailing',2,'mailing_advance','send','w',0,11,0,'2022-12-11 21:23:36'),(239,'Delete mailings after validation and/or sent','mailing',1,'mailing_advance','delete','d',0,11,0,'2022-12-11 21:23:36'),(239,'Delete mailings after validation and/or sent','mailing',2,'mailing_advance','delete','d',0,11,0,'2022-12-11 21:23:36'),(241,'Lire les categories','categorie',1,'lire',NULL,'r',1,20,0,'2022-12-11 21:23:36'),(242,'Creer/modifier les categories','categorie',1,'creer',NULL,'w',0,20,0,'2022-12-11 21:23:36'),(243,'Supprimer les categories','categorie',1,'supprimer',NULL,'d',0,20,0,'2022-12-11 21:23:36'),(251,'Read information of other users, groups and permissions','user',1,'user','lire','r',0,0,0,'2022-12-11 21:23:44'),(252,'Read permissions of other users','user',1,'user_advance','readperms','r',0,0,0,'2022-12-11 21:23:44'),(253,'Create/modify internal and external users, groups and permissions','user',1,'user','creer','w',0,0,0,'2022-12-11 21:23:44'),(254,'Create/modify external users only','user',1,'user_advance','write','w',0,0,0,'2022-12-11 21:23:44'),(255,'Modify the password of other users','user',1,'user','password','w',0,0,0,'2022-12-11 21:23:44'),(256,'Delete or disable other users','user',1,'user','supprimer','d',0,0,0,'2022-12-11 21:23:44'),(262,'Read all third parties (and their objects) by internal users (otherwise only if commercial contact). Not effective for external users (limited to themselves).','societe',1,'client','voir','r',0,0,0,'2022-12-11 21:23:43'),(262,'Consulter tous les tiers par utilisateurs internes (sinon uniquement si contact commercial). Non effectif pour utilisateurs externes (tjs limités à eux-meme).','societe',2,'client','voir','r',1,9,0,'2022-12-11 21:23:36'),(281,'Read contacts','societe',1,'contact','lire','r',0,0,0,'2022-12-11 21:23:43'),(281,'Lire les contacts','societe',2,'contact','lire','r',1,9,0,'2022-12-11 21:23:36'),(282,'Create and update contact','societe',1,'contact','creer','w',0,0,0,'2022-12-11 21:23:43'),(282,'Creer modifier les contacts','societe',2,'contact','creer','w',0,9,0,'2022-12-11 21:23:36'),(283,'Delete contacts','societe',1,'contact','supprimer','d',0,0,0,'2022-12-11 21:23:43'),(283,'Supprimer les contacts','societe',2,'contact','supprimer','d',0,9,0,'2022-12-11 21:23:36'),(286,'Export contacts','societe',1,'contact','export','d',0,0,0,'2022-12-11 21:23:43'),(286,'Exporter les contacts','societe',2,'contact','export','d',0,9,0,'2022-12-11 21:23:36'),(301,'Generate PDF sheets of barcodes','barcode',1,'read',NULL,'r',1,0,0,'2022-12-11 21:23:42'),(304,'Read barcodes','barcode',1,'lire_advance',NULL,'r',1,0,0,'2022-12-11 21:23:42'),(305,'Create/modify barcodes','barcode',1,'creer_advance',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(331,'Lire les bookmarks','bookmark',1,'lire',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(332,'Creer/modifier les bookmarks','bookmark',1,'creer',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(333,'Supprimer les bookmarks','bookmark',1,'supprimer',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(341,'Read its own permissions','user',1,'self_advance','readperms','r',0,0,0,'2022-12-11 21:23:44'),(342,'Create/modify of its own user','user',1,'self','creer','w',0,0,0,'2022-12-11 21:23:44'),(343,'Modify its own password','user',1,'self','password','w',0,0,0,'2022-12-11 21:23:44'),(344,'Modify its own permissions','user',1,'self_advance','writeperms','w',0,0,0,'2022-12-11 21:23:44'),(351,'Read groups','user',1,'group_advance','read','r',0,0,0,'2022-12-11 21:23:44'),(352,'Read permissions of groups','user',1,'group_advance','readperms','r',0,0,0,'2022-12-11 21:23:44'),(353,'Create/modify groups and permissions','user',1,'group_advance','write','w',0,0,0,'2022-12-11 21:23:44'),(354,'Delete groups','user',1,'group_advance','delete','d',0,0,0,'2022-12-11 21:23:44'),(358,'Export all users','user',1,'user','export','r',0,0,0,'2022-12-11 21:23:44'),(511,'Read employee salaries and payments (yours and your subordinates)','salaries',1,'read',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(512,'Create/modify payments of empoyee salaries','salaries',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(514,'Delete payments of employee salary','salaries',1,'delete',NULL,'d',0,0,0,'2022-12-11 21:23:43'),(517,'Read salaries and payments of all employees','salaries',1,'readall',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(519,'Export payments of employee salaries','salaries',1,'export',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(520,'Read loans','loan',1,'read',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(521,'Read loans','loan',1,'read',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(522,'Create/modify loans','loan',1,'write',NULL,'w',0,50,0,'2022-12-11 21:23:36'),(524,'Delete loans','loan',1,'delete',NULL,'d',0,50,0,'2022-12-11 21:23:36'),(525,'Access loan calculator','loan',1,'calc',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(527,'Export loans','loan',1,'export',NULL,'r',0,50,0,'2022-12-11 21:23:36'),(531,'Read services','service',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(532,'Create/modify services','service',1,'creer',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(533,'Read prices services','service',1,'service_advance','read_prices','w',0,0,0,'2022-12-11 21:23:43'),(534,'Delete les services','service',1,'supprimer',NULL,'d',0,0,0,'2022-12-11 21:23:43'),(538,'Export services','service',1,'export',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(561,'Read bank transfer payment orders','paymentbybanktransfer',1,'read',NULL,'r',0,52,0,'2022-12-11 21:23:36'),(562,'Create/modify a bank transfer payment order','paymentbybanktransfer',1,'create',NULL,'w',0,52,0,'2022-12-11 21:23:36'),(563,'Send/Transmit bank transfer payment order','paymentbybanktransfer',1,'send',NULL,'a',0,52,0,'2022-12-11 21:23:36'),(564,'Record Debits/Rejects of bank transfer payment order','paymentbybanktransfer',1,'debit',NULL,'a',0,52,0,'2022-12-11 21:23:36'),(610,'Read attributes of variants','variants',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:36'),(611,'Create/Update attributes of variants','variants',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:36'),(612,'Delete attributes of variants','variants',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:36'),(651,'Read bom of Bom','bom',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(652,'Create/Update bom of Bom','bom',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(653,'Delete bom of Bom','bom',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(661,'Read Manufacturing Order','mrp',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(662,'Create/Update Manufacturing Order','mrp',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(663,'Delete Manufacturing Order','mrp',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(701,'Lire les dons','don',1,'lire',NULL,'r',1,50,0,'2022-12-11 21:23:36'),(701,'Lire les dons','don',2,'lire',NULL,'r',1,50,0,'2022-12-11 21:23:36'),(702,'Creer/modifier les dons','don',1,'creer',NULL,'w',0,50,0,'2022-12-11 21:23:36'),(702,'Creer/modifier les dons','don',2,'creer',NULL,'w',0,50,0,'2022-12-11 21:23:36'),(703,'Supprimer les dons','don',1,'supprimer',NULL,'d',0,50,0,'2022-12-11 21:23:36'),(703,'Supprimer les dons','don',2,'supprimer',NULL,'d',0,50,0,'2022-12-11 21:23:36'),(750,'Read job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','read','w',0,0,0,'2022-12-11 21:23:43'),(751,'Create/Update job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','write','w',0,0,0,'2022-12-11 21:23:43'),(752,'Delete Job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','delete','w',0,0,0,'2022-12-11 21:23:43'),(771,'Read expense reports (yours and your subordinates)','expensereport',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(772,'Create/modify expense reports','expensereport',1,'creer',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(773,'Delete expense reports','expensereport',1,'supprimer',NULL,'d',0,0,0,'2022-12-11 21:23:42'),(775,'Approve expense reports','expensereport',1,'approve',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(776,'Pay expense reports','expensereport',1,'to_paid',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(777,'Read expense reports of everybody','expensereport',1,'readall',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(778,'Create expense reports for everybody','expensereport',1,'writeall_advance',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(779,'Export expense reports','expensereport',1,'export',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(1001,'Lire les stocks','stock',1,'lire',NULL,'r',1,40,0,'2022-12-11 21:23:36'),(1002,'Creer/Modifier les stocks','stock',1,'creer',NULL,'w',0,40,0,'2022-12-11 21:23:36'),(1003,'Supprimer les stocks','stock',1,'supprimer',NULL,'d',0,40,0,'2022-12-11 21:23:36'),(1004,'Lire mouvements de stocks','stock',1,'mouvement','lire','r',1,40,0,'2022-12-11 21:23:36'),(1005,'Creer/modifier mouvements de stocks','stock',1,'mouvement','creer','w',0,40,0,'2022-12-11 21:23:36'),(1011,'inventoryReadPermission','stock',1,'inventory_advance','read','w',0,39,0,'2022-12-11 21:23:36'),(1012,'inventoryCreatePermission','stock',1,'inventory_advance','write','w',0,39,0,'2022-12-11 21:23:36'),(1101,'Read delivery receipts','expedition',1,'delivery','lire','r',0,40,0,'2022-12-11 21:23:36'),(1102,'Create/modify delivery receipts','expedition',1,'delivery','creer','w',0,40,0,'2022-12-11 21:23:36'),(1104,'Validate delivery receipts','expedition',1,'delivery_advance','validate','d',0,40,0,'2022-12-11 21:23:36'),(1109,'Delete delivery receipts','expedition',1,'delivery','supprimer','d',0,40,0,'2022-12-11 21:23:36'),(1121,'Read supplier proposals','supplier_proposal',1,'lire',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1122,'Create/modify supplier proposals','supplier_proposal',1,'creer',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1123,'Validate supplier proposals','supplier_proposal',1,'validate_advance',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1124,'Envoyer les demandes fournisseurs','supplier_proposal',1,'send_advance',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1125,'Delete supplier proposals','supplier_proposal',1,'supprimer',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1126,'Close supplier price requests','supplier_proposal',1,'cloturer',NULL,'w',0,35,0,'2022-12-11 21:23:36'),(1181,'Consulter les fournisseurs','fournisseur',1,'lire',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(1182,'Consulter les commandes fournisseur','fournisseur',1,'commande','lire','r',0,0,0,'2022-12-11 21:23:42'),(1183,'Creer une commande fournisseur','fournisseur',1,'commande','creer','w',0,0,0,'2022-12-11 21:23:42'),(1184,'Valider une commande fournisseur','fournisseur',1,'supplier_order_advance','validate','w',0,0,0,'2022-12-11 21:23:42'),(1185,'Approuver une commande fournisseur','fournisseur',1,'commande','approuver','w',0,0,0,'2022-12-11 21:23:42'),(1186,'Commander une commande fournisseur','fournisseur',1,'commande','commander','w',0,0,0,'2022-12-11 21:23:43'),(1187,'Receptionner une commande fournisseur','fournisseur',1,'commande','receptionner','d',0,0,0,'2022-12-11 21:23:43'),(1188,'Supprimer une commande fournisseur','fournisseur',1,'commande','supprimer','d',0,0,0,'2022-12-11 21:23:43'),(1189,'Check/Uncheck a supplier order reception','fournisseur',1,'commande_advance','check','w',0,0,0,'2022-12-11 21:23:43'),(1191,'Exporter les commande fournisseurs, attributs','fournisseur',1,'commande','export','r',0,0,0,'2022-12-11 21:23:43'),(1201,'Lire les exports','export',1,'lire',NULL,'r',1,72,0,'2022-12-11 21:23:36'),(1202,'Creer/modifier un export','export',1,'creer',NULL,'w',0,72,0,'2022-12-11 21:23:36'),(1231,'Consulter les factures fournisseur','fournisseur',1,'facture','lire','r',0,0,0,'2022-12-11 21:23:43'),(1232,'Creer une facture fournisseur','fournisseur',1,'facture','creer','w',0,0,0,'2022-12-11 21:23:43'),(1233,'Valider une facture fournisseur','fournisseur',1,'supplier_invoice_advance','validate','w',0,0,0,'2022-12-11 21:23:43'),(1234,'Supprimer une facture fournisseur','fournisseur',1,'facture','supprimer','d',0,0,0,'2022-12-11 21:23:43'),(1235,'Envoyer les factures par mail','fournisseur',1,'supplier_invoice_advance','send','a',0,0,0,'2022-12-11 21:23:43'),(1236,'Exporter les factures fournisseurs, attributs et reglements','fournisseur',1,'facture','export','r',0,0,0,'2022-12-11 21:23:43'),(1251,'Run mass imports of external data (data load)','import',1,'run',NULL,'r',0,70,0,'2022-12-11 21:23:36'),(1321,'Export customer invoices, attributes and payments','facture',1,'facture','export','r',0,0,0,'2022-12-11 21:23:42'),(1321,'Exporter les factures clients, attributs et reglements','facture',2,'facture','export','r',0,10,0,'2022-12-11 21:23:36'),(1322,'Re-open a fully paid invoice','facture',1,'invoice_advance','reopen','r',0,0,0,'2022-12-11 21:23:42'),(1421,'Export sales orders and attributes','commande',1,'commande','export','r',0,0,0,'2022-12-11 21:23:42'),(2401,'Read actions/tasks linked to his account','agenda',1,'myactions','read','r',0,0,0,'2022-12-11 21:23:42'),(2401,'Read actions/tasks linked to his account','agenda',2,'myactions','read','r',1,15,0,'2022-12-11 21:23:36'),(2402,'Create/modify actions/tasks linked to his account','agenda',1,'myactions','create','w',0,0,0,'2022-12-11 21:23:42'),(2402,'Create/modify actions/tasks linked to his account','agenda',2,'myactions','create','w',0,15,0,'2022-12-11 21:23:36'),(2403,'Delete actions/tasks linked to his account','agenda',1,'myactions','delete','w',0,0,0,'2022-12-11 21:23:42'),(2403,'Delete actions/tasks linked to his account','agenda',2,'myactions','delete','w',0,15,0,'2022-12-11 21:23:36'),(2411,'Read actions/tasks of others','agenda',1,'allactions','read','r',0,0,0,'2022-12-11 21:23:42'),(2411,'Read actions/tasks of others','agenda',2,'allactions','read','r',0,15,0,'2022-12-11 21:23:36'),(2412,'Create/modify actions/tasks of others','agenda',1,'allactions','create','w',0,0,0,'2022-12-11 21:23:42'),(2412,'Create/modify actions/tasks of others','agenda',2,'allactions','create','w',0,15,0,'2022-12-11 21:23:36'),(2413,'Delete actions/tasks of others','agenda',1,'allactions','delete','w',0,0,0,'2022-12-11 21:23:42'),(2413,'Delete actions/tasks of others','agenda',2,'allactions','delete','w',0,15,0,'2022-12-11 21:23:36'),(2414,'Export actions/tasks of others','agenda',1,'export',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(2501,'Read or download documents','ecm',1,'read',NULL,'r',0,0,0,'2022-12-11 21:23:42'),(2503,'Upload a document','ecm',1,'upload',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(2515,'Administer directories of documents','ecm',1,'setup',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(2610,'Générer / modifier la clé API des utilisateurs','api',1,'apikey','generate','w',0,24,0,'2022-12-11 21:23:36'),(3201,'Read archived events and fingerprints','blockedlog',1,'read',NULL,'w',0,76,0,'2022-12-11 21:23:36'),(10001,'Read website content','website',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(10002,'Create/modify website content (html and javascript content)','website',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(10003,'Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers.','website',1,'writephp',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(10005,'Delete website content','website',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(10008,'Export website content','website',1,'export',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(20001,'Read leave requests (yours and your subordinates)','holiday',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20001,'Créer / Modifier / Lire ses demandes de congés payés','holiday',2,'write',NULL,'w',1,42,0,'2022-12-11 21:23:36'),(20002,'Create/modify leave requests','holiday',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20003,'Delete leave requests','holiday',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20003,'Supprimer des demandes de congés payés','holiday',2,'delete',NULL,'w',0,42,0,'2022-12-11 21:23:36'),(20004,'Read leave requests for everybody','holiday',1,'readall',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20004,'Définir les congés payés des utilisateurs','holiday',2,'define_holiday',NULL,'w',0,42,0,'2022-12-11 21:23:36'),(20005,'Create/modify leave requests for everybody','holiday',1,'writeall',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20005,'Voir les logs de modification des congés payés','holiday',2,'view_log',NULL,'w',0,42,0,'2022-12-11 21:23:36'),(20006,'Setup leave requests of users (setup and update balance)','holiday',1,'define_holiday',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(20006,'Accéder au rapport mensuel des congés payés','holiday',2,'month_report',NULL,'w',0,42,0,'2022-12-11 21:23:36'),(20007,'Approve leave requests','holiday',1,'approve',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(23001,'Read cron jobs','cron',1,'read',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(23002,'Create cron Jobs','cron',1,'create',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(23003,'Delete cron Jobs','cron',1,'delete',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(23004,'Execute cron Jobs','cron',1,'execute',NULL,'w',0,0,0,'2022-12-11 21:23:42'),(50151,'Use Point Of Sale (record a sale, add products, record payment)','takepos',1,'run',NULL,'a',0,0,0,'2022-12-11 21:23:44'),(50152,'Can modify added sales lines (prices, discount)','takepos',1,'editlines',NULL,'a',0,0,0,'2022-12-11 21:23:44'),(50153,'Edit ordered sales lines (useful only when option \"Order printers\" has been enabled). Allow to edit sales lines even after the order has been printed','takepos',1,'editorderedlines',NULL,'a',0,0,0,'2022-12-11 21:23:44'),(50401,'Bind products and invoices with accounting accounts','accounting',1,'bind','write','r',0,61,0,'2022-12-11 21:23:36'),(50411,'Read operations in General Ledger','accounting',1,'mouvements','lire','r',0,61,0,'2022-12-11 21:23:36'),(50412,'Write/Edit operations in General Ledger','accounting',1,'mouvements','creer','w',0,61,0,'2022-12-11 21:23:36'),(50414,'Delete operations in Ledger','accounting',1,'mouvements','supprimer','d',0,61,0,'2022-12-11 21:23:36'),(50415,'Delete all operations by year and journal in Ledger','accounting',1,'mouvements','supprimer_tous','d',0,61,0,'2022-12-11 21:23:36'),(50418,'Export operations of the Ledger','accounting',1,'mouvements','export','r',0,61,0,'2022-12-11 21:23:36'),(50420,'Report and export reports (turnover, balance, journals, general ledger)','accounting',1,'comptarapport','lire','r',0,61,0,'2022-12-11 21:23:36'),(50430,'Define and close a fiscal year','accounting',1,'fiscalyear','write','r',0,61,0,'2022-12-11 21:23:36'),(50440,'Manage chart of accounts, setup of accountancy','accounting',1,'chartofaccount',NULL,'r',0,61,0,'2022-12-11 21:23:36'),(55001,'Read surveys','opensurvey',1,'read',NULL,'r',0,0,0,'2022-12-11 21:23:43'),(55002,'Create/modify surveys','opensurvey',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:43'),(56001,'Read ticket','ticket',1,'read',NULL,'r',0,0,0,'2022-12-11 21:23:44'),(56002,'Create les tickets','ticket',1,'write',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(56003,'Delete les tickets','ticket',1,'delete',NULL,'d',0,0,0,'2022-12-11 21:23:44'),(56004,'Manage tickets','ticket',1,'manage',NULL,'w',0,0,0,'2022-12-11 21:23:44'),(57001,'Read articles','knowledgemanagement',1,'knowledgerecord','read','w',0,90,0,'2022-12-11 21:23:36'),(57002,'Create/Update articles','knowledgemanagement',1,'knowledgerecord','write','w',0,90,0,'2022-12-11 21:23:36'),(57003,'Delete articles','knowledgemanagement',1,'knowledgerecord','delete','w',0,90,0,'2022-12-11 21:23:36'),(59001,'Visualiser les marges','margins',1,'liretous',NULL,'r',0,55,0,'2022-12-11 21:23:36'),(59002,'Définir les marges','margins',1,'creer',NULL,'w',0,55,0,'2022-12-11 21:23:36'),(59003,'Read every user margin','margins',1,'read','all','r',0,55,0,'2022-12-11 21:23:36'),(63001,'Read resources','resource',1,'read',NULL,'w',0,16,0,'2022-12-11 21:23:36'),(63002,'Create/Modify resources','resource',1,'write',NULL,'w',0,16,0,'2022-12-11 21:23:36'),(63003,'Delete resources','resource',1,'delete',NULL,'w',0,16,0,'2022-12-11 21:23:36'),(63004,'Link resources to agenda events','resource',1,'link',NULL,'w',0,16,0,'2022-12-11 21:23:36'),(64001,'DirectPrint','printing',1,'read',NULL,'r',0,52,0,'2022-12-11 21:23:36'),(101250,'Read surveys','opensurvey',2,'survey','read','r',0,40,0,'2022-12-11 21:23:36'),(101251,'Create/modify surveys','opensurvey',2,'survey','write','w',0,40,0,'2022-12-11 21:23:36'),(941601,'Lire les receptions','reception',1,'lire',NULL,'r',0,40,0,'2022-12-11 21:23:36'),(941602,'Creer modifier les receptions','reception',1,'creer',NULL,'w',0,40,0,'2022-12-11 21:23:36'),(941603,'Valider les receptions','reception',1,'reception_advance','validate','d',0,40,0,'2022-12-11 21:23:36'),(941604,'Envoyer les receptions aux clients','reception',1,'reception_advance','send','d',0,40,0,'2022-12-11 21:23:36'),(941605,'Exporter les receptions','reception',1,'reception','export','r',0,40,0,'2022-12-11 21:23:36'),(941606,'Supprimer les receptions','reception',1,'supprimer',NULL,'d',0,40,0,'2022-12-11 21:23:36'); /*!40000 ALTER TABLE `llx_rights_def` ENABLE KEYS */; UNLOCK TABLES; @@ -11992,7 +12090,7 @@ DROP TABLE IF EXISTS `llx_salary`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_salary` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(30) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `fk_user` int(11) NOT NULL, @@ -12002,12 +12100,12 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `datesp` date DEFAULT NULL, `dateep` date DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `paye` smallint(6) NOT NULL DEFAULT 0, `fk_account` int(11) DEFAULT NULL, @@ -12038,7 +12136,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_salary_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -12063,7 +12161,7 @@ DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistcontent`; 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, + `content` varchar(128) NOT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `status` int(11) NOT NULL DEFAULT 1, @@ -12081,6 +12179,35 @@ LOCK TABLES `llx_sellyoursaas_blacklistcontent` WRITE; /*!40000 ALTER TABLE `llx_sellyoursaas_blacklistcontent` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_sellyoursaas_blacklistdir` +-- + +DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistdir`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_sellyoursaas_blacklistdir` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT 1, + `content` varchar(128) NOT NULL, + `noblacklistif` varchar(255) DEFAULT NULL, + `date_creation` datetime NOT NULL, + `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `status` int(11) NOT NULL DEFAULT 1, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_sellyoursaas_blacklistdir_content` (`content`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_sellyoursaas_blacklistdir` +-- + +LOCK TABLES `llx_sellyoursaas_blacklistdir` WRITE; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistdir` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_sellyoursaas_blacklistdir` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_sellyoursaas_blacklistfrom` -- @@ -12091,12 +12218,12 @@ DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistfrom`; 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, + `content` varchar(128) NOT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `status` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), - KEY `idx_sellyoursaas_blacklistfrom_content` (`content`) + UNIQUE KEY `uk_sellyoursaas_blacklistfrom_content` (`content`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -12119,12 +12246,14 @@ DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistip`; 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, + `content` varchar(128) NOT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `status` int(11) NOT NULL DEFAULT 1, + `date_use` datetime DEFAULT NULL, + `comment` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), - KEY `idx_sellyoursaas_blacklistip_content` (`content`) + UNIQUE KEY `uk_sellyoursaas_blacklistip_content` (`content`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -12147,7 +12276,7 @@ DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistmail`; 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, + `content` text NOT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `status` int(11) NOT NULL DEFAULT 1, @@ -12175,12 +12304,12 @@ DROP TABLE IF EXISTS `llx_sellyoursaas_blacklistto`; 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, + `content` varchar(128) NOT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `status` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), - KEY `idx_sellyoursaas_blacklistto_content` (`content`) + UNIQUE KEY `uk_sellyoursaas_blacklistto_content` (`content`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -12193,6 +12322,39 @@ LOCK TABLES `llx_sellyoursaas_blacklistto` WRITE; /*!40000 ALTER TABLE `llx_sellyoursaas_blacklistto` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `llx_sellyoursaas_deploymentserver` +-- + +DROP TABLE IF EXISTS `llx_sellyoursaas_deploymentserver`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_sellyoursaas_deploymentserver` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `ref` varchar(128) NOT NULL, + `entity` int(11) NOT NULL DEFAULT 1, + `note_private` text DEFAULT NULL, + `date_creation` datetime NOT NULL, + `date_modification` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `status` int(11) NOT NULL DEFAULT 0, + `fk_country` int(11) DEFAULT NULL, + `fromdomainname` varchar(128) DEFAULT NULL, + `ipaddress` varchar(128) NOT NULL, + `servercustomerannounce` text DEFAULT NULL, + `servercustomerannouncestatus` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_sellyoursaas_deploymentserver` +-- + +LOCK TABLES `llx_sellyoursaas_deploymentserver` WRITE; +/*!40000 ALTER TABLE `llx_sellyoursaas_deploymentserver` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_sellyoursaas_deploymentserver` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `llx_session` -- @@ -12201,12 +12363,12 @@ DROP TABLE IF EXISTS `llx_session`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_session` ( - `session_id` varchar(50) CHARACTER SET utf8mb4 NOT NULL, - `session_variable` text CHARACTER SET utf8mb4 DEFAULT NULL, + `session_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `session_variable` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `last_accessed` datetime NOT NULL, `fk_user` int(11) NOT NULL, - `remote_ip` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL, - `user_agent` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `remote_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, + `user_agent` varchar(255) DEFAULT NULL, PRIMARY KEY (`session_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -12233,42 +12395,42 @@ CREATE TABLE `llx_societe` ( `parent` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, - `nom` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `nom` varchar(128) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(60) DEFAULT NULL, + `code_client` varchar(24) DEFAULT NULL, + `code_fournisseur` varchar(24) DEFAULT NULL, + `code_compta` varchar(24) DEFAULT NULL, + `code_compta_fournisseur` varchar(24) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(25) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `fk_departement` int(11) DEFAULT 0, `fk_pays` int(11) DEFAULT 0, - `phone` varchar(20) COLLATE 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, + `phone` varchar(20) DEFAULT NULL, + `fax` varchar(20) DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `email` varchar(128) DEFAULT NULL, + `socialnetworks` text DEFAULT NULL, `fk_effectif` int(11) DEFAULT 0, `fk_typent` int(11) DEFAULT NULL, `fk_forme_juridique` int(11) DEFAULT 0, - `fk_currency` varchar(3) COLLATE 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, + `fk_currency` varchar(3) DEFAULT NULL, + `siren` varchar(128) DEFAULT NULL, + `siret` varchar(128) DEFAULT NULL, + `ape` varchar(128) DEFAULT NULL, + `idprof4` varchar(128) DEFAULT NULL, + `tva_intra` varchar(20) DEFAULT NULL, `capital` double(24,8) DEFAULT NULL, `fk_stcomm` int(11) NOT NULL DEFAULT 0, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `prefix_comm` varchar(5) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `prefix_comm` varchar(5) DEFAULT NULL, `client` tinyint(4) DEFAULT 0, `fournisseur` tinyint(4) DEFAULT 0, - `supplier_account` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `fk_prospectlevel` varchar(12) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `supplier_account` varchar(32) DEFAULT NULL, + `fk_prospectlevel` varchar(12) DEFAULT NULL, `customer_bad` tinyint(4) DEFAULT 0, `customer_rate` double DEFAULT 0, `supplier_rate` double DEFAULT 0, @@ -12278,7 +12440,7 @@ CREATE TABLE `llx_societe` ( `remise_supplier` double DEFAULT 0, `mode_reglement` tinyint(4) DEFAULT NULL, `cond_reglement` tinyint(4) DEFAULT NULL, - `deposit_percent` varchar(63) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `deposit_percent` varchar(63) DEFAULT NULL, `transport_mode` tinyint(4) DEFAULT NULL, `mode_reglement_supplier` int(11) DEFAULT NULL, `outstanding_limit` double(24,8) DEFAULT NULL, @@ -12292,29 +12454,30 @@ CREATE TABLE `llx_societe` ( `localtax1_value` double(6,3) DEFAULT NULL, `localtax2_assuj` tinyint(4) DEFAULT 0, `localtax2_value` double(6,3) DEFAULT NULL, - `barcode` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `barcode` varchar(255) DEFAULT NULL, `price_level` int(11) 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, + `default_lang` varchar(6) DEFAULT NULL, + `canvas` varchar(32) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` tinyint(4) DEFAULT 1, - `logo` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `idprof5` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `idprof6` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `logo` varchar(255) DEFAULT NULL, + `idprof5` varchar(128) DEFAULT NULL, + `idprof6` varchar(128) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT 0, - `webservices_url` varchar(255) COLLATE 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, + `webservices_url` varchar(255) DEFAULT NULL, + `webservices_key` varchar(128) DEFAULT NULL, + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, + `name_alias` varchar(128) DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `fk_account` int(11) DEFAULT NULL, `fk_warehouse` int(11) DEFAULT NULL, - `logo_squarred` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `logo_squarred` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_prefix_comm` (`prefix_comm`,`entity`), UNIQUE KEY `uk_societe_code_client` (`code_client`,`entity`), @@ -12323,7 +12486,8 @@ CREATE TABLE `llx_societe` ( KEY `idx_societe_user_creat` (`fk_user_creat`), KEY `idx_societe_user_modif` (`fk_user_modif`), KEY `idx_societe_barcode` (`barcode`), - KEY `idx_societe_warehouse` (`fk_warehouse`) + KEY `idx_societe_warehouse` (`fk_warehouse`), + KEY `idx_societe_nom` (`nom`) ) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -12333,7 +12497,7 @@ CREATE TABLE `llx_societe` ( LOCK TABLES `llx_societe` WRITE; /*!40000 ALTER TABLE `llx_societe` DISABLE KEYS */; -INSERT INTO `llx_societe` VALUES (1,0,NULL,'2018-01-16 15:21:09','2012-07-08 14:21:44','Indian SAS',1,NULL,NULL,'CU1212-0007','SU1212-0005','7050','6050','1 alalah road',NULL,'Delhi',0,117,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,'0','','','','','',5000.00000000,1,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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); +INSERT INTO `llx_societe` VALUES (1,0,NULL,'2018-01-16 15:21:09','2012-07-08 14:21:44','Indian SAS',1,NULL,NULL,'CU1212-0007','SU1212-0005','7050','6050','1 alalah road',NULL,'Delhi',0,117,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,'0','','','','','',5000.00000000,1,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'en_IN',NULL,NULL,1,'indiancompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(2,0,NULL,'2018-07-30 11:45:49','2012-07-08 14:23:48','Teclib',1,NULL,NULL,'CU1108-0001','SU1108-0001','411CU11080001','401SU11080001','',NULL,'Paris',0,1,NULL,NULL,'www.teclib.com',NULL,NULL,4,3,57,'0','123456789','','ACE14','','',400000.00000000,0,NULL,NULL,NULL,3,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,'fr_FR',NULL,NULL,1,'teclibcompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,0,'',NULL,0,NULL),(3,0,NULL,'2017-02-16 00:47:25','2012-07-08 22:42:12','Spanish Comp',1,NULL,NULL,'SPANISHCOMP','SU1601-0009',NULL,NULL,'1 via mallere',NULL,'Madrid',123,4,NULL,NULL,NULL,NULL,NULL,3,4,408,'0','','','','','',10000.00000000,0,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'es_AR',NULL,NULL,1,'spanishcompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(4,0,NULL,'2018-01-22 17:24:53','2012-07-08 22:48:18','Prospector Vaalen',1,NULL,NULL,'CU1303-0014',NULL,NULL,NULL,'',NULL,'Bruxelles',103,2,NULL,NULL,NULL,NULL,NULL,3,4,201,'0','12345678','','','','',0.00000000,0,NULL,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'valeencompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(5,0,NULL,'2017-02-21 11:01:17','2012-07-08 23:22:57','NoCountry GmBh',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,0,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'nocountrycomp.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL),(6,0,NULL,'2018-01-16 15:35:56','2012-07-09 00:15:09','Swiss Touch',1,NULL,NULL,'CU1601-0018','SU1601-0010',NULL,NULL,'',NULL,'Genevia',0,6,NULL,NULL,NULL,'swisstouch@example.ch',NULL,2,2,601,'0','','','','','',56000.00000000,0,NULL,NULL,NULL,3,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'swisstouch.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(7,0,NULL,'2018-01-16 15:38:32','2012-07-09 01:24:26','Generic customer',1,NULL,NULL,'CU1302-0011',NULL,NULL,NULL,'',NULL,NULL,0,7,NULL,NULL,NULL,'ttt@ttt.com',NULL,NULL,8,NULL,'0','','','','','',0.00000000,0,'Generic customer to use for Point Of Sale module.
',NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'genericcustomer.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(10,0,NULL,'2020-01-13 12:57:02','2012-07-10 15:13:08','NLTechno',1,NULL,NULL,'CU1212-0005','SU1601-0011','411CU12120005','401SU16010011','',NULL,NULL,0,102,NULL,NULL,NULL,'vsmith@email.com',NULL,1,4,54,'0','493861496','49386149600039','6209Z','22-01-2007','FR123456789',10000.00000000,0,NULL,'aa < aa
\r\ndddd',NULL,1,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,'123456789012',NULL,'fr_FR',NULL,NULL,1,'logo_nltechno_94x100.png','','',0,NULL,NULL,NULL,NULL,'The OpenSource company',0,NULL,'generic_odt:/home/ldestailleur/git/dolibarr_11.0/documents/doctemplates/thirdparties/template_thirdparty.ods',NULL,0,'',NULL,0,NULL),(11,0,NULL,'2019-11-28 11:52:58','2012-07-10 18:35:57','Company Corp 1',1,NULL,NULL,'CU1510-0017',NULL,'7051',NULL,'21 Green Hill street','75500','Los Angeles',0,11,'444123456',NULL,'companycorp1.com','companycorp1@example.com','{\"skype\":\"corp1\"}',1,1,NULL,'0','AB1234567','','','','USABS123',10000.00000000,0,NULL,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,'en_US',NULL,NULL,1,'comapnycorp1company.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL),(12,0,NULL,'2019-09-26 11:38:11','2012-07-11 16:18:08','Dupont Alain',1,NULL,NULL,'CU1601-0019',NULL,'411CU16010019',NULL,'',NULL,NULL,0,0,NULL,NULL,NULL,'pcurie@example.com',NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,1,0,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'pierrecurie.jpg','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,0,'',NULL,0,NULL),(13,0,NULL,'2019-10-08 09:57:51','2012-07-11 17:13:20','Company Corp 2',1,NULL,NULL,'CU1910-00021','SU1510-0008','411CU191000021','401SU15100008','',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,3,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'companycorp2company.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL),(17,0,NULL,'2019-11-28 15:02:49','2013-08-01 02:41:26','Book Keeping Company',1,NULL,NULL,'CU1108-0004','SU1108-0004',NULL,'401SU11080004','The French Company',NULL,'Paris',0,1,NULL,NULL,NULL,NULL,'[]',1,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'bookkeepercompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL),(19,0,NULL,'2019-09-26 12:03:13','2015-01-12 12:23:05','Magic Food Store',1,NULL,NULL,'CU1301-0008',NULL,NULL,NULL,'65 holdywood boulevard','123456','BigTown',0,4,NULL,'0101',NULL,'myemail@domain.com',NULL,NULL,NULL,NULL,'0','','','10/10/2010','','',0.00000000,0,NULL,NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,0.000,NULL,0.000,NULL,NULL,'en_US',NULL,NULL,1,'magicfoodstore.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,'sepamandate',NULL,NULL,NULL,NULL,0,NULL),(25,0,NULL,'2018-01-22 17:21:17','2015-03-10 15:47:37','Print Company',1,NULL,NULL,'CU1303-0016','SU1303-0007',NULL,NULL,'21 Gutenberg street','45600','Berlin',0,5,NULL,NULL,NULL,'printcompany@example.com',NULL,NULL,NULL,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'de_DE',NULL,NULL,1,'printcompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL),(26,0,NULL,'2019-09-26 12:06:05','2017-02-12 23:17:04','Calculation Power',1,NULL,NULL,'CU1702-0020',NULL,'411CU17020020',NULL,'',NULL,'Calgary',0,14,NULL,NULL,NULL,'calculationpower@example.com',NULL,NULL,NULL,NULL,NULL,'','','','','',NULL,0,NULL,NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0.000,0,0.000,NULL,NULL,'en_US',NULL,NULL,1,'bookkeepercompany.png','','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL),(29,0,NULL,'2020-01-13 12:56:22','2020-01-06 00:39:58','Patient',1,NULL,NULL,'CU2001-00022',NULL,'411CU200100022',NULL,'',NULL,NULL,0,117,'01','02',NULL,NULL,'null',NULL,NULL,NULL,NULL,'','','','','',NULL,0,'aa < ddd',NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.000,NULL,0.000,NULL,NULL,NULL,'patient@cabinetmed',NULL,1,NULL,'','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,0,'',NULL,0,NULL),(30,0,NULL,'2020-01-17 14:21:26','2020-01-13 17:19:24','Italo',1,NULL,NULL,'CU2001-00023',NULL,'411CU200100023',NULL,'12 Alagio','123','Milano',777,3,NULL,NULL,NULL,NULL,'[]',NULL,NULL,NULL,NULL,'','','','','',NULL,0,NULL,NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,0,0.000,NULL,4,NULL,NULL,NULL,1,NULL,'','',0,NULL,NULL,NULL,NULL,'',0,NULL,NULL,NULL,1,'EUR',NULL,0,NULL); /*!40000 ALTER TABLE `llx_societe` ENABLE KEYS */; UNLOCK TABLES; @@ -12347,24 +12511,24 @@ DROP TABLE IF EXISTS `llx_societe_account`; CREATE TABLE `llx_societe_account` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) DEFAULT 1, - `login` varchar(128) COLLATE 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, + `login` varchar(128) NOT NULL, + `pass_encoding` varchar(24) DEFAULT NULL, + `pass_crypted` varchar(128) DEFAULT NULL, + `pass_temp` varchar(128) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, - `site` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `site` varchar(128) DEFAULT NULL, `fk_website` int(11) DEFAULT NULL, - `note_private` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` mediumtext DEFAULT NULL, `date_last_login` datetime DEFAULT NULL, `date_previous_login` datetime DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` int(11) DEFAULT NULL, - `key_account` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `site_account` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `key_account` varchar(128) DEFAULT NULL, + `site_account` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_account_login_website_soc` (`entity`,`fk_soc`,`login`,`site`,`fk_website`), UNIQUE KEY `uk_societe_account_key_account_soc` (`entity`,`fk_soc`,`key_account`,`site`,`fk_website`), @@ -12398,16 +12562,16 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(30) DEFAULT NULL, `fk_soc` int(11) DEFAULT 0, - `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, + `name` varchar(60) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `fk_pays` int(11) DEFAULT 0, - `phone` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `fax` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone` varchar(20) DEFAULT NULL, + `fax` varchar(20) DEFAULT NULL, + `note` text DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) @@ -12434,7 +12598,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_commerciaux` (`fk_soc`,`fk_user`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -12465,7 +12629,7 @@ CREATE TABLE `llx_societe_contacts` ( `fk_c_type_contact` int(11) NOT NULL, `fk_socpeople` int(11) NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_societe_contacts_idx1` (`entity`,`fk_soc`,`fk_c_type_contact`,`fk_socpeople`), KEY `fk_societe_contacts_fk_c_type_contact` (`fk_c_type_contact`), @@ -12497,10 +12661,10 @@ 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 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, + `import_key` varchar(14) DEFAULT NULL, + `height` varchar(128) DEFAULT NULL, + `weight` varchar(128) DEFAULT NULL, + `prof` varchar(128) DEFAULT NULL, `birthdate` date DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_extrafields` (`fk_object`) @@ -12528,10 +12692,10 @@ 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 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, + `accountancy_code_customer` varchar(24) DEFAULT NULL, + `accountancy_code_supplier` varchar(24) DEFAULT NULL, + `accountancy_code_sell` varchar(32) DEFAULT NULL, + `accountancy_code_buy` varchar(32) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_perentity` (`fk_soc`,`entity`), KEY `idx_societe_perentity_fk_soc` (`fk_soc`) @@ -12590,7 +12754,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -12625,14 +12789,16 @@ CREATE TABLE `llx_societe_remise_except` ( `fk_facture_line` int(11) DEFAULT NULL, `fk_facture` int(11) DEFAULT NULL, `fk_facture_source` int(11) DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci NOT NULL, + `description` text NOT NULL, `multicurrency_amount_ht` double(24,8) NOT NULL DEFAULT 0.00000000, `multicurrency_amount_tva` double(24,8) NOT NULL DEFAULT 0.00000000, `multicurrency_amount_ttc` double(24,8) NOT NULL DEFAULT 0.00000000, `fk_invoice_supplier_line` int(11) DEFAULT NULL, `fk_invoice_supplier` int(11) DEFAULT NULL, `fk_invoice_supplier_source` int(11) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', + `multicurrency_code` varchar(3) DEFAULT NULL, + `multicurrency_tx` double(24,8) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_societe_remise_except_fk_user` (`fk_user`), KEY `idx_societe_remise_except_fk_soc` (`fk_soc`), @@ -12661,7 +12827,7 @@ CREATE TABLE `llx_societe_remise_except` ( LOCK TABLES `llx_societe_remise_except` WRITE; /*!40000 ALTER TABLE `llx_societe_remise_except` DISABLE KEYS */; -INSERT INTO `llx_societe_remise_except` VALUES (2,1,19,0,'2015-03-19 09:36:15',10.00000000,1.25000000,11.25000000,12.500,1,NULL,NULL,NULL,'hfghgf',0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,''),(14,1,17,1,'2020-01-01 22:06:30',79.16444000,9.89556000,89.06000000,12.500,12,NULL,NULL,NULL,'(CREDIT_NOTE)',0.00000000,0.00000000,0.00000000,NULL,NULL,27,''),(15,1,19,0,'2020-01-16 02:34:47',20.50000000,0.00000000,20.50000000,0.000,12,1065,NULL,224,'(DEPOSIT)',20.50000000,0.00000000,20.50000000,NULL,NULL,NULL,''),(16,1,1,0,'2020-01-19 14:49:41',10.00000000,1.96000000,11.96000000,19.600,12,NULL,NULL,NULL,'111',10.00000000,1.96000000,11.96000000,NULL,NULL,NULL,''),(19,1,1,0,'2020-01-19 15:16:27',48.60000000,1.94000000,50.54000000,4.000,12,NULL,NULL,228,'(DEPOSIT)',48.60000000,1.94000000,50.54000000,NULL,NULL,NULL,''); +INSERT INTO `llx_societe_remise_except` VALUES (2,1,19,0,'2015-03-19 09:36:15',10.00000000,1.25000000,11.25000000,12.500,1,NULL,NULL,NULL,'hfghgf',0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,'',NULL,NULL),(14,1,17,1,'2020-01-01 22:06:30',79.16444000,9.89556000,89.06000000,12.500,12,NULL,NULL,NULL,'(CREDIT_NOTE)',0.00000000,0.00000000,0.00000000,NULL,NULL,27,'',NULL,NULL),(15,1,19,0,'2020-01-16 02:34:47',20.50000000,0.00000000,20.50000000,0.000,12,1065,NULL,224,'(DEPOSIT)',20.50000000,0.00000000,20.50000000,NULL,NULL,NULL,'',NULL,NULL),(16,1,1,0,'2020-01-19 14:49:41',10.00000000,1.96000000,11.96000000,19.600,12,NULL,NULL,NULL,'111',10.00000000,1.96000000,11.96000000,NULL,NULL,NULL,'',NULL,NULL),(19,1,1,0,'2020-01-19 15:16:27',48.60000000,1.94000000,50.54000000,4.000,12,NULL,NULL,228,'(DEPOSIT)',48.60000000,1.94000000,50.54000000,NULL,NULL,NULL,'',NULL,NULL); /*!40000 ALTER TABLE `llx_societe_remise_except` ENABLE KEYS */; UNLOCK TABLES; @@ -12680,7 +12846,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `note` mediumtext DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -12704,44 +12870,47 @@ 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 utf8mb3_unicode_ci NOT NULL, + `type` varchar(32) NOT NULL, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `label` varchar(200) COLLATE 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, + `label` varchar(200) DEFAULT NULL, + `bank` varchar(255) DEFAULT NULL, + `code_banque` varchar(128) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + `bic` varchar(20) DEFAULT NULL, + `iban_prefix` varchar(34) DEFAULT NULL, + `domiciliation` varchar(255) DEFAULT NULL, + `proprio` varchar(60) DEFAULT NULL, + `owner_address` varchar(255) DEFAULT NULL, `default_rib` smallint(6) NOT NULL DEFAULT 0, - `rum` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `state_id` int(11) DEFAULT NULL, + `fk_country` int(11) DEFAULT NULL, + `currency_code` varchar(3) DEFAULT NULL, + `rum` varchar(32) DEFAULT NULL, `date_rum` date DEFAULT NULL, - `frstrecur` varchar(16) COLLATE 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, + `frstrecur` varchar(16) DEFAULT 'FRST', + `import_key` varchar(14) DEFAULT NULL, + `last_four` varchar(4) DEFAULT NULL, + `card_type` varchar(255) DEFAULT NULL, + `cvn` varchar(255) DEFAULT NULL, `exp_date_month` int(11) DEFAULT NULL, `exp_date_year` int(11) DEFAULT NULL, - `country_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `country_code` varchar(10) DEFAULT NULL, `approved` int(11) DEFAULT 0, - `email` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, `ending_date` date DEFAULT NULL, `max_total_amount_of_all_payments` double(24,8) DEFAULT NULL, - `preapproval_key` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `preapproval_key` varchar(255) DEFAULT NULL, `starting_date` date DEFAULT NULL, `total_amount_of_all_payments` double(24,8) DEFAULT NULL, - `stripe_card_ref` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `stripe_card_ref` varchar(128) DEFAULT NULL, `status` int(11) NOT NULL DEFAULT 1, - `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, + `comment` varchar(255) DEFAULT NULL, + `ipaddress` varchar(68) DEFAULT NULL, + `stripe_account` varchar(128) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -12752,7 +12921,7 @@ CREATE TABLE `llx_societe_rib` ( LOCK TABLES `llx_societe_rib` WRITE; /*!40000 ALTER TABLE `llx_societe_rib` DISABLE KEYS */; -INSERT INTO `llx_societe_rib` VALUES (1,'ban',19,'2017-02-21 15:50:32','2017-02-21 11:53:08','Morgan Bank','Morgan Bank','','','','','PSPBFIHH','ES80 2310 0001 1800 0001 2345','Royal via,\r\nMadrid','Mr Esposito','10 via ferrata,\r\nMadrid',1,'RUM1301-0008-0',NULL,'FRST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL); +INSERT INTO `llx_societe_rib` VALUES (1,'ban',19,'2017-02-21 15:50:32','2017-02-21 11:53:08','Morgan Bank','Morgan Bank','','','','','PSPBFIHH','ES80 2310 0001 1800 0001 2345','Royal via,\r\nMadrid','Mr Esposito','10 via ferrata,\r\nMadrid',1,NULL,NULL,NULL,'RUM1301-0008-0',NULL,'FRST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_societe_rib` ENABLE KEYS */; UNLOCK TABLES; @@ -12769,39 +12938,40 @@ 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 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, + `ref_ext` varchar(255) DEFAULT NULL, + `civility` varchar(6) DEFAULT NULL, + `lastname` varchar(50) DEFAULT NULL, + `firstname` varchar(50) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(25) DEFAULT NULL, + `town` text DEFAULT NULL, `fk_departement` int(11) DEFAULT NULL, `fk_pays` int(11) DEFAULT 0, `birthday` date DEFAULT NULL, - `poste` varchar(255) COLLATE 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, + `poste` varchar(255) DEFAULT NULL, + `phone` varchar(30) DEFAULT NULL, + `phone_perso` varchar(30) DEFAULT NULL, + `phone_mobile` varchar(30) DEFAULT NULL, + `fax` varchar(30) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `socialnetworks` text DEFAULT NULL, + `photo` varchar(255) DEFAULT NULL, `priv` smallint(6) NOT NULL DEFAULT 0, - `fk_prospectcontactlevel` varchar(12) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_prospectcontactlevel` varchar(12) DEFAULT NULL, `fk_stcommcontact` int(11) NOT NULL DEFAULT 0, `no_email` smallint(6) NOT NULL DEFAULT 0, `fk_user_creat` int(11) DEFAULT 0, `fk_user_modif` int(11) DEFAULT NULL, - `note_private` text COLLATE 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, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `default_lang` varchar(6) DEFAULT NULL, + `canvas` varchar(32) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `statut` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), KEY `idx_socpeople_fk_soc` (`fk_soc`), KEY `idx_socpeople_fk_user_creat` (`fk_user_creat`), + KEY `idx_socpeople_lastname` (`lastname`), CONSTRAINT `fk_socpeople_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), CONSTRAINT `fk_socpeople_user_creat_user_rowid` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -12828,7 +12998,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_socpeople_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -12860,13 +13030,13 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `fk_origin` int(11) DEFAULT NULL, - `origintype` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `origintype` varchar(64) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `fk_projet` int(11) NOT NULL DEFAULT 0, - `inventorycode` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `batch` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `inventorycode` varchar(128) DEFAULT NULL, + `batch` varchar(128) DEFAULT NULL, `eatby` date DEFAULT NULL, `sellby` date DEFAULT NULL, `fk_project` int(11) DEFAULT NULL, @@ -12897,7 +13067,7 @@ 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, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_stock_mouvement_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -12928,7 +13098,7 @@ CREATE TABLE `llx_subscription` ( `datef` datetime DEFAULT NULL, `subscription` double(24,8) DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_type` int(11) DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_valid` int(11) DEFAULT NULL, @@ -12956,10 +13126,10 @@ DROP TABLE IF EXISTS `llx_supplier_proposal`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_supplier_proposal` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(30) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(30) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ref_int` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(255) DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), @@ -12981,23 +13151,23 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `fk_currency` varchar(3) DEFAULT NULL, `fk_cond_reglement` int(11) DEFAULT NULL, `fk_mode_reglement` int(11) DEFAULT NULL, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, + `note_public` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `date_livraison` date DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ttc` double(24,8) DEFAULT 0.00000000, - `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -13023,7 +13193,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_supplier_proposal_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -13050,15 +13220,15 @@ CREATE TABLE `llx_supplier_proposaldet` ( `fk_supplier_proposal` int(11) NOT NULL, `fk_parent_line` int(11) DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, `fk_remise_except` int(11) DEFAULT NULL, `tva_tx` double(6,3) DEFAULT 0.000, - `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax1_type` varchar(10) DEFAULT NULL, `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(10) DEFAULT NULL, `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -13075,9 +13245,9 @@ CREATE TABLE `llx_supplier_proposaldet` ( `fk_product_fournisseur_price` int(11) DEFAULT NULL, `special_code` int(11) DEFAULT 0, `rang` int(11) DEFAULT 0, - `ref_fourn` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_fourn` varchar(30) DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) DEFAULT NULL, `multicurrency_subprice` double(24,8) DEFAULT 0.00000000, `multicurrency_total_ht` double(24,8) DEFAULT 0.00000000, `multicurrency_total_tva` double(24,8) DEFAULT 0.00000000, @@ -13115,7 +13285,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_supplier_proposaldet_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -13140,7 +13310,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `leftpos` float DEFAULT NULL, `toppos` float DEFAULT NULL, `floor` int(3) DEFAULT NULL, @@ -13171,30 +13341,32 @@ DROP TABLE IF EXISTS `llx_ticket`; CREATE TABLE `llx_ticket` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) DEFAULT 1, - `ref` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, - `track_id` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(128) NOT NULL, + `track_id` varchar(128) NOT NULL, `fk_soc` int(11) DEFAULT 0, `fk_project` int(11) DEFAULT 0, - `origin_email` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `origin_email` varchar(128) DEFAULT NULL, `fk_user_create` int(11) DEFAULT NULL, `fk_user_assign` int(11) DEFAULT NULL, - `subject` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `message` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `subject` varchar(255) DEFAULT NULL, + `message` mediumtext DEFAULT NULL, `fk_statut` int(11) DEFAULT NULL, `resolution` int(11) DEFAULT NULL, `progress` int(11) DEFAULT NULL, - `timing` varchar(20) COLLATE 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, + `timing` varchar(20) DEFAULT NULL, + `type_code` varchar(32) DEFAULT NULL, + `category_code` varchar(32) DEFAULT NULL, + `severity_code` varchar(32) DEFAULT NULL, `datec` datetime DEFAULT NULL, `date_read` datetime DEFAULT NULL, `date_last_msg_sent` datetime DEFAULT NULL, `date_close` datetime DEFAULT NULL, `notify_tiers_at_create` tinyint(4) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `email_msgid` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `email_msgid` varchar(255) DEFAULT NULL, + `email_date` datetime DEFAULT NULL, + `ip` varchar(250) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_ticket_track_id` (`track_id`), UNIQUE KEY `uk_ticket_ref` (`ref`,`entity`), @@ -13212,7 +13384,7 @@ CREATE TABLE `llx_ticket` ( LOCK TABLES `llx_ticket` WRITE; /*!40000 ALTER TABLE `llx_ticket` DISABLE KEYS */; -INSERT INTO `llx_ticket` VALUES (2,1,'TS1909-0001','15ff11cay39skiaa',NULL,6,NULL,12,12,'Increase memory on server','Pleae increase the memory of server to 164GB',3,NULL,0,NULL,'REQUEST','OTHER','NORMAL','2021-09-26 14:08:46',NULL,NULL,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); +INSERT INTO `llx_ticket` VALUES (2,1,'TS1909-0001','15ff11cay39skiaa',NULL,6,NULL,12,12,'Increase memory on server','Pleae increase the memory of server to 164GB',3,NULL,0,NULL,'REQUEST','OTHER','NORMAL','2022-09-26 14:08:46',NULL,NULL,NULL,0,'2022-12-11 21:23:22',NULL,NULL,NULL,NULL),(3,1,'TS1909-0002','r5ya6gdi9f39dcjt',1,NULL,NULL,12,14,'Problem with customer','Please recontact customer.
\r\nNeed someone speaking chinese...',0,NULL,100,NULL,'ISSUE','OTHER','NORMAL','2022-09-26 14:10:31',NULL,NULL,'2022-10-04 13:05:55',0,'2022-12-11 21:23:22',NULL,NULL,NULL,NULL),(4,1,'TS1910-0003','fdv9wrzcte7b3c8b',NULL,NULL,NULL,12,NULL,'test','test',2,NULL,0,NULL,'COM','OTHER','NORMAL','2022-10-04 12:58:04',NULL,NULL,NULL,0,'2022-12-11 21:23:22',NULL,NULL,NULL,NULL),(6,1,'TS1911-0004','5gvo9bsjri55zef9',NULL,4,NULL,12,16,'What is the price for Dolibarr ERP CRM ?','I need to use it for 10 users.',3,NULL,0,NULL,'COM','OTHER','NORMAL','2022-11-29 12:46:29','2022-11-29 12:46:34',NULL,NULL,0,'2022-12-11 21:23:22',NULL,NULL,NULL,NULL),(7,1,'TS1911-0005','d51wjy4nym7wltg7',NULL,NULL,'customer@customercompany.com',NULL,16,'What is the price for Dolibarr ERP CRM ?','I need it for 10 people...',8,NULL,100,NULL,'COM','OTHER','NORMAL','2022-11-29 12:50:45','2022-11-29 12:52:32',NULL,'2022-11-29 12:55:48',1,'2022-12-11 21:23:22',NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_ticket` ENABLE KEYS */; UNLOCK TABLES; @@ -13227,7 +13399,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `aaa` int(10) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_ticket_extrafields` (`fk_object`) @@ -13257,15 +13429,15 @@ CREATE TABLE `llx_tva` ( `datep` date DEFAULT NULL, `datev` date DEFAULT NULL, `amount` double(24,8) DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_typepayment` int(11) DEFAULT NULL, - `num_payment` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_payment` varchar(50) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `paye` smallint(6) NOT NULL DEFAULT 0, `fk_account` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`) @@ -13294,79 +13466,77 @@ CREATE TABLE `llx_user` ( `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `login` varchar(50) COLLATE utf8mb3_unicode_ci NOT NULL, + `login` varchar(50) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `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, + `ref_employee` varchar(50) DEFAULT NULL, + `civility` varchar(6) DEFAULT NULL, + `ref_ext` varchar(50) DEFAULT NULL, `employee` smallint(6) DEFAULT 1, `fk_establishment` int(11) DEFAULT 0, - `pass` varchar(128) COLLATE 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, + `pass` varchar(128) DEFAULT NULL, + `pass_crypted` varchar(128) DEFAULT NULL, + `pass_temp` varchar(128) DEFAULT NULL, + `api_key` varchar(128) DEFAULT NULL, + `lastname` varchar(50) DEFAULT NULL, + `firstname` varchar(50) DEFAULT NULL, + `job` varchar(128) DEFAULT NULL, + `office_phone` varchar(20) DEFAULT NULL, + `office_fax` varchar(20) DEFAULT NULL, + `user_mobile` varchar(20) DEFAULT NULL, + `personal_mobile` varchar(20) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `personal_email` varchar(255) DEFAULT NULL, + `socialnetworks` text DEFAULT NULL, + `signature` text DEFAULT NULL, `admin` smallint(6) DEFAULT 0, `fk_soc` int(11) DEFAULT NULL, `fk_socpeople` int(11) DEFAULT NULL, `fk_member` int(11) DEFAULT NULL, - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, `datelastlogin` datetime DEFAULT NULL, `datepreviouslogin` datetime DEFAULT NULL, `egroupware_id` int(11) DEFAULT NULL, - `ldap_sid` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ldap_sid` varchar(255) DEFAULT NULL, `statut` tinyint(4) DEFAULT 1, - `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, + `photo` varchar(255) DEFAULT NULL, + `lang` varchar(6) DEFAULT NULL, + `openid` varchar(255) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `fk_user_expense_validator` int(11) DEFAULT NULL, `fk_user_holiday_validator` int(11) DEFAULT NULL, `thm` double(24,8) DEFAULT NULL, - `address` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `zip` varchar(25) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `town` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(25) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, `fk_state` int(11) DEFAULT 0, `fk_country` int(11) DEFAULT 0, - `color` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `accountancy_code` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `barcode` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `color` varchar(6) DEFAULT NULL, + `accountancy_code` varchar(32) DEFAULT NULL, + `barcode` varchar(255) DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT 0, `nb_holiday` int(11) DEFAULT 0, `salary` double(24,8) DEFAULT NULL, `tjm` double(24,8) DEFAULT NULL, `salaryextra` double(24,8) DEFAULT NULL, `weeklyhours` double(16,8) DEFAULT NULL, - `gender` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `gender` varchar(10) DEFAULT NULL, + `note_public` text DEFAULT NULL, `dateemployment` datetime DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, `birth` date DEFAULT NULL, - `pass_encoding` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pass_encoding` varchar(24) DEFAULT NULL, `default_range` int(11) DEFAULT NULL, `default_c_exp_tax_cat` int(11) DEFAULT NULL, `dateemploymentend` date DEFAULT NULL, `fk_warehouse` int(11) DEFAULT NULL, - `iplastlogin` varchar(250) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ippreviouslogin` varchar(250) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `iplastlogin` varchar(250) DEFAULT NULL, + `ippreviouslogin` varchar(250) DEFAULT NULL, `datelastpassvalidation` datetime DEFAULT NULL, `datestartvalidity` datetime DEFAULT NULL, `dateendvalidity` datetime DEFAULT NULL, - `idpers1` varchar(128) COLLATE 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, + `national_registration_number` varchar(50) DEFAULT NULL, + `birth_place` varchar(64) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_user_login` (`login`,`entity`), UNIQUE KEY `uk_user_fk_socpeople` (`fk_socpeople`), @@ -13383,7 +13553,7 @@ CREATE TABLE `llx_user` ( LOCK TABLES `llx_user` WRITE; /*!40000 ALTER TABLE `llx_user` DISABLE KEYS */; -INSERT INTO `llx_user` VALUES (1,'2012-07-08 13:20:11','2021-04-15 10:42:13',NULL,NULL,'aeinstein',0,NULL,'',NULL,1,0,NULL,'$2y$10$lIvMb5RJjxqmd6OxnZLqvuLZGOXj3gxIQhZQUqcY8fQTyh0cTtUpa',NULL,NULL,'Einstein','Albert','','123456789','','','','aeinstein@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','',0,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); +INSERT INTO `llx_user` VALUES (1,'2012-07-08 13:20:11','2021-04-15 10:42:13',NULL,NULL,'aeinstein',0,NULL,'',NULL,1,0,NULL,'$2y$10$lIvMb5RJjxqmd6OxnZLqvuLZGOXj3gxIQhZQUqcY8fQTyh0cTtUpa',NULL,NULL,'Einstein','Albert','','123456789','','','','aeinstein@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','',0,NULL,NULL,NULL,'','2017-10-05 08:32:44','2017-10-03 11:43:50',NULL,'',1,'alberteinstein.jpg',NULL,NULL,14,NULL,NULL,NULL,'','','',NULL,NULL,'aaaaff','',NULL,0,0,NULL,NULL,NULL,44.00000000,'man','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'2012-07-08 13:54:48','2021-04-15 10:41:35',NULL,NULL,'demo',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Doe','David','Trainee','09123123','','','','daviddoe@example.com','','[]','',0,NULL,NULL,NULL,'','2018-07-30 23:10:54','2018-07-30 23:04:17',NULL,'',1,'person9.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,35.00000000,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'2012-07-11 16:18:59','2021-04-15 10:41:35',NULL,NULL,'pcurie',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Curie','Pierre','','','','','','pcurie@example.com','','[]','',0,NULL,NULL,2,'','2014-12-21 17:38:55',NULL,NULL,'',1,'pierrecurie.jpg',NULL,NULL,14,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,39.00000000,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,'2015-01-23 17:52:27','2021-04-15 10:41:35',NULL,NULL,'bbookkeeper',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Bookkeeper','Bob','Bookkeeper','','','','','bbookkeeper@example.com','','{\"skype\":\"skypebbookkeeper\"}','',0,17,6,NULL,'','2015-02-25 10:18:41','2015-01-23 17:53:20',NULL,'',1,'person8.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,16.00000000,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(10,'2017-10-03 11:47:41','2021-04-15 10:41:35',NULL,NULL,'mcurie',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'t3mnkbhs','Curie','Marie','','','','','','mcurie@example.com','','[]','',0,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'mariecurie.jpg',NULL,NULL,14,NULL,NULL,NULL,'','','',NULL,NULL,'ffaaff','',NULL,0,0,NULL,NULL,NULL,44.00000000,'woman',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(11,'2017-10-05 09:07:52','2021-04-15 10:40:22',NULL,NULL,'zzeceo',1,NULL,'',NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'cq78nf9m','Zeceo','Zack','President - CEO','','','','','zzeceo@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','',0,NULL,NULL,NULL,'','2017-10-05 22:48:08','2017-10-05 21:18:46',NULL,'',1,'person4.jpeg',NULL,NULL,NULL,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,39.00000000,NULL,'','2019-06-10 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(12,'2017-10-05 09:09:46','2021-04-15 10:38:52',NULL,NULL,'admin',0,NULL,'',NULL,1,0,NULL,'$2y$10$5qk/U.aOy.7uBSNxpwiqkOfBlCUop9c2wKWuFZ/wZ2hAC9lriGqnG',NULL,'nd6hgbcr','Adminson','Alice','Admin Technical','','','','','aadminson@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','Alice - 123',1,NULL,NULL,NULL,'','2022-07-05 07:56:33','2021-04-15 07:59:04',NULL,'',1,'person6.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,2700.00000000,NULL,NULL,39.00000000,'woman','',NULL,NULL,'generic_user_odt','1985-09-15',NULL,NULL,NULL,NULL,NULL,'192.168.0.254',NULL,NULL,NULL,NULL,NULL,NULL),(13,'2017-10-05 21:29:35','2021-04-15 10:41:51',NULL,NULL,'ccommercy',1,NULL,'',NULL,1,0,NULL,'$2y$10$KTaKE0NyYyJSCogsxtwR.eADst17XYMrOWlsFfVLR60IbjANIVLHK',NULL,'y451ksdv','Commercy','Coraly','Commercial leader','','','','','ccommercy@example.com','','{\"facebook\":\"\",\"skype\":\"\",\"twitter\":\"\",\"linkedin\":\"\",\"instagram\":\"\",\"snapchat\":\"\",\"googleplus\":\"\",\"youtube\":\"\",\"whatsapp\":\"\",\"tumblr\":\"\",\"vero\":\"\",\"viadeo\":\"\",\"slack\":\"\",\"xing\":\"\",\"meetup\":\"\",\"pinterest\":\"\",\"flickr\":\"\",\"500px\":\"\",\"giphy\":\"\",\"gifycat\":\"\",\"dailymotion\":\"\",\"vimeo\":\"\",\"periscope\":\"\",\"twitch\":\"\",\"discord\":\"\",\"wikipedia\":\"\",\"reddit\":\"\",\"quora\":\"\",\"tripadvisor\":\"\",\"mastodon\":\"\",\"diaspora\":\"\",\"viber\":\"\",\"github\":\"\"}','',0,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'person7.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,1890.00000000,NULL,NULL,25.00000000,'woman','','2018-09-11 00:00:00',NULL,NULL,'1998-12-08',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14,'2017-10-05 21:33:33','2021-04-15 10:41:35',NULL,NULL,'sscientol',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'s2hp8bxd','Scientol','Sam','Scientist leader','','','','','sscientol@example.com','','[]','',0,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'person3.jpeg',NULL,NULL,11,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,3500.00000000,NULL,NULL,39.00000000,NULL,NULL,'2018-07-03 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(16,'2017-10-05 22:47:52','2021-04-15 10:41:35',NULL,NULL,'ccommerson',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'cx9y1dk0','Charle1','Commerson','Sale representative','','','','','ccommerson@example.com','','[]','',0,NULL,NULL,NULL,'','2017-10-05 23:46:24','2017-10-05 23:37:31',NULL,'',1,'person1.jpeg',NULL,NULL,13,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,2900.00000000,NULL,NULL,39.00000000,NULL,NULL,'2019-09-01 00:00:00',NULL,NULL,'1976-02-05',NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(17,'2017-10-05 22:48:39','2021-04-15 10:41:35',NULL,NULL,'aleerfok',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'gw8cb7xj','Leerfok','Amanda','Sale representative','','','','','aleerfok@example.com','','[]','',0,NULL,NULL,NULL,'','2017-10-05 23:16:06',NULL,NULL,'',0,'person5.jpeg',NULL,NULL,13,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,39.00000000,'woman',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(18,'2018-01-22 17:27:02','2021-04-15 10:41:35',NULL,NULL,'ldestailleur',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,'87g06wbx','Destailleur','Laurent','Project leader of Dolibarr ERP CRM','','','','','ldestailleur@example.com','','[]','
Laurent DESTAILLEUR
\r\n\r\n
\r\n
Project Director
\r\nldestailleur@example.com
\r\n\r\n
 
\r\n\r\n\r\n
',0,10,10,NULL,'More information on http://www.mydomain.com','2019-10-04 10:06:40','2017-09-06 11:55:30',NULL,'',1,'ldestailleur_200x200.jpg',NULL,NULL,NULL,NULL,NULL,NULL,'','','',NULL,NULL,'007f7f','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(19,'2017-02-02 03:55:44','2021-04-15 10:41:35',NULL,NULL,'aboston',1,NULL,NULL,NULL,1,0,NULL,'$2y$10$Hgawd0DFS2bgBiM6rJuAZ.ff250vlm111HVWBJQvRzRq5hNijLxam',NULL,NULL,'Boston','Alex','','','','','','aboston@example.com','','[]','Alex Boston
\r\nAdmin support service - 555 01 02 03 04',0,NULL,NULL,NULL,'',NULL,NULL,NULL,'',0,'person2.jpeg',NULL,NULL,12,NULL,NULL,25.00000000,'','','',NULL,NULL,'ff00ff','',NULL,0,0,2700.00000000,NULL,NULL,32.00000000,NULL,NULL,'2016-11-04 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_user` ENABLE KEYS */; UNLOCK TABLES; @@ -13422,10 +13592,10 @@ 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 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, + `url` varchar(255) DEFAULT NULL, + `login` varchar(32) DEFAULT NULL, + `pass` varchar(64) DEFAULT NULL, + `poste` varchar(20) DEFAULT NULL, PRIMARY KEY (`fk_user`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -13449,14 +13619,14 @@ DROP TABLE IF EXISTS `llx_user_employment`; CREATE TABLE `llx_user_employment` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `entity` int(11) NOT NULL DEFAULT 1, - `ref` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `ref_ext` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, + `ref_ext` varchar(50) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `job` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `job` varchar(128) DEFAULT NULL, `status` int(11) NOT NULL, `salary` double(24,8) DEFAULT NULL, `salaryextra` double(24,8) DEFAULT NULL, @@ -13490,7 +13660,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_user_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -13515,8 +13685,8 @@ 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 utf8mb3_unicode_ci NOT NULL, - `value` text COLLATE utf8mb3_unicode_ci NOT NULL, + `param` varchar(255) NOT NULL, + `value` text NOT NULL, UNIQUE KEY `uk_user_param` (`fk_user`,`param`,`entity`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -13544,17 +13714,20 @@ 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 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, + `label` varchar(30) DEFAULT NULL, + `bank` varchar(255) DEFAULT NULL, + `code_banque` varchar(128) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + `bic` varchar(11) DEFAULT NULL, + `iban_prefix` varchar(34) DEFAULT NULL, + `domiciliation` varchar(255) DEFAULT NULL, + `proprio` varchar(60) DEFAULT NULL, + `owner_address` varchar(255) DEFAULT NULL, + `state_id` int(11) DEFAULT NULL, + `fk_country` int(11) DEFAULT NULL, + `currency_code` varchar(3) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -13584,7 +13757,7 @@ CREATE TABLE `llx_user_rights` ( UNIQUE KEY `uk_user_rights` (`entity`,`fk_user`,`fk_id`), KEY `fk_user_rights_fk_user_user` (`fk_user`), CONSTRAINT `fk_user_rights_fk_user_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) -) ENGINE=InnoDB AUTO_INCREMENT=21555 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=21798 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -13593,7 +13766,7 @@ CREATE TABLE `llx_user_rights` ( LOCK TABLES `llx_user_rights` WRITE; /*!40000 ALTER TABLE `llx_user_rights` DISABLE KEYS */; -INSERT INTO `llx_user_rights` VALUES (12402,1,1,11),(12380,1,1,12),(12385,1,1,13),(12389,1,1,14),(12393,1,1,15),(12398,1,1,16),(12404,1,1,19),(9726,1,1,21),(9700,1,1,22),(9706,1,1,24),(9711,1,1,25),(9716,1,1,26),(9722,1,1,27),(9728,1,1,28),(9978,1,1,31),(9968,1,1,32),(9974,1,1,34),(1910,1,1,36),(9980,1,1,38),(11573,1,1,41),(11574,1,1,42),(11575,1,1,44),(11576,1,1,45),(7184,1,1,61),(7181,1,1,62),(7183,1,1,64),(7185,1,1,67),(7186,1,1,68),(1678,1,1,71),(1673,1,1,72),(1675,1,1,74),(1679,1,1,75),(1677,1,1,76),(1681,1,1,78),(1682,1,1,79),(12322,1,1,81),(12309,1,1,82),(12312,1,1,84),(12314,1,1,86),(12317,1,1,87),(12320,1,1,88),(12323,1,1,89),(11580,1,1,91),(11581,1,1,92),(11582,1,1,93),(11583,1,1,94),(10097,1,1,95),(10099,1,1,96),(10103,1,1,97),(10104,1,1,98),(7139,1,1,101),(7134,1,1,102),(7136,1,1,104),(7137,1,1,105),(7138,1,1,106),(7140,1,1,109),(10229,1,1,111),(10201,1,1,112),(10207,1,1,113),(10213,1,1,114),(10219,1,1,115),(10225,1,1,116),(10231,1,1,117),(12518,1,1,121),(12508,1,1,122),(12514,1,1,125),(12520,1,1,126),(11577,1,1,141),(11578,1,1,142),(11579,1,1,144),(2307,1,1,151),(2304,1,1,152),(2306,1,1,153),(2308,1,1,154),(10092,1,1,161),(10093,1,1,162),(10094,1,1,163),(10095,1,1,164),(10096,1,1,165),(1585,1,1,170),(12342,1,1,171),(12331,1,1,172),(12335,1,1,173),(12339,1,1,174),(12343,1,1,178),(10000,1,1,221),(9990,1,1,222),(9996,1,1,223),(10002,1,1,229),(10007,1,1,237),(10011,1,1,238),(10015,1,1,239),(1686,1,1,241),(1685,1,1,242),(1687,1,1,243),(12604,1,1,251),(12566,1,1,252),(12569,1,1,253),(12572,1,1,254),(12575,1,1,255),(12579,1,1,256),(1617,1,1,258),(12525,1,1,262),(12544,1,1,281),(12534,1,1,282),(12540,1,1,283),(12546,1,1,286),(12288,1,1,300),(12290,1,1,301),(11591,1,1,302),(1763,1,1,331),(1762,1,1,332),(1764,1,1,333),(12582,1,1,341),(12584,1,1,342),(12586,1,1,343),(12588,1,1,344),(12600,1,1,351),(12593,1,1,352),(12597,1,1,353),(12601,1,1,354),(12605,1,1,358),(12560,1,1,531),(12553,1,1,532),(12557,1,1,534),(1625,1,1,536),(12561,1,1,538),(12358,1,1,700),(12348,1,1,701),(12354,1,1,702),(12360,1,1,703),(1755,1,1,1001),(1754,1,1,1002),(1756,1,1,1003),(1758,1,1,1004),(1759,1,1,1005),(7146,1,1,1101),(7143,1,1,1102),(7145,1,1,1104),(7147,1,1,1109),(12412,1,1,1181),(12458,1,1,1182),(12417,1,1,1183),(12420,1,1,1184),(12423,1,1,1185),(12427,1,1,1186),(12431,1,1,1187),(12437,1,1,1188),(12434,1,1,1189),(1578,1,1,1201),(1579,1,1,1202),(12454,1,1,1231),(12443,1,1,1232),(12446,1,1,1233),(12449,1,1,1234),(12452,1,1,1235),(12455,1,1,1236),(12459,1,1,1237),(1736,1,1,1251),(12409,1,1,1321),(12326,1,1,1421),(8190,1,1,1791),(8187,1,1,1792),(8191,1,1,1793),(12264,1,1,2401),(12260,1,1,2402),(12266,1,1,2403),(12280,1,1,2411),(12276,1,1,2412),(12282,1,1,2413),(12286,1,1,2414),(1618,1,1,2500),(12370,1,1,2501),(12367,1,1,2503),(12371,1,1,2515),(9610,1,1,5001),(9611,1,1,5002),(12490,1,1,20001),(12474,1,1,20003),(12480,1,1,20004),(12486,1,1,20005),(12492,1,1,20006),(12302,1,1,23001),(12295,1,1,23002),(12299,1,1,23003),(12303,1,1,23004),(7701,1,1,50101),(4984,1,1,50401),(4983,1,1,50402),(4985,1,1,50403),(4987,1,1,50411),(4988,1,1,50412),(4989,1,1,50415),(12498,1,1,55001),(12499,1,1,55002),(3564,1,1,100700),(3565,1,1,100701),(9596,1,1,101051),(9598,1,1,101052),(9600,1,1,101053),(9604,1,1,101060),(9605,1,1,101061),(7177,1,1,101201),(7178,1,1,101202),(10353,1,1,101250),(10355,1,1,101251),(8980,1,1,101261),(8981,1,1,101262),(7616,1,1,101331),(10030,1,1,101701),(10031,1,1,101702),(3582,1,1,102000),(3583,1,1,102001),(9819,1,1,400051),(9823,1,1,400052),(9827,1,1,400053),(9831,1,1,400055),(132,1,2,11),(133,1,2,12),(134,1,2,13),(135,1,2,14),(136,1,2,16),(137,1,2,19),(138,1,2,21),(139,1,2,22),(140,1,2,24),(141,1,2,25),(142,1,2,26),(143,1,2,27),(10359,1,2,31),(145,1,2,32),(10361,1,2,34),(146,1,2,36),(147,1,2,41),(148,1,2,42),(149,1,2,44),(150,1,2,61),(151,1,2,62),(152,1,2,64),(153,1,2,71),(154,1,2,72),(155,1,2,74),(156,1,2,75),(157,1,2,78),(158,1,2,79),(159,1,2,81),(160,1,2,82),(161,1,2,84),(162,1,2,86),(163,1,2,87),(164,1,2,88),(165,1,2,89),(166,1,2,91),(167,1,2,92),(168,1,2,93),(2475,1,2,95),(2476,1,2,96),(2477,1,2,97),(2478,1,2,98),(169,1,2,101),(170,1,2,102),(171,1,2,104),(172,1,2,109),(173,1,2,111),(174,1,2,112),(175,1,2,113),(176,1,2,114),(177,1,2,116),(178,1,2,117),(179,1,2,121),(180,1,2,122),(181,1,2,125),(182,1,2,141),(183,1,2,142),(184,1,2,144),(2479,1,2,151),(2480,1,2,152),(2481,1,2,153),(2482,1,2,154),(185,1,2,161),(186,1,2,162),(187,1,2,163),(188,1,2,164),(189,1,2,165),(190,1,2,170),(2471,1,2,171),(192,1,2,172),(2472,1,2,173),(193,1,2,221),(194,1,2,222),(195,1,2,229),(196,1,2,241),(197,1,2,242),(198,1,2,243),(199,1,2,251),(201,1,2,262),(202,1,2,281),(203,1,2,282),(204,1,2,283),(205,1,2,331),(15072,1,2,510),(2483,1,2,531),(207,1,2,532),(2484,1,2,534),(208,1,2,536),(2473,1,2,700),(210,1,2,701),(211,1,2,702),(2474,1,2,703),(15064,1,2,771),(15057,1,2,772),(15059,1,2,773),(15061,1,2,774),(15063,1,2,775),(15065,1,2,776),(212,1,2,1001),(213,1,2,1002),(214,1,2,1003),(215,1,2,1004),(216,1,2,1005),(217,1,2,1101),(218,1,2,1102),(219,1,2,1104),(220,1,2,1109),(15073,1,2,1121),(15074,1,2,1122),(15075,1,2,1123),(15076,1,2,1124),(15077,1,2,1125),(15078,1,2,1126),(221,1,2,1181),(222,1,2,1182),(223,1,2,1183),(224,1,2,1184),(225,1,2,1185),(226,1,2,1186),(227,1,2,1187),(228,1,2,1188),(229,1,2,1201),(230,1,2,1202),(231,1,2,1231),(232,1,2,1232),(233,1,2,1233),(234,1,2,1234),(235,1,2,1421),(236,1,2,2401),(237,1,2,2402),(238,1,2,2403),(239,1,2,2411),(240,1,2,2412),(241,1,2,2413),(242,1,2,2500),(2470,1,2,2501),(243,1,2,2515),(10363,1,2,20001),(10365,1,2,20003),(10366,1,2,20004),(10367,1,2,20005),(10368,1,2,20006),(15054,1,2,23001),(10362,1,2,50101),(15067,1,2,55001),(15066,1,2,59001),(15068,1,2,63001),(15069,1,2,63002),(15070,1,2,63003),(15071,1,2,63004),(10372,1,2,101250),(1807,1,3,11),(1808,1,3,31),(1809,1,3,36),(1810,1,3,41),(1811,1,3,61),(1812,1,3,71),(1813,1,3,72),(1814,1,3,74),(1815,1,3,75),(1816,1,3,78),(1817,1,3,79),(1818,1,3,91),(1819,1,3,95),(1820,1,3,97),(1821,1,3,111),(1822,1,3,121),(1823,1,3,122),(1824,1,3,125),(1825,1,3,161),(1826,1,3,170),(1827,1,3,171),(1828,1,3,172),(1829,1,3,221),(1830,1,3,222),(1831,1,3,229),(1832,1,3,241),(1833,1,3,242),(1834,1,3,243),(1835,1,3,251),(1836,1,3,255),(1837,1,3,256),(1838,1,3,262),(1839,1,3,281),(1840,1,3,282),(1841,1,3,283),(1842,1,3,331),(1843,1,3,531),(1844,1,3,536),(1845,1,3,700),(1846,1,3,1001),(1847,1,3,1002),(1848,1,3,1003),(1849,1,3,1004),(1850,1,3,1005),(1851,1,3,1181),(1852,1,3,1182),(1853,1,3,1201),(1854,1,3,1202),(1855,1,3,1231),(1856,1,3,2401),(1857,1,3,2402),(1858,1,3,2403),(1859,1,3,2411),(1860,1,3,2412),(1861,1,3,2413),(1862,1,3,2500),(1863,1,3,2515),(8026,1,4,11),(8027,1,4,21),(8028,1,4,31),(8029,1,4,41),(8030,1,4,61),(8031,1,4,71),(8032,1,4,72),(8033,1,4,74),(8034,1,4,75),(8035,1,4,78),(8036,1,4,79),(8037,1,4,81),(8038,1,4,91),(8039,1,4,95),(8040,1,4,97),(8041,1,4,101),(8042,1,4,111),(8043,1,4,121),(8044,1,4,151),(8045,1,4,161),(8046,1,4,171),(8047,1,4,221),(8048,1,4,222),(8049,1,4,229),(8050,1,4,241),(8051,1,4,242),(8052,1,4,243),(8146,1,4,251),(8147,1,4,253),(8053,1,4,262),(8054,1,4,281),(8055,1,4,331),(8056,1,4,341),(8057,1,4,342),(8058,1,4,343),(8059,1,4,344),(8060,1,4,531),(8061,1,4,700),(8062,1,4,1001),(8063,1,4,1002),(8064,1,4,1003),(8065,1,4,1004),(8066,1,4,1005),(8067,1,4,1101),(8068,1,4,1181),(8069,1,4,1182),(8070,1,4,1201),(8071,1,4,1202),(8072,1,4,1231),(8073,1,4,2401),(8074,1,4,2501),(8075,1,4,2503),(8076,1,4,2515),(8077,1,4,20001),(8078,1,4,50101),(8079,1,4,101201),(8080,1,4,101261),(8081,1,4,102000),(8082,1,4,400051),(8083,1,4,400052),(8084,1,4,400053),(8085,1,4,400055),(12608,1,10,11),(12609,1,10,21),(12610,1,10,31),(12611,1,10,41),(12612,1,10,61),(12613,1,10,71),(12614,1,10,72),(12615,1,10,74),(12616,1,10,75),(12617,1,10,78),(12618,1,10,79),(12619,1,10,81),(12620,1,10,91),(12621,1,10,95),(12622,1,10,97),(12623,1,10,101),(12624,1,10,111),(12625,1,10,121),(12626,1,10,151),(12627,1,10,161),(12628,1,10,171),(12629,1,10,221),(12630,1,10,222),(12631,1,10,229),(12632,1,10,241),(12633,1,10,242),(12634,1,10,243),(12635,1,10,262),(12636,1,10,281),(12637,1,10,300),(12638,1,10,331),(12639,1,10,341),(12640,1,10,342),(12641,1,10,343),(12642,1,10,344),(12643,1,10,531),(12644,1,10,700),(12645,1,10,1001),(12646,1,10,1002),(12647,1,10,1003),(12648,1,10,1004),(12649,1,10,1005),(12650,1,10,1101),(12651,1,10,1181),(12652,1,10,1182),(12653,1,10,1201),(12654,1,10,1202),(12655,1,10,1231),(12656,1,10,2401),(12657,1,10,2501),(12658,1,10,2503),(12659,1,10,2515),(12660,1,10,20001),(12662,1,10,23001),(12663,1,10,50101),(12664,1,11,11),(12665,1,11,21),(12666,1,11,31),(12667,1,11,41),(12668,1,11,61),(12669,1,11,71),(12670,1,11,72),(12671,1,11,74),(12672,1,11,75),(12673,1,11,78),(12674,1,11,79),(12675,1,11,81),(12676,1,11,91),(12677,1,11,95),(12678,1,11,97),(12679,1,11,101),(12680,1,11,111),(12681,1,11,121),(12682,1,11,151),(12683,1,11,161),(12684,1,11,171),(12685,1,11,221),(12686,1,11,222),(12687,1,11,229),(12688,1,11,241),(12689,1,11,242),(12690,1,11,243),(12691,1,11,262),(12692,1,11,281),(12693,1,11,300),(12694,1,11,331),(12695,1,11,341),(12696,1,11,342),(12697,1,11,343),(12698,1,11,344),(12699,1,11,531),(12700,1,11,700),(12701,1,11,1001),(12702,1,11,1002),(12703,1,11,1003),(12704,1,11,1004),(12705,1,11,1005),(12706,1,11,1101),(12707,1,11,1181),(12708,1,11,1182),(12709,1,11,1201),(12710,1,11,1202),(12711,1,11,1231),(12712,1,11,2401),(12713,1,11,2501),(12714,1,11,2503),(12715,1,11,2515),(12716,1,11,20001),(12718,1,11,23001),(12719,1,11,50101),(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); +INSERT INTO `llx_user_rights` VALUES (12402,1,1,11),(12380,1,1,12),(12385,1,1,13),(12389,1,1,14),(12393,1,1,15),(12398,1,1,16),(12404,1,1,19),(9726,1,1,21),(9700,1,1,22),(9706,1,1,24),(9711,1,1,25),(9716,1,1,26),(9722,1,1,27),(9728,1,1,28),(9978,1,1,31),(9968,1,1,32),(9974,1,1,34),(1910,1,1,36),(9980,1,1,38),(11573,1,1,41),(11574,1,1,42),(11575,1,1,44),(11576,1,1,45),(7184,1,1,61),(7181,1,1,62),(7183,1,1,64),(7185,1,1,67),(7186,1,1,68),(1678,1,1,71),(1673,1,1,72),(1675,1,1,74),(1679,1,1,75),(1677,1,1,76),(1681,1,1,78),(1682,1,1,79),(12322,1,1,81),(12309,1,1,82),(12312,1,1,84),(12314,1,1,86),(12317,1,1,87),(12320,1,1,88),(12323,1,1,89),(11580,1,1,91),(11581,1,1,92),(11582,1,1,93),(11583,1,1,94),(10097,1,1,95),(10099,1,1,96),(10103,1,1,97),(10104,1,1,98),(7139,1,1,101),(7134,1,1,102),(7136,1,1,104),(7137,1,1,105),(7138,1,1,106),(7140,1,1,109),(10229,1,1,111),(10201,1,1,112),(10207,1,1,113),(10213,1,1,114),(10219,1,1,115),(10225,1,1,116),(10231,1,1,117),(12518,1,1,121),(12508,1,1,122),(12514,1,1,125),(12520,1,1,126),(11577,1,1,141),(11578,1,1,142),(11579,1,1,144),(2307,1,1,151),(2304,1,1,152),(2306,1,1,153),(2308,1,1,154),(10092,1,1,161),(10093,1,1,162),(10094,1,1,163),(10095,1,1,164),(10096,1,1,165),(1585,1,1,170),(12342,1,1,171),(12331,1,1,172),(12335,1,1,173),(12339,1,1,174),(12343,1,1,178),(10000,1,1,221),(9990,1,1,222),(9996,1,1,223),(10002,1,1,229),(10007,1,1,237),(10011,1,1,238),(10015,1,1,239),(1686,1,1,241),(1685,1,1,242),(1687,1,1,243),(12604,1,1,251),(12566,1,1,252),(12569,1,1,253),(12572,1,1,254),(12575,1,1,255),(12579,1,1,256),(1617,1,1,258),(12525,1,1,262),(12544,1,1,281),(12534,1,1,282),(12540,1,1,283),(12546,1,1,286),(12288,1,1,300),(12290,1,1,301),(11591,1,1,302),(1763,1,1,331),(1762,1,1,332),(1764,1,1,333),(12582,1,1,341),(12584,1,1,342),(12586,1,1,343),(12588,1,1,344),(12600,1,1,351),(12593,1,1,352),(12597,1,1,353),(12601,1,1,354),(12605,1,1,358),(12560,1,1,531),(12553,1,1,532),(12557,1,1,534),(1625,1,1,536),(12561,1,1,538),(12358,1,1,700),(12348,1,1,701),(12354,1,1,702),(12360,1,1,703),(1755,1,1,1001),(1754,1,1,1002),(1756,1,1,1003),(1758,1,1,1004),(1759,1,1,1005),(7146,1,1,1101),(7143,1,1,1102),(7145,1,1,1104),(7147,1,1,1109),(12412,1,1,1181),(12458,1,1,1182),(12417,1,1,1183),(12420,1,1,1184),(12423,1,1,1185),(12427,1,1,1186),(12431,1,1,1187),(12437,1,1,1188),(12434,1,1,1189),(1578,1,1,1201),(1579,1,1,1202),(12454,1,1,1231),(12443,1,1,1232),(12446,1,1,1233),(12449,1,1,1234),(12452,1,1,1235),(12455,1,1,1236),(12459,1,1,1237),(1736,1,1,1251),(12409,1,1,1321),(12326,1,1,1421),(8190,1,1,1791),(8187,1,1,1792),(8191,1,1,1793),(12264,1,1,2401),(12260,1,1,2402),(12266,1,1,2403),(12280,1,1,2411),(12276,1,1,2412),(12282,1,1,2413),(12286,1,1,2414),(1618,1,1,2500),(12370,1,1,2501),(12367,1,1,2503),(12371,1,1,2515),(9610,1,1,5001),(9611,1,1,5002),(12490,1,1,20001),(12474,1,1,20003),(12480,1,1,20004),(12486,1,1,20005),(12492,1,1,20006),(12302,1,1,23001),(12295,1,1,23002),(12299,1,1,23003),(12303,1,1,23004),(7701,1,1,50101),(4984,1,1,50401),(4983,1,1,50402),(4985,1,1,50403),(4987,1,1,50411),(4988,1,1,50412),(4989,1,1,50415),(12498,1,1,55001),(12499,1,1,55002),(3564,1,1,100700),(3565,1,1,100701),(9596,1,1,101051),(9598,1,1,101052),(9600,1,1,101053),(9604,1,1,101060),(9605,1,1,101061),(7177,1,1,101201),(7178,1,1,101202),(10353,1,1,101250),(10355,1,1,101251),(8980,1,1,101261),(8981,1,1,101262),(7616,1,1,101331),(10030,1,1,101701),(10031,1,1,101702),(3582,1,1,102000),(3583,1,1,102001),(9819,1,1,400051),(9823,1,1,400052),(9827,1,1,400053),(9831,1,1,400055),(132,1,2,11),(133,1,2,12),(134,1,2,13),(135,1,2,14),(136,1,2,16),(137,1,2,19),(138,1,2,21),(139,1,2,22),(140,1,2,24),(141,1,2,25),(142,1,2,26),(143,1,2,27),(10359,1,2,31),(145,1,2,32),(10361,1,2,34),(146,1,2,36),(147,1,2,41),(148,1,2,42),(149,1,2,44),(150,1,2,61),(151,1,2,62),(152,1,2,64),(153,1,2,71),(154,1,2,72),(155,1,2,74),(156,1,2,75),(157,1,2,78),(158,1,2,79),(159,1,2,81),(160,1,2,82),(161,1,2,84),(162,1,2,86),(163,1,2,87),(164,1,2,88),(165,1,2,89),(166,1,2,91),(167,1,2,92),(168,1,2,93),(2475,1,2,95),(2476,1,2,96),(2477,1,2,97),(2478,1,2,98),(169,1,2,101),(170,1,2,102),(171,1,2,104),(172,1,2,109),(173,1,2,111),(174,1,2,112),(175,1,2,113),(176,1,2,114),(177,1,2,116),(178,1,2,117),(179,1,2,121),(180,1,2,122),(181,1,2,125),(182,1,2,141),(183,1,2,142),(184,1,2,144),(2479,1,2,151),(2480,1,2,152),(2481,1,2,153),(2482,1,2,154),(185,1,2,161),(186,1,2,162),(187,1,2,163),(188,1,2,164),(189,1,2,165),(190,1,2,170),(2471,1,2,171),(192,1,2,172),(2472,1,2,173),(193,1,2,221),(194,1,2,222),(195,1,2,229),(196,1,2,241),(197,1,2,242),(198,1,2,243),(199,1,2,251),(201,1,2,262),(202,1,2,281),(203,1,2,282),(204,1,2,283),(205,1,2,331),(15072,1,2,510),(2483,1,2,531),(207,1,2,532),(2484,1,2,534),(208,1,2,536),(2473,1,2,700),(210,1,2,701),(211,1,2,702),(2474,1,2,703),(15064,1,2,771),(15057,1,2,772),(15059,1,2,773),(15061,1,2,774),(15063,1,2,775),(15065,1,2,776),(212,1,2,1001),(213,1,2,1002),(214,1,2,1003),(215,1,2,1004),(216,1,2,1005),(217,1,2,1101),(218,1,2,1102),(219,1,2,1104),(220,1,2,1109),(15073,1,2,1121),(15074,1,2,1122),(15075,1,2,1123),(15076,1,2,1124),(15077,1,2,1125),(15078,1,2,1126),(221,1,2,1181),(222,1,2,1182),(223,1,2,1183),(224,1,2,1184),(225,1,2,1185),(226,1,2,1186),(227,1,2,1187),(228,1,2,1188),(229,1,2,1201),(230,1,2,1202),(231,1,2,1231),(232,1,2,1232),(233,1,2,1233),(234,1,2,1234),(235,1,2,1421),(236,1,2,2401),(237,1,2,2402),(238,1,2,2403),(239,1,2,2411),(240,1,2,2412),(241,1,2,2413),(242,1,2,2500),(2470,1,2,2501),(243,1,2,2515),(10363,1,2,20001),(10365,1,2,20003),(10366,1,2,20004),(10367,1,2,20005),(10368,1,2,20006),(15054,1,2,23001),(10362,1,2,50101),(15067,1,2,55001),(15066,1,2,59001),(15068,1,2,63001),(15069,1,2,63002),(15070,1,2,63003),(15071,1,2,63004),(10372,1,2,101250),(1807,1,3,11),(1808,1,3,31),(1809,1,3,36),(1810,1,3,41),(1811,1,3,61),(1812,1,3,71),(1813,1,3,72),(1814,1,3,74),(1815,1,3,75),(1816,1,3,78),(1817,1,3,79),(1818,1,3,91),(1819,1,3,95),(1820,1,3,97),(1821,1,3,111),(1822,1,3,121),(1823,1,3,122),(1824,1,3,125),(1825,1,3,161),(1826,1,3,170),(1827,1,3,171),(1828,1,3,172),(1829,1,3,221),(1830,1,3,222),(1831,1,3,229),(1832,1,3,241),(1833,1,3,242),(1834,1,3,243),(1835,1,3,251),(1836,1,3,255),(1837,1,3,256),(1838,1,3,262),(1839,1,3,281),(1840,1,3,282),(1841,1,3,283),(1842,1,3,331),(1843,1,3,531),(1844,1,3,536),(1845,1,3,700),(1846,1,3,1001),(1847,1,3,1002),(1848,1,3,1003),(1849,1,3,1004),(1850,1,3,1005),(1851,1,3,1181),(1852,1,3,1182),(1853,1,3,1201),(1854,1,3,1202),(1855,1,3,1231),(1856,1,3,2401),(1857,1,3,2402),(1858,1,3,2403),(1859,1,3,2411),(1860,1,3,2412),(1861,1,3,2413),(1862,1,3,2500),(1863,1,3,2515),(8026,1,4,11),(8027,1,4,21),(8028,1,4,31),(8029,1,4,41),(8030,1,4,61),(8031,1,4,71),(8032,1,4,72),(8033,1,4,74),(8034,1,4,75),(8035,1,4,78),(8036,1,4,79),(8037,1,4,81),(8038,1,4,91),(8039,1,4,95),(8040,1,4,97),(8041,1,4,101),(8042,1,4,111),(8043,1,4,121),(8044,1,4,151),(8045,1,4,161),(8046,1,4,171),(8047,1,4,221),(8048,1,4,222),(8049,1,4,229),(8050,1,4,241),(8051,1,4,242),(8052,1,4,243),(8146,1,4,251),(8147,1,4,253),(8053,1,4,262),(8054,1,4,281),(8055,1,4,331),(8056,1,4,341),(8057,1,4,342),(8058,1,4,343),(8059,1,4,344),(8060,1,4,531),(8061,1,4,700),(8062,1,4,1001),(8063,1,4,1002),(8064,1,4,1003),(8065,1,4,1004),(8066,1,4,1005),(8067,1,4,1101),(8068,1,4,1181),(8069,1,4,1182),(8070,1,4,1201),(8071,1,4,1202),(8072,1,4,1231),(8073,1,4,2401),(8074,1,4,2501),(8075,1,4,2503),(8076,1,4,2515),(8077,1,4,20001),(8078,1,4,50101),(8079,1,4,101201),(8080,1,4,101261),(8081,1,4,102000),(8082,1,4,400051),(8083,1,4,400052),(8084,1,4,400053),(8085,1,4,400055),(12608,1,10,11),(12609,1,10,21),(12610,1,10,31),(12611,1,10,41),(12612,1,10,61),(12613,1,10,71),(12614,1,10,72),(12615,1,10,74),(12616,1,10,75),(12617,1,10,78),(12618,1,10,79),(12619,1,10,81),(12620,1,10,91),(12621,1,10,95),(12622,1,10,97),(12623,1,10,101),(12624,1,10,111),(12625,1,10,121),(12626,1,10,151),(12627,1,10,161),(12628,1,10,171),(12629,1,10,221),(12630,1,10,222),(12631,1,10,229),(12632,1,10,241),(12633,1,10,242),(12634,1,10,243),(12635,1,10,262),(12636,1,10,281),(12637,1,10,300),(12638,1,10,331),(12639,1,10,341),(12640,1,10,342),(12641,1,10,343),(12642,1,10,344),(12643,1,10,531),(12644,1,10,700),(12645,1,10,1001),(12646,1,10,1002),(12647,1,10,1003),(12648,1,10,1004),(12649,1,10,1005),(12650,1,10,1101),(12651,1,10,1181),(12652,1,10,1182),(12653,1,10,1201),(12654,1,10,1202),(12655,1,10,1231),(12656,1,10,2401),(12657,1,10,2501),(12658,1,10,2503),(12659,1,10,2515),(12660,1,10,20001),(12662,1,10,23001),(12663,1,10,50101),(12664,1,11,11),(12665,1,11,21),(12666,1,11,31),(12667,1,11,41),(12668,1,11,61),(12669,1,11,71),(12670,1,11,72),(12671,1,11,74),(12672,1,11,75),(12673,1,11,78),(12674,1,11,79),(12675,1,11,81),(12676,1,11,91),(12677,1,11,95),(12678,1,11,97),(12679,1,11,101),(12680,1,11,111),(12681,1,11,121),(12682,1,11,151),(12683,1,11,161),(12684,1,11,171),(12685,1,11,221),(12686,1,11,222),(12687,1,11,229),(12688,1,11,241),(12689,1,11,242),(12690,1,11,243),(12691,1,11,262),(12692,1,11,281),(12693,1,11,300),(12694,1,11,331),(12695,1,11,341),(12696,1,11,342),(12697,1,11,343),(12698,1,11,344),(12699,1,11,531),(12700,1,11,700),(12701,1,11,1001),(12702,1,11,1002),(12703,1,11,1003),(12704,1,11,1004),(12705,1,11,1005),(12706,1,11,1101),(12707,1,11,1181),(12708,1,11,1182),(12709,1,11,1201),(12710,1,11,1202),(12711,1,11,1231),(12712,1,11,2401),(12713,1,11,2501),(12714,1,11,2503),(12715,1,11,2515),(12716,1,11,20001),(12718,1,11,23001),(12719,1,11,50101),(21653,1,12,11),(21647,1,12,12),(21648,1,12,13),(21649,1,12,14),(21650,1,12,15),(21652,1,12,16),(21654,1,12,19),(14146,1,12,21),(14135,1,12,22),(14137,1,12,24),(14139,1,12,25),(14142,1,12,26),(14145,1,12,27),(14148,1,12,28),(14930,1,12,31),(14926,1,12,32),(14929,1,12,34),(14932,1,12,38),(13816,1,12,41),(13813,1,12,42),(13815,1,12,44),(13817,1,12,45),(14094,1,12,61),(14091,1,12,62),(14093,1,12,64),(14095,1,12,67),(14096,1,12,68),(16203,1,12,71),(16198,1,12,72),(16200,1,12,74),(16204,1,12,75),(16202,1,12,76),(16206,1,12,78),(16207,1,12,79),(21617,1,12,81),(21611,1,12,82),(21612,1,12,84),(21613,1,12,85),(21614,1,12,86),(21615,1,12,87),(21616,1,12,88),(21618,1,12,89),(15401,1,12,91),(15397,1,12,92),(15400,1,12,93),(15403,1,12,94),(13990,1,12,95),(12734,1,12,97),(19241,1,12,101),(19237,1,12,102),(19238,1,12,104),(19239,1,12,105),(19240,1,12,106),(19242,1,12,109),(21595,1,12,111),(21586,1,12,112),(21588,1,12,113),(21590,1,12,114),(21592,1,12,115),(21594,1,12,116),(21596,1,12,117),(21741,1,12,121),(21738,1,12,122),(21740,1,12,125),(21742,1,12,126),(21743,1,12,130),(13821,1,12,141),(13820,1,12,142),(13822,1,12,144),(13912,1,12,151),(13909,1,12,152),(13911,1,12,153),(13913,1,12,154),(14063,1,12,161),(14056,1,12,162),(14058,1,12,163),(14060,1,12,164),(14062,1,12,165),(14064,1,12,167),(13350,1,12,171),(13345,1,12,172),(13347,1,12,173),(13349,1,12,174),(13351,1,12,178),(13838,1,12,221),(13834,1,12,222),(13837,1,12,223),(13840,1,12,229),(13842,1,12,237),(13844,1,12,238),(13846,1,12,239),(13516,1,12,241),(13515,1,12,242),(13517,1,12,243),(21782,1,12,251),(21763,1,12,252),(21765,1,12,253),(21766,1,12,254),(21768,1,12,255),(21770,1,12,256),(21744,1,12,262),(21750,1,12,281),(21747,1,12,282),(21749,1,12,283),(21751,1,12,286),(19877,1,12,300),(21600,1,12,301),(21360,1,12,302),(21599,1,12,304),(21601,1,12,305),(16194,1,12,331),(16193,1,12,332),(16195,1,12,333),(21771,1,12,341),(21772,1,12,342),(21773,1,12,343),(21774,1,12,344),(21780,1,12,351),(21777,1,12,352),(21779,1,12,353),(21781,1,12,354),(21783,1,12,358),(19249,1,12,430),(16384,1,12,501),(16378,1,12,502),(13865,1,12,510),(21726,1,12,511),(21721,1,12,512),(21723,1,12,514),(21725,1,12,517),(21727,1,12,519),(15291,1,12,520),(15286,1,12,522),(15288,1,12,524),(15290,1,12,525),(15292,1,12,527),(21734,1,12,531),(21730,1,12,532),(21731,1,12,533),(21733,1,12,534),(21735,1,12,538),(20076,1,12,561),(20073,1,12,562),(20075,1,12,563),(20077,1,12,564),(21787,1,12,610),(21786,1,12,611),(21788,1,12,612),(16932,1,12,650),(21582,1,12,651),(21581,1,12,652),(21583,1,12,653),(17124,1,12,660),(21701,1,12,661),(21700,1,12,662),(21702,1,12,663),(13358,1,12,700),(21623,1,12,701),(21622,1,12,702),(21624,1,12,703),(21710,1,12,750),(21709,1,12,751),(21711,1,12,752),(21643,1,12,771),(21632,1,12,772),(21634,1,12,773),(15085,1,12,774),(21636,1,12,775),(21638,1,12,776),(21640,1,12,777),(21642,1,12,778),(21644,1,12,779),(14917,1,12,1001),(14916,1,12,1002),(14918,1,12,1003),(14920,1,12,1004),(14921,1,12,1005),(19247,1,12,1101),(19245,1,12,1102),(19246,1,12,1104),(19248,1,12,1109),(19233,1,12,1121),(19226,1,12,1122),(19228,1,12,1123),(19230,1,12,1124),(19232,1,12,1125),(19234,1,12,1126),(21657,1,12,1181),(21671,1,12,1182),(21660,1,12,1183),(21661,1,12,1184),(21663,1,12,1185),(21665,1,12,1186),(21667,1,12,1187),(21670,1,12,1188),(21668,1,12,1189),(21672,1,12,1191),(13827,1,12,1201),(13828,1,12,1202),(21680,1,12,1231),(21675,1,12,1232),(21676,1,12,1233),(21678,1,12,1234),(21679,1,12,1235),(21681,1,12,1236),(16302,1,12,1237),(13829,1,12,1251),(21655,1,12,1321),(21656,1,12,1322),(21619,1,12,1421),(21571,1,12,2401),(21570,1,12,2402),(21572,1,12,2403),(21576,1,12,2411),(21575,1,12,2412),(21577,1,12,2413),(21578,1,12,2414),(21628,1,12,2501),(21627,1,12,2503),(21629,1,12,2515),(20082,1,12,3200),(20840,1,12,3201),(20341,1,12,3301),(15435,1,12,5001),(15436,1,12,5002),(21796,1,12,10001),(21791,1,12,10002),(21793,1,12,10003),(21795,1,12,10005),(21797,1,12,10008),(21693,1,12,20001),(21684,1,12,20002),(21686,1,12,20003),(21690,1,12,20004),(21692,1,12,20005),(21694,1,12,20006),(21688,1,12,20007),(21607,1,12,23001),(21604,1,12,23002),(21606,1,12,23003),(21608,1,12,23004),(19019,1,12,50101),(21759,1,12,50151),(21760,1,12,50152),(21761,1,12,50153),(21556,1,12,50401),(21564,1,12,50411),(21559,1,12,50412),(21561,1,12,50414),(21563,1,12,50415),(21565,1,12,50418),(21566,1,12,50420),(21567,1,12,50430),(21555,1,12,50440),(21704,1,12,55001),(21705,1,12,55002),(21757,1,12,56001),(21754,1,12,56002),(21756,1,12,56003),(21758,1,12,56004),(16742,1,12,56005),(20838,1,12,57001),(20837,1,12,57002),(20839,1,12,57003),(21695,1,12,59001),(21696,1,12,59002),(21697,1,12,59003),(21717,1,12,63001),(21714,1,12,63002),(21716,1,12,63003),(21718,1,12,63004),(21706,1,12,64001),(17328,1,12,101130),(17327,1,12,101131),(17329,1,12,101132),(16009,1,12,101331),(16010,1,12,101332),(16011,1,12,101333),(19208,1,12,101701),(19209,1,12,101702),(20069,1,12,941601),(20065,1,12,941602),(20066,1,12,941603),(20067,1,12,941604),(20068,1,12,941605),(20070,1,12,941606),(12776,1,13,11),(12777,1,13,21),(12778,1,13,31),(12779,1,13,41),(12780,1,13,61),(12781,1,13,71),(12782,1,13,72),(12783,1,13,74),(12784,1,13,75),(12785,1,13,78),(12786,1,13,79),(12787,1,13,81),(12788,1,13,91),(12789,1,13,95),(12790,1,13,97),(12791,1,13,101),(12792,1,13,111),(12793,1,13,121),(12794,1,13,151),(12795,1,13,161),(12796,1,13,171),(12797,1,13,221),(12798,1,13,222),(12799,1,13,229),(12800,1,13,241),(12801,1,13,242),(12802,1,13,243),(12803,1,13,262),(12804,1,13,281),(12805,1,13,300),(12806,1,13,331),(12807,1,13,341),(12808,1,13,342),(12809,1,13,343),(12810,1,13,344),(12811,1,13,531),(12812,1,13,700),(12813,1,13,1001),(12814,1,13,1002),(12815,1,13,1003),(12816,1,13,1004),(12817,1,13,1005),(12818,1,13,1101),(12819,1,13,1181),(12820,1,13,1182),(12821,1,13,1201),(12822,1,13,1202),(12823,1,13,1231),(12824,1,13,2401),(12825,1,13,2501),(12826,1,13,2503),(12827,1,13,2515),(12828,1,13,20001),(12830,1,13,23001),(12831,1,13,50101),(12832,1,14,11),(12833,1,14,21),(12834,1,14,31),(12835,1,14,41),(12836,1,14,61),(12837,1,14,71),(12838,1,14,72),(12839,1,14,74),(12840,1,14,75),(12841,1,14,78),(12842,1,14,79),(12843,1,14,81),(12844,1,14,91),(12845,1,14,95),(12846,1,14,97),(12847,1,14,101),(12848,1,14,111),(12849,1,14,121),(12850,1,14,151),(12851,1,14,161),(12852,1,14,171),(12853,1,14,221),(12854,1,14,222),(12855,1,14,229),(12856,1,14,241),(12857,1,14,242),(12858,1,14,243),(12859,1,14,262),(12860,1,14,281),(12861,1,14,300),(12862,1,14,331),(12863,1,14,341),(12864,1,14,342),(12865,1,14,343),(12866,1,14,344),(12867,1,14,531),(12868,1,14,700),(12869,1,14,1001),(12870,1,14,1002),(12871,1,14,1003),(12872,1,14,1004),(12873,1,14,1005),(12874,1,14,1101),(12875,1,14,1181),(12876,1,14,1182),(12877,1,14,1201),(12878,1,14,1202),(12879,1,14,1231),(12880,1,14,2401),(12881,1,14,2501),(12882,1,14,2503),(12883,1,14,2515),(12884,1,14,20001),(12886,1,14,23001),(12887,1,14,50101),(12944,1,16,11),(12945,1,16,21),(12946,1,16,31),(13056,1,16,41),(13057,1,16,42),(13058,1,16,44),(13059,1,16,45),(12948,1,16,61),(12949,1,16,71),(12950,1,16,72),(12951,1,16,74),(12952,1,16,75),(12953,1,16,78),(12954,1,16,79),(12955,1,16,81),(12956,1,16,91),(12957,1,16,95),(12958,1,16,97),(12959,1,16,101),(12960,1,16,111),(12961,1,16,121),(13060,1,16,141),(13061,1,16,142),(13062,1,16,144),(12962,1,16,151),(12963,1,16,161),(12964,1,16,171),(12965,1,16,221),(12966,1,16,222),(12967,1,16,229),(12968,1,16,241),(12969,1,16,242),(12970,1,16,243),(13128,1,16,251),(13064,1,16,262),(12972,1,16,281),(12973,1,16,300),(12974,1,16,331),(12975,1,16,341),(12976,1,16,342),(12977,1,16,343),(12978,1,16,344),(12979,1,16,531),(12980,1,16,700),(12981,1,16,1001),(12982,1,16,1002),(12983,1,16,1003),(12984,1,16,1004),(12985,1,16,1005),(12986,1,16,1101),(12987,1,16,1181),(12988,1,16,1182),(12989,1,16,1201),(12990,1,16,1202),(12991,1,16,1231),(12992,1,16,2401),(12993,1,16,2501),(12994,1,16,2503),(12995,1,16,2515),(12996,1,16,20001),(12998,1,16,23001),(12999,1,16,50101),(13000,1,17,11),(13001,1,17,21),(13002,1,17,31),(13065,1,17,41),(13066,1,17,42),(13067,1,17,44),(13068,1,17,45),(13004,1,17,61),(13005,1,17,71),(13006,1,17,72),(13007,1,17,74),(13008,1,17,75),(13009,1,17,78),(13010,1,17,79),(13011,1,17,81),(13012,1,17,91),(13013,1,17,95),(13014,1,17,97),(13015,1,17,101),(13016,1,17,111),(13017,1,17,121),(13069,1,17,141),(13070,1,17,142),(13071,1,17,144),(13018,1,17,151),(13019,1,17,161),(13020,1,17,171),(13021,1,17,221),(13022,1,17,222),(13023,1,17,229),(13024,1,17,241),(13025,1,17,242),(13026,1,17,243),(13028,1,17,281),(13029,1,17,300),(13030,1,17,331),(13031,1,17,341),(13032,1,17,342),(13033,1,17,343),(13034,1,17,344),(13035,1,17,531),(13036,1,17,700),(13037,1,17,1001),(13038,1,17,1002),(13039,1,17,1003),(13040,1,17,1004),(13041,1,17,1005),(13042,1,17,1101),(13043,1,17,1181),(13044,1,17,1182),(13045,1,17,1201),(13046,1,17,1202),(13047,1,17,1231),(13048,1,17,2401),(13049,1,17,2501),(13050,1,17,2503),(13051,1,17,2515),(13052,1,17,20001),(13054,1,17,23001),(13055,1,17,50101),(14504,1,18,11),(14505,1,18,21),(14506,1,18,31),(14507,1,18,41),(14508,1,18,61),(14509,1,18,71),(14510,1,18,78),(14511,1,18,81),(14512,1,18,91),(14513,1,18,95),(14514,1,18,101),(14515,1,18,111),(14516,1,18,121),(14517,1,18,151),(14518,1,18,161),(14519,1,18,221),(14520,1,18,241),(14521,1,18,262),(14522,1,18,281),(14523,1,18,300),(14524,1,18,331),(14525,1,18,332),(14526,1,18,333),(14527,1,18,341),(14528,1,18,342),(14529,1,18,343),(14530,1,18,344),(14531,1,18,531),(14532,1,18,701),(14533,1,18,771),(14534,1,18,774),(14535,1,18,1001),(14536,1,18,1004),(14537,1,18,1101),(14538,1,18,1181),(14539,1,18,1182),(14540,1,18,1201),(14541,1,18,1231),(14542,1,18,2401),(14543,1,18,2501),(14544,1,18,2503),(14545,1,18,2515),(14546,1,18,20001),(14548,1,18,50101),(14549,1,18,59001),(15242,1,19,21),(15243,1,19,31),(15244,1,19,41),(15245,1,19,61),(15246,1,19,71),(15247,1,19,78),(15248,1,19,81),(15249,1,19,101),(15250,1,19,121),(15251,1,19,151),(15252,1,19,161),(15253,1,19,221),(15254,1,19,241),(15255,1,19,262),(15256,1,19,281),(15257,1,19,300),(15258,1,19,331),(15259,1,19,332),(15260,1,19,341),(15261,1,19,342),(15262,1,19,343),(15263,1,19,344),(15264,1,19,531),(15265,1,19,701),(15266,1,19,771),(15267,1,19,774),(15268,1,19,777),(15269,1,19,1001),(15270,1,19,1004),(15271,1,19,1101),(15272,1,19,1121),(15273,1,19,1181),(15274,1,19,1182),(15275,1,19,1201),(15276,1,19,1231),(15277,1,19,2401),(15278,1,19,2501),(15279,1,19,20001),(15281,1,19,50101),(15282,1,19,59001),(15283,1,19,63001); /*!40000 ALTER TABLE `llx_user_rights` ENABLE KEYS */; UNLOCK TABLES; @@ -13606,12 +13779,12 @@ 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 utf8mb3_unicode_ci NOT NULL, + `nom` varchar(255) NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `datec` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text DEFAULT NULL, + `model_pdf` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_usergroup_name` (`nom`,`entity`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -13638,7 +13811,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_usergroup_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -13723,22 +13896,22 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, - `description` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref` varchar(128) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, `status` int(11) DEFAULT NULL, `fk_default_home` int(11) DEFAULT NULL, - `virtualhost` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `virtualhost` varchar(255) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `date_modification` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `maincolor` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `maincolorbis` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `maincolor` varchar(16) DEFAULT NULL, + `maincolorbis` varchar(16) DEFAULT NULL, `use_manifest` int(11) DEFAULT NULL, - `lang` varchar(8) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `otherlang` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lang` varchar(8) DEFAULT NULL, + `otherlang` varchar(255) DEFAULT NULL, `position` int(11) DEFAULT 0, `lastaccess` datetime DEFAULT NULL, `pageviews_month` bigint(20) unsigned DEFAULT 0, @@ -13769,7 +13942,7 @@ 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 utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`), KEY `idx_website_extrafields` (`fk_object`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; @@ -13794,29 +13967,29 @@ 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 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, + `pageurl` varchar(255) DEFAULT NULL, + `aliasalt` varchar(255) DEFAULT NULL, + `title` varchar(255) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, + `keywords` varchar(255) DEFAULT NULL, + `content` mediumtext DEFAULT NULL, `status` int(11) DEFAULT 1, `date_creation` datetime DEFAULT NULL, `date_modification` datetime DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `type_container` varchar(16) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT 'page', - `lang` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type_container` varchar(16) NOT NULL DEFAULT 'page', + `lang` varchar(6) DEFAULT NULL, `fk_page` int(11) DEFAULT NULL, - `grabbed_from` varchar(255) COLLATE 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, + `grabbed_from` varchar(255) DEFAULT NULL, + `htmlheader` mediumtext DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `image` varchar(255) DEFAULT NULL, + `author_alias` varchar(64) DEFAULT NULL, `allowed_in_frames` int(11) DEFAULT 0, - `object_type` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, - `fk_object` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `object_type` varchar(255) DEFAULT NULL, + `fk_object` varchar(255) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_website_page_url` (`fk_website`,`pageurl`), CONSTRAINT `fk_website_page_website` FOREIGN KEY (`fk_website`) REFERENCES `llx_website` (`rowid`) @@ -13842,17 +14015,17 @@ DROP TABLE IF EXISTS `llx_workstation_workstation`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `llx_workstation_workstation` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(128) COLLATE 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, + `ref` varchar(128) NOT NULL DEFAULT '(PROV)', + `label` varchar(255) DEFAULT NULL, + `type` varchar(7) DEFAULT NULL, + `note_public` text DEFAULT NULL, `entity` int(11) DEFAULT 1, - `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text DEFAULT NULL, `date_creation` datetime NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, `status` smallint(6) NOT NULL, `nb_operators_required` int(11) DEFAULT NULL, `thm_operator_estimated` double DEFAULT NULL, @@ -13935,15 +14108,15 @@ 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 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, + `url` varchar(255) DEFAULT NULL, + `event` varchar(255) DEFAULT NULL, + `module` varchar(128) DEFAULT NULL, + `action` varchar(128) DEFAULT NULL, `status` int(11) DEFAULT NULL, `date_creation` datetime NOT NULL, `fk_user` int(11) NOT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, PRIMARY KEY (`rowid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -13966,4 +14139,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2022-07-05 10:09:14 +-- Dump completed on 2022-12-11 22:30:04 diff --git a/dev/resources/iso-normes/qr-bar-codes/barcode_EAN13.txt b/dev/resources/iso-normes/qr-bar-codes/barcode_EAN13.txt index e8000035788..549c6e29a1d 100644 --- a/dev/resources/iso-normes/qr-bar-codes/barcode_EAN13.txt +++ b/dev/resources/iso-normes/qr-bar-codes/barcode_EAN13.txt @@ -10,8 +10,7 @@ Signification des chiffres. - 1 chiffre pour la somme de controle Cette regle subit de nombreuses entorses pour ameliorer l'usage des chiffres disponibles. -Voici la liste des codes pays ou systeme : - +Voici la liste des codes pays ou systeme, les préfixes qui ne sont pas explicitement mentionnés sont réservés par GS1 : EN @@ -25,105 +24,139 @@ Meaning of the numbers: This rule has been twisted many times to improve the use of the available numbers. -Here is the list of country codes or system: +Here is the list of country codes or system, prefixes not explicitly listed are reserved by GS1: -List -==== +List (https://www.gs1.org/prefixes) +=================================== -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 (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 -480 PANC Philippines -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 - 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) -743 EAN Nicaragua -744 EAN Costa Rica Panama -746 746 EAN Republique Dominicaine -750 AMECE (Mexique) -759 EAN Venezuela -76 EAN (Schweiz, Suisse, Svizzera) -770 IAC (Colombie) -773 EAN Uruguay -775 APC - EAN Peru (Perou) -777 EAN Bolivie -779 CODIGO - EAN Argentine -780 EAN Chili -784 EAN Paraguay -786 ECOP (Equateur) -789 EAN Bresil -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) -880 EAN Korea (Coree du Sud) -885 EAN Thailande -888 SANC (Singapour) -890 EAN Inde -893 EAN Vietnam -899 EAN Indonesie -90 - 91 EAN Autriche -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 +0000000 Flag for internal numbering / Codification interne en magasin +00001–01999 GS1 US (U.S.A / États-Unis & Canada) +020-029 Restricted / Restreint +030-039 GS1 US (U.S.A / États-Unis & Canada) +040-049 Flag for internal numbering / Codification interne en magasin +050-059 GS1 US (U.S.A / États-Unis & Canada) +060-139 GS1 US (U.S.A / États-Unis & Canada) +300-379 GS1 France +380 GS1 Bulgaria +383 GS1 Slovenija +385 GS1 Croatia +387 GS1 BIH (Bosnia-Herzegovina) +389 GS1 Montenegro +400-440 GS1 Germany +450-459 GS1 Japan +460-469 GS1 Russia +470 GS1 Kyrgyzstan +471 GS1 Chinese Taipei +474 GS1 Estonia +475 GS1 Latvia +476 GS1 Azerbaijan +477 GS1 Lithuania +478 GS1 Uzbekistan +479 GS1 Sri Lanka +480 GS1 Philippines +481 GS1 Belarus +482 GS1 Ukraine +483 GS1 Turkmenistan +484 GS1 Moldova +485 GS1 Armenia +486 GS1 Georgia +487 GS1 Kazakstan +488 GS1 Tajikistan +489 GS1 Hong Kong, China +490-499 GS1 Japan +500-509 GS1 UK +520-521 GS1 Association Greece +528 GS1 Lebanon +529 GS1 Cyprus +530 GS1 Albania +531 GS1 Macedonia +535 GS1 Malta +539 GS1 Ireland +540-549 GS1 Belgium & Luxembourg +560 GS1 Portugal +569 GS1 Iceland +570-579 GS1 Denmark +590 GS1 Poland +594 GS1 Romania +599 GS1 Hungary +600-601 GS1 South Africa +603 GS1 Ghana +604 GS1 Senegal +607 GS1 Oman +608 GS1 Bahrain +609 GS1 Mauritius +611 GS1 Morocco +613 GS1 Algeria +615 GS1 Nigeria +616 GS1 Kenya +617 GS1 Cameroon +618 GS1 Côte d'Ivoire +619 GS1 Tunisia +620 GS1 Tanzania +621 GS1 Syria +622 GS1 Egypt +624 GS1 Libya +625 GS1 Jordan +626 GS1 Iran +627 GS1 Kuwait +628 GS1 Saudi Arabia +629 GS1 Emirates +630 GS1 Qatar +631 GS1 Namibia +640-649 GS1 Finland +690-699 GS1 China +700-709 GS1 Norway +729 GS1 Israel +730-739 GS1 Sweden +740 GS1 Guatemala +741 GS1 El Salvador +742 GS1 Honduras +743 GS1 Nicaragua +744 GS1 Costa Rica +745 GS1 Panama +746 GS1 Republica Dominicana +750 GS1 Mexico +754-755 GS1 Canada +759 GS1 Venezuela +760-769 GS1 Schweiz, Suisse, Svizzera +770-771 GS1 Colombia +773 GS1 Uruguay +775 GS1 Peru +777 GS1 Bolivia +778-779 GS1 Argentina +780 GS1 Chile +784 GS1 Paraguay +786 GS1 Ecuador +789-790 GS1 Brasil +800-839 GS1 Italy +840-849 GS1 Spain +850 GS1 Cuba +858 GS1 Slovakia +859 GS1 Czech +860 GS1 Serbia +865 GS1 Mongolia +867 GS1 North Korea +868-869 GS1 Türkiye +870-879 GS1 Netherlands +880 GS1 South Korea +883 GS1 Myanmar +884 GS1 Cambodia +885 GS1 Thailand +888 GS1 Singapore +890 GS1 India +893 GS1 Vietnam +896 GS1 Pakistan +899 GS1 Indonesia +900-919 GS1 Austria +930-939 GS1 Australia +940-949 GS1 New Zealand +950 GS1 Global Office +955 GS1 Malaysia +958 GS1 Macao, China +960-969 Global Office - GTIN-8 +977 Serial publications / Publications en série (ISSN) +978-979 Bookland / Livres (ISBN) +980 Refund receipts / Remboursements +981-983 GS1 Coupons +99 GS1 Coupons diff --git a/dev/setup/apache/virtualhost b/dev/setup/apache/virtualhost index 7508bbca171..e8c5f2a8f4b 100644 --- a/dev/setup/apache/virtualhost +++ b/dev/setup/apache/virtualhost @@ -1,14 +1,15 @@ #php_admin_value sendmail_path "/usr/sbin/sendmail -t -i" #php_admin_value mail.force_extra_parameters "-f postmaster@mydomain.com" - php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f postmaster@mydomain.com" + #php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f postmaster@mydomain.com" + php_admin_value open_basedir /tmp/:/home/.../htdocs:/home/.../dolibarr_documents: # Add this to use a custom apparmor profile when using apache php handler - - AADefaultHatName sellyoursaas-instances - + + AADefaultHatName sellyoursaas-instances + ServerName myvirtualalias @@ -35,8 +36,8 @@ #AuthUserFile /etc/apache2/.htpasswd #require valid-user - - # Leaving /public and /api, /dav, .well_known but also wrappers for document and viewimage accessible to everyone + + # Leaving /public and /api, /dav, .well_known but also wrappers for document, viewimage and public json/img accessible to everyone AuthType None Require all granted diff --git a/dev/setup/fail2ban/filter.d/web-accesslog-limit403.conf b/dev/setup/fail2ban/filter.d/web-accesslog-limit403.conf new file mode 100644 index 00000000000..1356df80115 --- /dev/null +++ b/dev/setup/fail2ban/filter.d/web-accesslog-limit403.conf @@ -0,0 +1,19 @@ +# Fail2Ban configuration file +# +# Regexp to detect forbidden access on pages (public or not) so we can add mitigation on IP making too much +# access to your a Dolibarr instance. + + +[Definition] + +# To test, you can inject this example into log +# echo `myvirtualhost.com:443 1.2.3.4 - - [15/Dec/2022:09:57:47 +0000] "GET /public/abc" 403 123 "-" "Mozilla" >> /var/log/apache2/access.log +# +# then +# fail2ban-client status web-accesslog-limit403 +# +# To test rule file on a existing log file +# fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/web-accesslog-limit403.conf + +failregex = - - .*HTTP/[0-9]+(.[0-9]+)?" 403 +ignoreregex = diff --git a/dev/setup/qodana/README.md b/dev/setup/qodana/README.md new file mode 100644 index 00000000000..37b465cabc9 --- /dev/null +++ b/dev/setup/qodana/README.md @@ -0,0 +1,14 @@ +QODANA TUTO +----------- +This README explains how to use qodana to generate static analytics reports on the code + +Install docker + + +Install qodana + + +To run inspection on CLI + cd ~/git/dirtoscan + sudo qodana scan --show-report + diff --git a/doc/images/dolibarr_screenshot12_1280x800.jpg b/doc/images/dolibarr_screenshot12_1280x800.jpg new file mode 100644 index 00000000000..bdc3a137228 Binary files /dev/null and b/doc/images/dolibarr_screenshot12_1280x800.jpg differ diff --git a/doc/images/dolibarr_screenshot1_1280x800.jpg b/doc/images/dolibarr_screenshot1_1280x800.jpg index ac238d39c1f..6d2c4312394 100644 Binary files a/doc/images/dolibarr_screenshot1_1280x800.jpg and b/doc/images/dolibarr_screenshot1_1280x800.jpg differ diff --git a/doc/images/dolibarr_screenshot2_1280x800.jpg b/doc/images/dolibarr_screenshot2_1280x800.jpg index 2956a55d36a..7f5319942c2 100644 Binary files a/doc/images/dolibarr_screenshot2_1280x800.jpg and b/doc/images/dolibarr_screenshot2_1280x800.jpg differ diff --git a/doc/images/dolibarr_screenshot4_1280x800.jpg b/doc/images/dolibarr_screenshot4_1280x800.jpg new file mode 100644 index 00000000000..d6705363129 Binary files /dev/null and b/doc/images/dolibarr_screenshot4_1280x800.jpg differ diff --git a/doc/images/dolibarr_screenshot5_1280x800.jpg b/doc/images/dolibarr_screenshot5_1280x800.jpg index 6eea0a2f029..f9ddd1d1f77 100644 Binary files a/doc/images/dolibarr_screenshot5_1280x800.jpg and b/doc/images/dolibarr_screenshot5_1280x800.jpg differ diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php index 2a23ee5eb85..91b7673ab81 100644 --- a/htdocs/accountancy/admin/account.php +++ b/htdocs/accountancy/admin/account.php @@ -47,6 +47,7 @@ $search_label = GETPOST('search_label', 'alpha'); $search_labelshort = GETPOST('search_labelshort', 'alpha'); $search_accountparent = GETPOST('search_accountparent', 'alpha'); $search_pcgtype = GETPOST('search_pcgtype', 'alpha'); +$search_import_key = GETPOST('search_import_key', 'alpha'); $toselect = GETPOST('toselect', 'array'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $confirm = GETPOST('confirm', 'alpha'); @@ -83,16 +84,19 @@ if (!$sortorder) { } $arrayfields = array( - 'aa.account_number'=>array('label'=>$langs->trans("AccountNumber"), 'checked'=>1), - 'aa.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1), - 'aa.labelshort'=>array('label'=>$langs->trans("LabelToShow"), 'checked'=>1), - 'aa.account_parent'=>array('label'=>$langs->trans("Accountparent"), 'checked'=>1), - 'aa.pcg_type'=>array('label'=>$langs->trans("Pcgtype"), 'checked'=>1, 'help'=>'PcgtypeDesc'), - 'aa.reconcilable'=>array('label'=>$langs->trans("Reconcilable"), 'checked'=>1), - 'aa.active'=>array('label'=>$langs->trans("Activated"), 'checked'=>1) + 'aa.account_number'=>array('label'=>"AccountNumber", 'checked'=>1), + 'aa.label'=>array('label'=>"Label", 'checked'=>1), + 'aa.labelshort'=>array('label'=>"LabelToShow", 'checked'=>1), + 'aa.account_parent'=>array('label'=>"Accountparent", 'checked'=>1), + 'aa.pcg_type'=>array('label'=>"Pcgtype", 'checked'=>1, 'help'=>'PcgtypeDesc'), + 'categories'=>array('label'=>"AccountingCategories", 'checked'=>-1, 'help'=>'AccountingCategoriesDesc'), + 'aa.reconcilable'=>array('label'=>"Reconcilable", 'checked'=>1), + 'aa.active'=>array('label'=>"Activated", 'checked'=>1), + 'aa.import_key'=>array('label'=>"ImportId", 'checked'=>-1) ); if ($conf->global->MAIN_FEATURES_LEVEL < 2) { + unset($arrayfields['categories']); unset($arrayfields['aa.reconcilable']); } @@ -226,15 +230,12 @@ if ($action == 'delete') { $pcgver = $conf->global->CHARTOFACCOUNTS; -$sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.account_number, aa.account_parent , aa.label, aa.labelshort, aa.reconcilable, aa.active, "; +$sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.account_number, aa.account_parent, aa.label, aa.labelshort, aa.fk_accounting_category,"; +$sql .= " aa.reconcilable, aa.active, aa.import_key,"; $sql .= " a2.rowid as rowid2, a2.label as label2, a2.account_number as account_number2"; $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa"; -$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version AND aa.entity = ".$conf->entity; -if ($db->type == 'pgsql') { - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".$conf->entity; -} else { - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".$conf->entity; -} +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version AND aa.entity = ".((int) $conf->entity); +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".((int) $conf->entity); $sql .= " WHERE asy.rowid = ".((int) $pcgver); //print $sql; if (strlen(trim($search_account))) { @@ -337,6 +338,9 @@ if ($resql) { if ($search_pcgtype) { $param .= '&search_pcgtype='.urlencode($search_pcgtype); } + if ($optioncss != '') { + $param .= '&search_import_key='.urlencode($search_import_key); + } if ($optioncss != '') { $param .= '&optioncss='.urlencode($optioncss); } @@ -399,7 +403,7 @@ if ($resql) { } print ""; print ajax_combobox("chartofaccounts"); - print ''; + print ''; print '
'; @@ -436,11 +440,20 @@ if ($resql) { } if (!empty($arrayfields['aa.account_parent']['checked'])) { print ''; - print $formaccounting->select_account($search_accountparent, 'search_accountparent', 2); + print $formaccounting->select_account($search_accountparent, 'search_accountparent', 2, array(), 0, 0, 'maxwidth150'); print ''; } + // Predefined group if (!empty($arrayfields['aa.pcg_type']['checked'])) { - print ''; + print ''; + } + // Custom groups + if (!empty($arrayfields['categories']['checked'])) { + print ''; + } + // Import key + if (!empty($arrayfields['aa.import_key']['checked'])) { + print ''; } if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (!empty($arrayfields['aa.reconcilable']['checked'])) { @@ -471,6 +484,12 @@ if ($resql) { if (!empty($arrayfields['aa.pcg_type']['checked'])) { print_liste_field_titre($arrayfields['aa.pcg_type']['label'], $_SERVER["PHP_SELF"], 'aa.pcg_type,aa.account_number', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.pcg_type']['help'], 1); } + if (!empty($arrayfields['categories']['checked'])) { + print_liste_field_titre($arrayfields['categories']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, '', $arrayfields['categories']['help'], 1); + } + if (!empty($arrayfields['aa.import_key']['checked'])) { + print_liste_field_titre($arrayfields['aa.import_key']['label'], $_SERVER["PHP_SELF"], 'aa.import_key', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.import_key']['help'], 1); + } if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (!empty($arrayfields['aa.reconcilable']['checked'])) { print_liste_field_titre($arrayfields['aa.reconcilable']['label'], $_SERVER["PHP_SELF"], 'aa.reconcilable', '', $param, '', $sortfield, $sortorder); @@ -505,7 +524,7 @@ if ($resql) { // Account label if (!empty($arrayfields['aa.label']['checked'])) { print ""; - print $obj->label; + print dol_escape_htmltag($obj->label); print "\n"; if (!$i) { $totalarray['nbfield']++; @@ -515,7 +534,7 @@ if ($resql) { // Account label to show (label short) if (!empty($arrayfields['aa.labelshort']['checked'])) { print ""; - print $obj->labelshort; + print dol_escape_htmltag($obj->labelshort); print "\n"; if (!$i) { $totalarray['nbfield']++; @@ -549,10 +568,30 @@ if ($resql) { } } - // Chart of accounts type + // Predefined group (deprecated) if (!empty($arrayfields['aa.pcg_type']['checked'])) { print ""; - print $obj->pcg_type; + print dol_escape_htmltag($obj->pcg_type); + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Custom accounts + if (!empty($arrayfields['categories']['checked'])) { + print ""; + // TODO Get all custom groups labels the account is in + print dol_escape_htmltag($obj->fk_accounting_category); + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Import id + if (!empty($arrayfields['aa.import_key']['checked'])) { + print ""; + print dol_escape_htmltag($obj->import_key); print "\n"; if (!$i) { $totalarray['nbfield']++; diff --git a/htdocs/accountancy/admin/accountmodel.php b/htdocs/accountancy/admin/accountmodel.php index 02921a78cb2..c5b8fd20045 100644 --- a/htdocs/accountancy/admin/accountmodel.php +++ b/htdocs/accountancy/admin/accountmodel.php @@ -640,7 +640,8 @@ if ($id) { foreach ($fieldlist as $field => $value) { $showfield = 1; $class = "left"; - $valuetoshow = $obj->{$fieldlist[$field]}; + $tmpvar = $fieldlist[$field]; + $valuetoshow = $obj->$tmpvar; if ($value == 'type_template') { $valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow; } diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php index 9eabd378e11..43d1852c720 100644 --- a/htdocs/accountancy/admin/card.php +++ b/htdocs/accountancy/admin/card.php @@ -282,7 +282,7 @@ if ($action == 'create') { print $form->textwithpicto($langs->trans("AccountingCategory"), $langs->transnoentitiesnoconv("AccountingAccountGroupsDesc")); print ''; print ''; - $formaccounting->select_accounting_category($object->account_category, 'account_category', 1, 0, 1); + print $formaccounting->select_accounting_category($object->account_category, 'account_category', 1, 0, 1); print ''; print ''; @@ -329,7 +329,8 @@ if ($action == 'create') { // Account parent print ''.$langs->trans("Accountparent").''; print ''; - print $formaccounting->select_account($object->account_parent, 'account_parent', 1); + // Note: We accept disabled account as parent account so we can build a hierarchy and use only childs + print $formaccounting->select_account($object->account_parent, 'account_parent', 1, array(), 0, 0, 'minwidth100 maxwidth300 maxwidthonsmartphone', 1, ''); print ''; // Chart of accounts type @@ -358,7 +359,7 @@ if ($action == 'create') { print $form->textwithpicto($langs->trans("AccountingCategory"), $langs->transnoentitiesnoconv("AccountingAccountGroupsDesc")); print ''; print ''; - $formaccounting->select_accounting_category($object->account_category, 'account_category', 1); + print $formaccounting->select_accounting_category($object->account_category, 'account_category', 1); print ''; print ''; diff --git a/htdocs/accountancy/admin/categories.php b/htdocs/accountancy/admin/categories.php index 7b86902e009..7b660419daf 100644 --- a/htdocs/accountancy/admin/categories.php +++ b/htdocs/accountancy/admin/categories.php @@ -1,6 +1,7 @@ * Copyright (C) 2017-2022 Alexandre Spangaro + * Copyright (C) 2022 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; $error = 0; // Load translation files required by the page -$langs->loadLangs(array("bills", "accountancy")); +$langs->loadLangs(array("bills", "accountancy", "compta")); $id = GETPOST('id', 'int'); $cancel = GETPOST('cancel', 'alpha'); @@ -44,6 +45,26 @@ if ($cat_id == 0) { $cat_id = null; } +// Load variable for pagination +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { + // If $page is not defined, or '' or -1 or if we click on clear filters + $page = 0; +} +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; + +if (empty($sortfield)) { + $sortfield = 'account_number'; +} +if (empty($sortorder)) { + $sortorder = 'ASC'; +} + // Security check if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); @@ -110,18 +131,22 @@ print ''; // Select the category print ''; print ''; +print '
'.$langs->trans("AccountingCategory").''; -$formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0, 1); -print ''; +print $formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0, 0); +print ''; print '
'; + +print dol_get_fiche_end(); + + // Select the accounts if (!empty($cat_id)) { $return = $accountingcategory->getAccountsWithNoCategory($cat_id); if ($return < 0) { setEventMessages(null, $accountingcategory->errors, 'errors'); } - print ''.$langs->trans("AddAccountFromBookKeepingWithNoCategories").''; - print ''; + print '
'; $arraykeyvalue = array(); foreach ($accountingcategory->lines_cptbk as $key => $val) { @@ -130,33 +155,25 @@ if (!empty($cat_id)) { } if (is_array($accountingcategory->lines_cptbk) && count($accountingcategory->lines_cptbk) > 0) { - print $form->multiselectarray('cpt_bk', $arraykeyvalue, GETPOST('cpt_bk', 'array'), null, null, null, null, "90%"); - print '
'; - /*print '
'; - print ajax_combobox('cpt_bk'); - */ - print ' '; + print img_picto($langs->trans("AccountingAccount"), 'accounting_account', 'class="pictofixedwith"'); + print $form->multiselectarray('cpt_bk', $arraykeyvalue, GETPOST('cpt_bk', 'array'), null, null, '', 0, "80%", '', '', $langs->transnoentitiesnoconv("AddAccountFromBookKeepingWithNoCategories")); + print ' '; } - print ''; } -print ''; - -print dol_get_fiche_end(); - print ''; -if ($action == 'display' || $action == 'delete') { - print "\n"; +if ((empty($action) || $action == 'display' || $action == 'delete') && $cat_id > 0) { + $param = 'account_category='.((int) $cat_id); + + print '
'; + print '
'."\n"; print ''; - print '"; - print '"; - print "\n"; + print getTitleFieldOfList('AccountAccounting', 0, $_SERVER['PHP_SELF'], 'account_number', '', $param, '', $sortfield, $sortorder, '')."\n"; + print getTitleFieldOfList('Label', 0, $_SERVER['PHP_SELF'], 'label', '', $param, '', $sortfield, $sortorder, '')."\n"; + print getTitleFieldOfList('', 0, $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, '')."\n"; + print ''."\n"; if (!empty($cat_id)) { $return = $accountingcategory->display($cat_id); // This load ->lines_display @@ -165,6 +182,8 @@ if ($action == 'display' || $action == 'delete') { } if (is_array($accountingcategory->lines_display) && count($accountingcategory->lines_display) > 0) { + $accountingcategory->lines_display = dol_sort_array($accountingcategory->lines_display, $sortfield, $sortorder, -1, 0, 1); + foreach ($accountingcategory->lines_display as $cpt) { print ''; print ''; @@ -177,6 +196,8 @@ if ($action == 'display' || $action == 'delete') { print ""; print "\n"; } + } else { + print ''; } } diff --git a/htdocs/accountancy/admin/categories_list.php b/htdocs/accountancy/admin/categories_list.php index 3a6664b8b44..0fd7b9012eb 100644 --- a/htdocs/accountancy/admin/categories_list.php +++ b/htdocs/accountancy/admin/categories_list.php @@ -190,7 +190,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) { setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors'); } } - if (!is_numeric(GETPOST('position', 'alpha'))) { + if (GETPOST('position') && !is_numeric(GETPOST('position', 'alpha'))) { $langs->loadLangs(array("errors")); $ok = 0; setEventMessages($langs->transnoentities('ErrorFieldMustBeANumeric', $langs->transnoentities("Position")), null, 'errors'); @@ -444,15 +444,37 @@ if ($search_country_id > 0) { if ($sortfield == 'country') { $sortfield = 'country_code'; } +if (empty($sortfield)) { + $sortfield = 'position'; +} + $sql .= $db->order($sortfield, $sortorder); $sql .= $db->plimit($listlimit + 1, $offset); //print $sql; $fieldlist = explode(',', $tabfield[$id]); +$param = '&id='.$id; +if ($search_country_id > 0) { + $param .= '&search_country_id='.urlencode($search_country_id); +} +$paramwithsearch = $param; +if ($sortorder) { + $paramwithsearch .= '&sortorder='.urlencode($sortorder); +} +if ($sortfield) { + $paramwithsearch .= '&sortfield='.urlencode($sortfield); +} +if (GETPOST('from', 'alpha')) { + $paramwithsearch .= '&from='.urlencode(GETPOST('from', 'alpha')); +} + print ''; print ''; print ''; +print ''; +print ''; + print '
'; print '
'.$langs->trans("AccountAccounting")."'.$langs->trans("Label")."
'.length_accountg($cpt->account_number).'
'.$langs->trans("NoRecordFound").'
'; @@ -571,20 +593,6 @@ if ($resql) { $num = $db->num_rows($resql); $i = 0; - $param = '&id='.$id; - if ($search_country_id > 0) { - $param .= '&search_country_id='.urlencode($search_country_id); - } - $paramwithsearch = $param; - if ($sortorder) { - $paramwithsearch .= '&sortorder='.$sortorder; - } - if ($sortfield) { - $paramwithsearch .= '&sortfield='.$sortfield; - } - if (GETPOST('from', 'alpha')) { - $paramwithsearch .= '&from='.GETPOST('from', 'alpha'); - } // There is several pages if ($num > $listlimit) { print ''; $filterfound++; } else { @@ -725,11 +733,11 @@ if ($resql) { print ''; print ''; print ''; print ''; } else { @@ -743,7 +751,8 @@ if ($resql) { foreach ($fieldlist as $field => $value) { $showfield = 1; $class = "left"; - $valuetoshow = $obj->{$fieldlist[$field]}; + $tmpvar = $fieldlist[$field]; + $valuetoshow = $obj->$tmpvar; if ($value == 'category_type') { $valuetoshow = yn($valuetoshow); } elseif ($valuetoshow == 'all') { @@ -822,7 +831,7 @@ if ($resql) { } // Link to setup the group - print ''; } elseif ($fieldlist[$field] == 'country_id') { diff --git a/htdocs/accountancy/admin/defaultaccounts.php b/htdocs/accountancy/admin/defaultaccounts.php index 9a3b63adcc3..2bd1037db39 100644 --- a/htdocs/accountancy/admin/defaultaccounts.php +++ b/htdocs/accountancy/admin/defaultaccounts.php @@ -84,6 +84,9 @@ $list_account[] = 'ACCOUNTING_VAT_PAY_ACCOUNT'; if (isModEnabled('banque')) { $list_account[] = 'ACCOUNTING_ACCOUNT_TRANSFER_CASH'; } +if (!empty($conf->global->INVOICE_USE_RETAINED_WARRANTY)) { + $list_account[] = 'ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY'; +} if (isModEnabled('don')) { $list_account[] = 'DONATION_ACCOUNTINGACCOUNT'; } diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index 385c105451e..3a7be3e073e 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -261,6 +261,20 @@ if ($action == 'setenablelettering') { } } +if ($action == 'setenableautolettering') { + $setenableautolettering = GETPOST('value', 'int'); + $res = dolibarr_set_const($db, "ACCOUNTING_ENABLE_AUTOLETTERING", $setenableautolettering, 'yesno', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + + if (!$error) { + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("Error"), null, 'mesgs'); + } +} + /* * View @@ -430,7 +444,7 @@ foreach ($list_binding as $key) { print $form->selectDate((!empty($conf->global->$key) ? $db->idate($conf->global->$key) : -1), $key, 0, 0, 1); } elseif ($key == 'ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER') { $array = array(0=>$langs->trans("PreviousMonth"), 1=>$langs->trans("CurrentMonth"), 2=>$langs->trans("Fiscalyear")); - print $form->selectarray($key, $array, (isset($conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER) ? $conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER : 0)); + print $form->selectarray($key, $array, (isset($conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER) ? $conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER : 0), 0, 0, 0, '', 0, 0, 0, '', 'onrightofpage'); } else { print ''; } @@ -479,6 +493,7 @@ if (!empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) { print ''; print '
'; @@ -605,7 +613,7 @@ if ($resql) { if ($showfield) { if ($value == 'country') { print ''; - print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth200 maxwidthonsmartphone'); + print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth150 maxwidthonsmartphone'); print ''; + print '
'; print ''; print ''; - print ''; - print '
'; - print ''; + print ''; + print ''; print '
'; + print ''; if (empty($obj->formula)) { print ''; print $langs->trans("ListOfAccounts"); @@ -887,10 +896,10 @@ function fieldListAccountingCategories($fieldlist, $obj = '', $tabname = '', $co if ($context == 'add') { $fieldname = 'country_id'; $preselectcountrycode = GETPOSTISSET('country_id') ? GETPOST('country_id', 'int') : $mysoc->country_code; - print $form->select_country($preselectcountrycode, $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone'); + print $form->select_country($preselectcountrycode, $fieldname, '', 28, 'maxwidth150 maxwidthonsmartphone'); } else { $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 $form->select_country($preselectcountrycode, $fieldname, '', 28, 'maxwidth150 maxwidthonsmartphone'); } print '
'; +print '
'; // Lettering params print ''; @@ -499,6 +514,21 @@ if (!empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) { } print ''; +if (!empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) { + print ''; + print ''; + if (!empty($conf->global->ACCOUNTING_ENABLE_AUTOLETTERING)) { + print ''; + } else { + print ''; + } + print ''; +} + print '
' . $langs->trans("ACCOUNTING_ENABLE_AUTOLETTERING") . ''; + print img_picto($langs->trans("Activated"), 'switch_on'); + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print '
'; print '
'; diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index e1a07fef5fc..ba2d867ebd6 100644 --- a/htdocs/accountancy/admin/journals_list.php +++ b/htdocs/accountancy/admin/journals_list.php @@ -587,7 +587,8 @@ if ($id) { foreach ($fieldlist as $field => $value) { $showfield = 1; $class = "left"; - $valuetoshow = $obj->{$fieldlist[$field]}; + $tmpvar = $fieldlist[$field]; + $valuetoshow = $obj->$tmpvar; if ($valuetoshow == 'all') { $valuetoshow = $langs->trans('All'); } elseif ($fieldlist[$field] == 'nature' && $tabname[$id] == MAIN_DB_PREFIX.'accounting_journal') { diff --git a/htdocs/accountancy/admin/subaccount.php b/htdocs/accountancy/admin/subaccount.php index c9f78596bcd..40055a4b75f 100644 --- a/htdocs/accountancy/admin/subaccount.php +++ b/htdocs/accountancy/admin/subaccount.php @@ -19,17 +19,18 @@ /** * \file htdocs/accountancy/admin/subaccount.php - * \ingroup Accountancy (Double entries) - * \brief List of accounting sub-account (auxiliary accounts) + * \ingroup Accountancy (Double entries) + * \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'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; + // Load translation files required by the page -$langs->loadLangs(array("compta", "bills", "admin", "accountancy", "salaries", "hrm", "errors")); +$langs->loadLangs(array("accountancy", "admin", "bills", "compta", "errors", "hrm", "salaries")); $mesg = ''; $action = GETPOST('action', 'aZ09'); @@ -81,6 +82,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL < 2) { unset($arrayfields['reconcilable']); } + /* * Actions */ @@ -120,11 +122,13 @@ if (empty($reshook)) { $form = new Form($db); -$help_url = ''; -$title = $langs->trans('ChartOfIndividualAccountsOfSubsidiaryLedger'); +// Page Header +$help_url = 'EN:Module_Double_Entry_Accounting#Setup'; +$title = $langs->trans('ChartOfIndividualAccountsOfSubsidiaryLedger'); llxHeader('', $title, $help_url); + // Customer $sql = "SELECT sa.rowid, sa.nom as label, sa.code_compta as subaccount, '1' as type, sa.entity"; $sql .= " FROM ".MAIN_DB_PREFIX."societe sa"; @@ -219,7 +223,7 @@ if (!empty($search_type) && $search_type >= 0) { $sql .= " HAVING type LIKE '".$db->escape($search_type)."'"; } -// User +// User - Employee $sql .= " UNION "; $sql .= " SELECT u.rowid, u.lastname as label, u.accountancy_code as subaccount, '3' as type, u.entity FROM ".MAIN_DB_PREFIX."user u"; $sql .= " WHERE u.entity IN (".getEntity('user').")"; @@ -400,6 +404,7 @@ if ($resql) { if (!empty($arrayfields['type']['checked'])) { print ''; $s = ''; + // Customer if ($obj->type == 1) { $s .= ''.$langs->trans("Customer").''; @@ -407,8 +412,8 @@ if ($resql) { // Supplier $s .= ''.$langs->trans("Supplier").''; } elseif ($obj->type == 3) { - // User - $s .= ''.$langs->trans("Employee").''; + // User - Employee + $s .= ''.$langs->trans("Employee").''; } print $s; print ''; @@ -440,6 +445,7 @@ if ($resql) { // Action print ''; $e = ''; + // Customer if ($obj->type == 1) { $e .= ''.img_edit().''; @@ -447,7 +453,7 @@ if ($resql) { // Supplier $e .= ''.img_edit().''; } elseif ($obj->type == 3) { - // User + // User - Employee $e .= ''.img_edit().''; } print $e; diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php index 01d89f1168d..fd8cd8ad688 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-2022 Alexandre Spangaro + * Copyright (C) 2016-2023 Alexandre Spangaro * Copyright (C) 2018 Frédéric France * * This program is free software; you can redistribute it and/or modify @@ -42,22 +42,13 @@ $langs->loadLangs(array("accountancy", "compta")); $action = GETPOST('action', 'aZ09'); $optioncss = GETPOST('optioncss', 'alpha'); -$contextpage = GETPOST('contextpage', 'aZ09'); - -// 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 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { - $page = 0; -} // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action -$offset = $limit * $page; -$pageprev = $page - 1; -$pagenext = $page + 1; -//if (! $sortfield) $sortfield="p.date_fin"; -//if (! $sortorder) $sortorder="DESC"; - +$type = GETPOST('type', 'alpha'); +if ($type == 'sub') { + $context_default = 'balancesubaccountlist'; +} else { + $context_default = 'balancelist'; +} +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : $context_default; $show_subgroup = GETPOST('show_subgroup', 'alpha'); $search_date_start = dol_mktime(0, 0, 0, GETPOST('date_startmonth', 'int'), GETPOST('date_startday', 'int'), GETPOST('date_startyear', 'int')); $search_date_end = dol_mktime(23, 59, 59, GETPOST('date_endmonth', 'int'), GETPOST('date_endday', 'int'), GETPOST('date_endyear', 'int')); @@ -70,10 +61,29 @@ $search_accountancy_code_end = GETPOST('search_accountancy_code_end', 'alpha'); if ($search_accountancy_code_end == - 1) { $search_accountancy_code_end = ''; } +$search_not_reconciled = GETPOST('search_not_reconciled', '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 == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { + $page = 0; +} // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if ($sortorder == "") { + $sortorder = "ASC"; +} +if ($sortfield == "") { + $sortfield = "t.numero_compte"; +} // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $object = new BookKeeping($db); -$hookmanager->initHooks(array('balancelist')); // Note that conf->hooks_modules contains array +$hookmanager->initHooks(array($contextpage)); // Note that conf->hooks_modules contains array $formaccounting = new FormAccounting($db); $formother = new FormOther($db); @@ -84,6 +94,7 @@ if (empty($search_date_start) && !GETPOSTISSET('formfilteraction')) { $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); @@ -104,45 +115,6 @@ if (empty($search_date_start) && !GETPOSTISSET('formfilteraction')) { $search_date_end = dol_get_last_day($year_end, $month_end); } } -if ($sortorder == "") { - $sortorder = "ASC"; -} -if ($sortfield == "") { - $sortfield = "t.numero_compte"; -} - - -$param = ''; -if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { - $param .= '&contextpage='.urlencode($contextpage); -} -if ($limit > 0 && $limit != $conf->liste_limit) { - $param .= '&limit='.urlencode($limit); -} - -$filter = array(); -if (!empty($search_date_start)) { - $filter['t.doc_date>='] = $search_date_start; - $param .= '&date_startmonth='.GETPOST('date_startmonth', 'int').'&date_startday='.GETPOST('date_startday', 'int').'&date_startyear='.GETPOST('date_startyear', 'int'); -} -if (!empty($search_date_end)) { - $filter['t.doc_date<='] = $search_date_end; - $param .= '&date_endmonth='.GETPOST('date_endmonth', 'int').'&date_endday='.GETPOST('date_endday', 'int').'&date_endyear='.GETPOST('date_endyear', '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 (!empty($search_accountancy_code_end)) { - $filter['t.numero_compte<='] = $search_accountancy_code_end; - $param .= '&search_accountancy_code_end='.urlencode($search_accountancy_code_end); -} -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 (!isModEnabled('accounting')) { accessforbidden(); @@ -154,14 +126,13 @@ if (!$user->hasRight('accounting', 'mouvements', 'lire')) { accessforbidden(); } - - /* * Action */ -$parameters = array(); -$arrayfields = array(); +$param = ''; + +$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'); @@ -172,16 +143,67 @@ if (empty($reshook)) { $show_subgroup = ''; $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_accountancy_code_start = ''; $search_accountancy_code_end = ''; + $search_not_reconciled = ''; $search_ledger_code = array(); $filter = array(); } -} -/* - * View - */ + // Must be after the remove filter action, before the export. + $filter = array(); + + if (!empty($search_date_start)) { + $filter['t.doc_date>='] = $search_date_start; + $param .= '&date_startmonth=' . GETPOST('date_startmonth', 'int') . '&date_startday=' . GETPOST('date_startday', 'int') . '&date_startyear=' . GETPOST('date_startyear', 'int'); + } + if (!empty($search_date_end)) { + $filter['t.doc_date<='] = $search_date_end; + $param .= '&date_endmonth=' . GETPOST('date_endmonth', 'int') . '&date_endday=' . GETPOST('date_endday', 'int') . '&date_endyear=' . GETPOST('date_endyear', 'int'); + } + 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)) { + 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)) { + 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_ledger_code)) { + $filter['t.code_journal'] = $search_ledger_code; + foreach ($search_ledger_code as $code) { + $param .= '&search_ledger_code[]=' . urlencode($code); + } + } + if (!empty($search_not_reconciled)) { + $filter['t.reconciled_option'] = $search_not_reconciled; + $param .= '&search_not_reconciled='.urlencode($search_not_reconciled); + } + + // param with type of list + $url_param = substr($param, 1); // remove first "&" + if (!empty($type)) { + $param = '&type=' . $type . $param; + } +} if ($action == 'export_csv') { $sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV; @@ -190,14 +212,23 @@ if ($action == 'export_csv') { $type_export = 'balance'; include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php'; - $result = $object->fetchAllBalance($sortorder, $sortfield, $limit, 0, $filter); + if ($type == 'sub') { + $result = $object->fetchAllBalance($sortorder, $sortfield, $limit, 0, $filter, 'AND', 1); + } else { + $result = $object->fetchAllBalance($sortorder, $sortfield, $limit, 0, $filter); + } if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } foreach ($object->lines as $line) { - print '"'.length_accountg($line->numero_compte).'"'.$sep; - print '"'.$object->get_compte_desc($line->numero_compte).'"'.$sep; + if ($type == 'sub') { + print '"' . length_accounta($line->subledger_account) . '"' . $sep; + print '"' . $line->subledger_label . '"' . $sep; + } else { + print '"' . length_accountg($line->numero_compte) . '"' . $sep; + print '"' . $object->get_compte_desc($line->numero_compte) . '"' . $sep; + } print '"'.price($line->debit).'"'.$sep; print '"'.price($line->credit).'"'.$sep; print '"'.price($line->debit - $line->credit).'"'.$sep; @@ -207,8 +238,15 @@ if ($action == 'export_csv') { exit; } +/* + * View + */ -$title_page = $langs->trans("AccountBalance"); +if ($type == 'sub') { + $title_page = $langs->trans("AccountBalanceSubAccount"); +} else { + $title_page = $langs->trans("AccountBalance"); +} llxHeader('', $title_page); @@ -217,39 +255,52 @@ if ($action != 'export_csv') { // List $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $nbtotalofrecords = $object->fetchAllBalance($sortorder, $sortfield, 0, 0, $filter); + if ($type == 'sub') { + $nbtotalofrecords = $object->fetchAllBalance($sortorder, $sortfield, 0, 0, $filter, 'AND', 1); + } else { + $nbtotalofrecords = $object->fetchAllBalance($sortorder, $sortfield, 0, 0, $filter); + } + if ($nbtotalofrecords < 0) { setEventMessages($object->error, $object->errors, 'errors'); } } - $result = $object->fetchAllBalance($sortorder, $sortfield, $limit, $offset, $filter); + if ($type == 'sub') { + $result = $object->fetchAllBalance($sortorder, $sortfield, $limit, $offset, $filter, 'AND', 1); + } else { + $result = $object->fetchAllBalance($sortorder, $sortfield, $limit, $offset, $filter); + } + if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } print ''; + print ''; + print ''; if ($optioncss != '') { print ''; } - print ''; print ''; - 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 + $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'); } - $button = empty($hookmanager->resPrint) ? '' : $hookmanager->resPrint; + $newcardbutton = empty($hookmanager->resPrint) ? '' : $hookmanager->resPrint; if (empty($reshook)) { - $button .= 'global->ACCOUNTING_EXPORT_FORMAT.')" />'; + $newcardbutton = 'global->ACCOUNTING_EXPORT_FORMAT.')" />'; print ''; + + if ($type == 'sub') { + $newcardbutton .= dolGetButtonTitle($langs->trans('AccountBalance')." - ".$langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/balance.php?' . $url_param, '', 1, array('morecss' => 'marginleftonly')); + $newcardbutton .= dolGetButtonTitle($langs->trans('AccountBalance')." - ".$langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/balance.php?type=sub&' . $url_param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); + } else { + $newcardbutton .= dolGetButtonTitle($langs->trans('AccountBalance')." - ".$langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/balance.php?' . $url_param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); + $newcardbutton .= dolGetButtonTitle($langs->trans('AccountBalance')." - ".$langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/balance.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'); + } + 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, $button, $result, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit); + print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $result, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1); $selectedfields = ''; + // 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 = ''; $moreforfilter .= '
'; @@ -275,18 +346,38 @@ if ($action != 'export_csv') { $moreforfilter .= $form->selectDate($search_date_start ? $search_date_start : -1, 'date_start', 0, 0, 1, '', 1, 0); $moreforfilter .= $langs->trans('DateEnd').': '; $moreforfilter .= $form->selectDate($search_date_end ? $search_date_end : -1, 'date_end', 0, 0, 1, '', 1, 0); - - $moreforfilter .= ' - '; - $moreforfilter .= ': '; - $moreforfilter .= ''; - $moreforfilter .= '
'; $moreforfilter .= '
'; + $moreforfilter .= ': '; + $moreforfilter .= ''; + $moreforfilter .= '
'; - $moreforfilter .= $langs->trans("Journal"); + $moreforfilter .= '
'; + $moreforfilter .= $langs->trans("Journals").': '; $moreforfilter .= $formaccounting->multi_select_journal($search_ledger_code, 'search_ledger_code', 0, 1, 1, 1); + $moreforfilter .= '
'; + $moreforfilter .= '
'; + $moreforfilter .= '
'; + // Accountancy account + $moreforfilter .= $langs->trans('AccountAccounting').': '; + 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', 'accounts'); + } + $moreforfilter .= ' '; + 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', 'accounts'); + } + $moreforfilter .= '
'; + + $moreforfilter .= '
'; + $moreforfilter .= ': '; + $moreforfilter .= ''; $moreforfilter .= '
'; if (!empty($moreforfilter)) { @@ -305,9 +396,6 @@ if ($action != 'export_csv') { print ''; print ''; - print $formaccounting->select_account($search_accountancy_code_start, 'search_accountancy_code_start', $langs->trans('From'), array(), 1, 1, '', 'accounts'); - print ' '; - print $formaccounting->select_account($search_accountancy_code_end, 'search_accountancy_code_end', $langs->trans('to'), array(), 1, 1, '', 'accounts'); print ''; // Fields from hook @@ -324,6 +412,10 @@ if ($action != 'export_csv') { print ''; print_liste_field_titre("AccountAccounting", $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder); + // TODO : Retrieve the type of third party: Customer / Supplier / Employee + //if ($type == 'sub') { + // print_liste_field_titre("Type", $_SERVER['PHP_SELF'], "t.type", "", $param, "", $sortfield, $sortorder); + //} if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) { print_liste_field_titre("OpeningBalance", $_SERVER['PHP_SELF'], "", $param, "", 'class="right"', $sortfield, $sortorder); } @@ -359,7 +451,7 @@ if ($action != 'export_csv') { $sql .= " GROUP BY t.numero_compte"; $resql = $db->query($sql); - $nrows = $db->num_rows($resql); + $nrows = $resql->num_rows; $opening_balances = array(); for ($i = 0; $i < $nrows; $i++) { $arr = $resql->fetch_array(); @@ -372,11 +464,13 @@ if ($action != 'export_csv') { $accountingaccountstatic->id = 0; $accountingaccountstatic->account_number = ''; - $accountingaccountstatic->fetch(null, $line->numero_compte, true); - if (!empty($accountingaccountstatic->account_number)) { - $accounting_account = $accountingaccountstatic->getNomUrl(0, 1, 0, '', 0, -1, 0, 'accountcard'); - } else { - $accounting_account = length_accountg($line->numero_compte); + if ($type != 'sub') { + $accountingaccountstatic->fetch(null, $line->numero_compte, true); + if (!empty($accountingaccountstatic->account_number)) { + $accounting_account = $accountingaccountstatic->getNomUrl(0, 1, 1); + } else { + $accounting_account = length_accountg($line->numero_compte); + } } $link = ''; @@ -427,7 +521,7 @@ if ($action != 'export_csv') { // Show first line of a break print ''; - print ''.$line->numero_compte.($root_account_description ? ' - '.$root_account_description : '').''; + print ''.$line->numero_compte.($root_account_description ? ' - '.$root_account_description : '').''; print ''; $displayed_account = $root_account_number; @@ -438,19 +532,43 @@ if ($action != 'export_csv') { } print ''; - print ''.$accounting_account.''; + // Accounting account + if ($type == 'sub') { + print ''.$line->subledger_account.' ('.$line->subledger_label.')'; + } else { + print ''.$accounting_account.''; + } + + // Type + // TODO Retrieve the type of third party: Customer / Supplier / Employee + //if ($type == 'sub') { + // print ''; + //} + if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) { print ''.price(price2num($opening_balance, 'MT')).''; } $urlzoom = ''; - if ($line->numero_compte) { - $urlzoom = DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?search_accountancy_code_start='.urlencode($line->numero_compte).'&search_accountancy_code_end='.urlencode($line->numero_compte); - if (GETPOSTISSET('date_startmonth')) { - $urlzoom .= '&search_date_startmonth='.GETPOST('date_startmonth', 'int').'&search_date_startday='.GETPOST('date_startday', 'int').'&search_date_startyear='.GETPOST('date_startyear', 'int'); + if ($type == 'sub') { + if ($line->subledger_account) { + $urlzoom = DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?type=sub&search_accountancy_code_start=' . urlencode($line->subledger_account) . '&search_accountancy_code_end=' . urlencode($line->subledger_account); + if (GETPOSTISSET('date_startmonth')) { + $urlzoom .= '&search_date_startmonth=' . GETPOST('date_startmonth', 'int') . '&search_date_startday=' . GETPOST('date_startday', 'int') . '&search_date_startyear=' . GETPOST('date_startyear', 'int'); + } + if (GETPOSTISSET('date_endmonth')) { + $urlzoom .= '&search_date_endmonth=' . GETPOST('date_endmonth', 'int') . '&search_date_endday=' . GETPOST('date_endday', 'int') . '&search_date_endyear=' . GETPOST('date_endyear', 'int'); + } } - if (GETPOSTISSET('date_endmonth')) { - $urlzoom .= '&search_date_endmonth='.GETPOST('date_endmonth', 'int').'&search_date_endday='.GETPOST('date_endday', 'int').'&search_date_endyear='.GETPOST('date_endyear', 'int'); + } else { + if ($line->numero_compte) { + $urlzoom = DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?search_accountancy_code_start=' . urlencode($line->numero_compte) . '&search_accountancy_code_end=' . urlencode($line->numero_compte); + if (GETPOSTISSET('date_startmonth')) { + $urlzoom .= '&search_date_startmonth=' . GETPOST('date_startmonth', 'int') . '&search_date_startday=' . GETPOST('date_startday', 'int') . '&search_date_startyear=' . GETPOST('date_startyear', 'int'); + } + if (GETPOSTISSET('date_endmonth')) { + $urlzoom .= '&search_date_endmonth=' . GETPOST('date_endmonth', 'int') . '&search_date_endday=' . GETPOST('date_endday', 'int') . '&search_date_endyear=' . GETPOST('date_endyear', 'int'); + } } } // Debit diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 44225dfca6b..42ac08383ea 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -4,6 +4,7 @@ * Copyright (C) 2013-2022 Alexandre Spangaro * Copyright (C) 2017 Laurent Destailleur * Copyright (C) 2018-2020 Frédéric France + * Copyright (C) 2022 Waël Almoman * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -44,7 +45,7 @@ $cancel = GETPOST('cancel', 'aZ09'); $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') $id = GETPOST('id', 'int'); // id of record -$mode = GETPOST('mode', 'aZ09'); // '' or '_tmp' +$mode = $mode = $action == 'create' ? "_tmp" : GETPOST('mode', 'aZ09'); // '' or '_tmp' $piece_num = GETPOST("piece_num", 'int'); // id of transaction (several lines share the same transaction id) $accountingaccount = new AccountingAccount($db); @@ -54,10 +55,15 @@ $accountingaccount_number = GETPOST('accountingaccount_number', 'alphanohtml'); $accountingaccount->fetch(null, $accountingaccount_number, true); $accountingaccount_label = $accountingaccount->label; -$journal_code = GETPOST('code_journal', 'alpha'); +$journal_code = GETPOST('code_journal', 'alpha') ? GETPOST('code_journal', 'alpha') : "NULL"; $accountingjournal->fetch(null, $journal_code); $journal_label = $accountingjournal->label; +$next_num_mvt = (int) GETPOST('next_num_mvt', 'alpha'); +$doc_ref = (string) GETPOST('doc_ref', 'alpha'); +$doc_date = (string) GETPOST('doc_date', 'alpha'); +$doc_date = $doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int')); + $subledger_account = GETPOST('subledger_account', 'alphanohtml'); if ($subledger_account == -1) { $subledger_account = null; @@ -72,6 +78,10 @@ $save = GETPOST('save', 'alpha'); if (!empty($save)) { $action = 'add'; } +$valid = GETPOST('validate', 'alpha'); +if (!empty($valid)) { + $action = 'valid'; +} $update = GETPOST('update', 'alpha'); if (!empty($update)) { $action = 'confirm_update'; @@ -156,64 +166,79 @@ if ($action == "confirm_update") { } } } -} elseif ($action == "add") { +} elseif ($action == 'add' || $action == 'valid') { $error = 0; - if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) { - $error++; - setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors'); - $action = ''; - } - if (empty($accountingaccount_number) || $accountingaccount_number == '-1') { - $error++; - setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("AccountAccountingShort")), null, 'errors'); - $action = ''; + if (array_sum($debit) != array_sum($credit)) { + $action = 'add'; } - if (!$error) { - $object = new BookKeeping($db); + foreach ($accountingaccount_number as $key => $value) { + $accountingaccount->fetch(null, $accountingaccount_number[$key], true); + $accountingaccount_label[$key] = $accountingaccount->label[$key]; - $object->numero_compte = $accountingaccount_number; - $object->subledger_account = $subledger_account; - $object->subledger_label = $subledger_label; - $object->label_compte = $accountingaccount_label; - $object->label_operation = $label_operation; - $object->debit = $debit; - $object->credit = $credit; - $object->doc_date = (string) GETPOST('doc_date', 'alpha'); - $object->doc_type = (string) GETPOST('doc_type', 'alpha'); - $object->piece_num = $piece_num; - $object->doc_ref = (string) GETPOST('doc_ref', 'alpha'); - $object->code_journal = $journal_code; - $object->journal_label = $journal_label; - $object->fk_doc = GETPOSTINT('fk_doc'); - $object->fk_docdet = GETPOSTINT('fk_docdet'); - - if (floatval($debit) != 0.0) { - $object->montant = $debit; // deprecated - $object->amount = $debit; - $object->sens = 'D'; + // if one added row is empty remove it before continue + if ($key < 1 && (empty($accountingaccount_number[$key]) || $accountingaccount_number[$key] == '-1') || (floatval($debit[$key]) == 0.0) && (floatval($credit[$key]) == 0.0)) { + continue; } - if (floatval($credit) != 0.0) { - $object->montant = $credit; // deprecated - $object->amount = $credit; - $object->sens = 'C'; - } - - $result = $object->createStd($user, false, $mode); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } else { - if ($mode != '_tmp') { - setEventMessages($langs->trans('RecordSaved'), null, 'mesgs'); - } - - $debit = 0; - $credit = 0; - + if ((floatval($debit[$key]) != 0.0) && (floatval($credit[$key]) != 0.0)) { + $error++; + setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors'); $action = ''; } + + if (empty($accountingaccount_number[$key]) || $accountingaccount_number[$key] == '-1') { + $error++; + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("AccountAccountingShort")), null, 'errors'); + $action = ''; + } + + if (!$error) { + $object = new BookKeeping($db); + $object->numero_compte = $accountingaccount_number[$key]; + $object->subledger_account = $subledger_account[$key]; + $object->subledger_label = $subledger_label[$key]; + $object->label_compte = $accountingaccount_label[$key]; + $object->label_operation = $label_operation[$key]; + $object->debit = price2num($debit[$key]); + $object->credit = price2num($credit[$key]); + $object->doc_date = $doc_date; + $object->doc_type = (string) GETPOST('doc_type', 'alpha'); + $object->piece_num = $piece_num; + $object->doc_ref = $doc_ref; + $object->code_journal = $journal_code; + $object->journal_label = $journal_label; + $object->fk_doc = GETPOSTINT('fk_doc'); + $object->fk_docdet = GETPOSTINT('fk_docdet'); + + if (floatval($debit[$key]) != 0.0) { + $object->montant = $object->debit; // deprecated + $object->amount = $object->debit; + $object->sens = 'D'; + } + + if (floatval($credit[$key]) != 0.0) { + $object->montant = $object->credit; // deprecated + $object->amount = $object->credit; + $object->sens = 'C'; + } + + $result = $object->createStd($user, false, $mode); + if ($result < 0) { + $error++; + setEventMessages($object->error, $object->errors, 'errors'); + } + } + } + if (empty($error)) { + if ($mode != '_tmp') { + setEventMessages($langs->trans('RecordSaved'), null, 'mesgs'); + } + $debit = 0; + $credit = 0; + + $action = $action == 'add' ? '' : $action ; // stay in valid mode when not adding line } } elseif ($action == "confirm_delete") { $object = new BookKeeping($db); @@ -230,17 +255,28 @@ if ($action == "confirm_update") { } } $action = ''; -} elseif ($action == "confirm_create") { +} elseif ($action == 'create') { $error = 0; $object = new BookKeeping($db); + $next_num_mvt = !empty($next_num_mvt) ? $next_num_mvt : $object->getNextNumMvt('_tmp'); + $doc_ref = !empty($doc_ref) ? $doc_ref : $next_num_mvt; + + if (empty($doc_date)) { + $tmp_date = dol_getdate(dol_now()); + $_POST['doc_dateday'] = $tmp_date['mday']; + $_POST['doc_datemonth'] = $tmp_date['mon']; + $_POST['doc_dateyear'] = $tmp_date['year']; + unset($tmp_date); + } + if (!$journal_code || $journal_code == '-1') { setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Journal")), null, 'errors'); $action = 'create'; $error++; } - if (!GETPOST('doc_ref', 'alpha')) { + if (empty($doc_ref)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Piece")), null, 'errors'); $action = 'create'; $error++; @@ -252,8 +288,8 @@ if ($action == "confirm_update") { $object->credit = 0; $object->doc_date = $date_start = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int')); $object->doc_type = GETPOST('doc_type', 'alpha'); - $object->piece_num = GETPOST('next_num_mvt', 'alpha'); - $object->doc_ref = GETPOST('doc_ref', 'alpha'); + $object->piece_num = $next_num_mvt; + $object->doc_ref = $doc_ref; $object->code_journal = $journal_code; $object->journal_label = $journal_label; $object->fk_doc = 0; @@ -302,7 +338,7 @@ if ($action == 'setjournal') { } if ($action == 'setdocref') { - $refdoc = GETPOST('doc_ref', 'alpha'); + $refdoc = $doc_ref; $result = $object->updateByMvt($piece_num, 'doc_ref', $refdoc, $mode); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); @@ -333,7 +369,7 @@ if ($action == 'valid') { $html = new Form($db); $formaccounting = new FormAccounting($db); -$title = $langs->trans("CreateMvts"); +$title = $langs->trans($mode =="_tmp" ? "CreateMvts": "UpdateMvts"); llxHeader('', $title); @@ -343,28 +379,37 @@ if ($action == 'delete') { print $formconfirm; } -if ($action == 'create') { - print load_fiche_titre($title); - $object = new BookKeeping($db); - $next_num_mvt = $object->getNextNumMvt('_tmp'); +$object = new BookKeeping($db); +$result = $object->fetchPerMvt($piece_num, $mode); +if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); +} - if (empty($next_num_mvt)) { - dol_print_error('', 'Failed to get next piece number'); +if (!empty($object->piece_num)) { + $backlink = ''.$langs->trans('BackToList').''; + + print load_fiche_titre($langs->trans($mode =="_tmp" ? "CreateMvts": "UpdateMvts"), $backlink); + + print ''; if ($optioncss != '') { + print ''; } + $head = array(); + $h = 0; + $head[$h][0] = $_SERVER['PHP_SELF'].'?piece_num='.$object->piece_num.($mode ? '&mode='.$mode : ''); + $head[$h][1] = $langs->trans("Transaction"); + $head[$h][2] = 'transaction'; + $h++; - print ''; - if ($optioncss != '') { - print ''; - } - print ''; - print ''."\n"; - print ''."\n"; - print ''."\n"; + print dol_get_fiche_head($head, 'transaction', '', -1); - print dol_get_fiche_head(); + //dol_banner_tab($object, '', $backlink); - print ''; + print '
'; + print '
'; + + print '
'; + print '
'; /*print ''; print ''; @@ -374,7 +419,7 @@ if ($action == 'create') { print ''; print ''; print ''; print ''; @@ -385,293 +430,218 @@ if ($action == 'create') { print ''; print ''; - print ''; + print ''; print ''; /* print ''; print ''; - print ''; + print ''; print ''; */ print '
' . $langs->trans("NumPiece") . '
'.$langs->trans("Docdate").''; - print $html->selectDate('', 'doc_date', '', '', '', "create_mvt", 1, 1); + print $html->selectDate($doc_date, 'doc_date', '', '', '', "create_mvt", 1, 1); print '
'.$langs->trans("Piece").'
' . $langs->trans("Doctype") . '
'; - print dol_get_fiche_end(); + print ''; - print $form->buttonsSaveCancel("Create"); + print '
'; - print ''; -} else { - $object = new BookKeeping($db); - $result = $object->fetchPerMvt($piece_num, $mode); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); + print '
'; + print ''; + + // Doc type + if (!empty($object->doc_type)) { + print ''; + print ''; + print ''; + print ''; } - if (!empty($object->piece_num)) { - $backlink = ''.$langs->trans('BackToList').''; + // Date document creation + print ''; + print ''; + print ''; + print ''; - print load_fiche_titre($langs->trans("UpdateMvts"), $backlink); - - $head = array(); - $h = 0; - $head[$h][0] = $_SERVER['PHP_SELF'].'?piece_num='.$object->piece_num.($mode ? '&mode='.$mode : ''); - $head[$h][1] = $langs->trans("Transaction"); - $head[$h][2] = 'transaction'; - $h++; - - print dol_get_fiche_head($head, 'transaction', '', -1); - - //dol_banner_tab($object, '', $backlink); - - print '
'; - print '
'; - - print '
'; - print '
'.$langs->trans("Doctype").''.$object->doc_type.'
'.$langs->trans("DateCreation").''; + print $object->date_creation ? dol_print_date($object->date_creation, 'day') : ' '; + print '
'; - - // Account movement + // Don't show in tmp mode, inevitably empty + if ($mode != "_tmp") { + // Date document export print ''; - print ''; - print ''; - print ''; - - // Date - print ''; - print ''; - - // Journal - print ''; - print ''; - - // Ref document - print ''; - print ''; - - print '
'.$langs->trans("NumMvts").''.($mode == '_tmp' ? ''.$langs->trans("Draft").'' : $object->piece_num).'
'; - print ''; - if ($action != 'editdate') { - print ''; - } - print '
'; - print $langs->trans('Docdate'); - print 'piece_num).'&mode='.urlencode($mode).'">'.img_edit($langs->transnoentitiesnoconv('SetDate'), 1).'
'; - print '
'; - if ($action == 'editdate') { - print '
'; - if ($optioncss != '') { - print ''; - } - print ''; - print ''; - print ''; - print $form->selectDate($object->doc_date ? $object->doc_date : - 1, 'doc_date', '', '', '', "setdate"); - print ''; - print '
'; - } else { - print $object->doc_date ? dol_print_date($object->doc_date, 'day') : ' '; - } - print '
'; - print ''; - if ($action != 'editjournal') { - print ''; - } - print '
'; - print $langs->trans('Codejournal'); - print 'piece_num).'&mode='.urlencode($mode).'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'
'; - print '
'; - if ($action == 'editjournal') { - print '
'; - if ($optioncss != '') { - print ''; - } - print ''; - print ''; - print ''; - print $formaccounting->select_journal($object->code_journal, 'code_journal', 0, 0, array(), 1, 1); - print ''; - print '
'; - } else { - print $object->code_journal; - } - print '
'; - print ''; - if ($action != 'editdocref') { - print ''; - } - print '
'; - print $langs->trans('Piece'); - print 'piece_num).'&mode='.urlencode($mode).'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'
'; - print '
'; - if ($action == 'editdocref') { - print '
'; - if ($optioncss != '') { - print ''; - } - print ''; - print ''; - print ''; - print ''; - print ''; - print '
'; - } else { - print $object->doc_ref; - } - print '
'; - - print '
'; - - print '
'; - - print '
'; - print ''; - - // Doc type - if (!empty($object->doc_type)) { - print ''; - print ''; - print ''; - print ''; - } - - // Date document creation - print ''; - print ''; + print ''; print ''; print ''; - // Don't show in tmp mode, inevitably empty - if ($mode != "_tmp") { - // Date document export - print ''; - print ''; - print ''; - print ''; - - // Date document validation - print ''; - print ''; - print ''; - print ''; - } - - // Validate - /* + // Date document validation print ''; - print ''; + print ''; print ''; + print $object->date_validation ? dol_print_date($object->date_validation, 'dayhour') : ' '; + print ''; print ''; - */ + } + // Validate + /* + print ''; + print ''; + print ''; + print ''; + */ // check data - /* - print ''; - print ''; - if ($object->doc_type == 'customer_invoice') - { - $sqlmid = 'SELECT rowid as ref'; - $sqlmid .= " FROM ".MAIN_DB_PREFIX."facture as fac"; - $sqlmid .= " WHERE fac.rowid=" . ((int) $object->fk_doc); - dol_syslog("accountancy/bookkeeping/card.php::sqlmid=" . $sqlmid, LOG_DEBUG); - $resultmid = $db->query($sqlmid); - if ($resultmid) { - $objmid = $db->fetch_object($resultmid); - $invoicestatic = new Facture($db); - $invoicestatic->fetch($objmid->ref); - $ref=$langs->trans("Invoice").' '.$invoicestatic->getNomUrl(1); - } - else dol_print_error($db); - } - print ''; - print ''; - */ - print "
'.$langs->trans("Doctype").''.$object->doc_type.'
'.$langs->trans("DateCreation").''.$langs->trans("DateExport").''; - print $object->date_creation ? dol_print_date($object->date_creation, 'day') : ' '; + 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("Status") . ''.$langs->trans("DateValidation").''; - if (empty($object->validated)) { - print ''; - print img_picto($langs->trans("Disabled"), 'switch_off'); - print ''; - } else { - print ''; - print img_picto($langs->trans("Activated"), 'switch_on'); - print ''; - } - print '
' . $langs->trans("Status") . ''; + if (empty($object->validated)) { + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print ''; + } else { + print ''; + print img_picto($langs->trans("Activated"), 'switch_on'); + print ''; + } + print '
' . $langs->trans("Control") . '' . $ref .'
\n"; - - print '
'; - - print dol_get_fiche_end(); - - print '
'; - - print '
'; - - $result = $object->fetchAllPerMvt($piece_num, $mode); // This load $object->linesmvt - - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); + /* + print ''; + print '' . $langs->trans("Control") . ''; + if ($object->doc_type == 'customer_invoice') { + $sqlmid = 'SELECT rowid as ref'; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."facture as fac"; + $sqlmid .= " WHERE fac.rowid=" . ((int) $object->fk_doc); + dol_syslog("accountancy/bookkeeping/card.php::sqlmid=" . $sqlmid, LOG_DEBUG); + $resultmid = $db->query($sqlmid); + if ($resultmid) { + $objmid = $db->fetch_object($resultmid); + $invoicestatic = new Facture($db); + $invoicestatic->fetch($objmid->ref); + $ref=$langs->trans("Invoice").' '.$invoicestatic->getNomUrl(1); } else { - print load_fiche_titre($langs->trans("ListeMvts"), '', ''); + dol_print_error($db); + } + } + print '' . $ref .''; + print ''; + */ + print "\n"; - print '
'; - if ($optioncss != '') { - print ''; + print dol_get_fiche_end(); + + print '
'; + + print '
'; + + $result = $object->fetchAllPerMvt($piece_num, $mode); // This load $object->linesmvt + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } else { + // List of movements + print load_fiche_titre($langs->trans("ListeMvts"), '', ''); + + if ($optioncss != '') { + print ''; + } + + print ''; + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; + + if (count($object->linesmvt) > 0) { + print '
'; + print ''; + + $total_debit = 0; + $total_credit = 0; + + // Don't show in tmp mode, inevitably empty + if ($mode != "_tmp") { + // Date document export + print ''; + print ''; + print ''; + print ''; + + // Date document validation + print ''; + print ''; + print ''; + print ''; } - print ''; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - if (count($object->linesmvt) > 0) { - print '
'; - 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 '
'; + print ''; - $total_debit = 0; - $total_credit = 0; + print_liste_field_titre("AccountAccountingShort"); + print_liste_field_titre("SubledgerAccount"); + print_liste_field_titre("LabelOperation"); + print_liste_field_titre("AccountingDebit", "", "", "", "", 'class="right"'); + print_liste_field_titre("AccountingCredit", "", "", "", "", 'class="right"'); + if (empty($object->date_validation)) { + print_liste_field_titre("Action", "", "", "", "", 'width="60"', "", "", 'center '); + } else { + print_liste_field_titre(""); + } - print ''; + print "\n"; - print_liste_field_titre("AccountAccountingShort"); - print_liste_field_titre("SubledgerAccount"); - print_liste_field_titre("LabelOperation"); - print_liste_field_titre("AccountingDebit", "", "", "", "", 'class="right"'); - print_liste_field_titre("AccountingCredit", "", "", "", "", 'class="right"'); - if (empty($object->date_validation)) { - print_liste_field_titre("Action", "", "", "", "", 'width="60"', "", "", 'center '); - } else { - print_liste_field_titre(""); - } + // In _tmp mode the first line is empty so we remove it + if ($mode == "_tmp") { + array_shift($object->linesmvt); + } - print "\n"; + // Add an empty line at the end to be able to add transaction + $line = new BookKeepingLine(); + $object->linesmvt[] = $line; - // 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; + // Add a second line empty line if there is not yet + if (empty($object->linesmvt[1])) { + $line = new BookKeepingLine(); + $object->linesmvt[] = $line; + } + + $count_line = count($object->linesmvt); + $num_line = 0; + foreach ($object->linesmvt as $key => $line) { + $num_line++; + print ''; + $total_debit += $line->debit; + $total_credit += $line->credit; + + if ($action == 'update' && $line->id == $id) { + print ''; + print ''; + print ''; - $total_debit += $line->debit; - $total_credit += $line->credit; - - if ($action == 'update' && $line->id == $id) { - print ''; + // Add also input for subledger label + print '
subledger_label).'" placeholder="'.dol_escape_htmltag($langs->trans("SubledgerAccountLabel")).'" />'; + print ''; + print ''; + print ''; + print ''; + print ''; + } elseif (empty($line->numero_compte) || (empty($line->debit) && empty($line->credit))) { + if ($action == "" || $action == 'add') { + print ''; print ''; print ''; - print ''; - print ''; - 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 ''; + // Add button should not appear twice + if ($num_line === $count_line) { + print ''; } else { - print $line->numero_compte.' ('.$langs->trans("AccountRemovedFromCurrentChartOfAccount").')'; + print ''; } - print ''; - print ''; - print ''; - print ''; - print ''; - - print ''; } - print "\n"; - } - - $total_debit = price2num($total_debit, 'MT'); - $total_credit = price2num($total_credit, 'MT'); - - if ($total_debit != $total_credit) { - setEventMessages(null, array($langs->trans('MvtNotCorrectlyBalanced', $total_debit, $total_credit)), 'warnings'); - } - - print '
'; + print $formaccounting->select_account((GETPOSTISSET("accountingaccount_number") ? GETPOST("accountingaccount_number", "alpha") : $line->numero_compte), '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((GETPOSTISSET("subledger_account") ? GETPOST("subledger_account", "alpha") : $line->subledger_account), 'subledger_account', 1, 'maxwidth250', '', 'subledger_label'); + } else { + print 'subledger_account).'" placeholder="'.dol_escape_htmltag($langs->trans("SubledgerAccount")).'" />'; } - } - - foreach ($object->linesmvt as $line) { - print '
label_operation).'" />debit)).'" />credit)).'" />'; + print ''."\n"; + print ''; + print ''; - print $formaccounting->select_account((GETPOSTISSET("accountingaccount_number") ? GETPOST("accountingaccount_number", "alpha") : $line->numero_compte), 'accountingaccount_number', 1, array(), 1, 1, ''); + print $formaccounting->select_account((is_array($accountingaccount_number) ? $accountingaccount_number[$key] : $accountingaccount_number ), 'accountingaccount_number['.$key.']', 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: @@ -679,124 +649,102 @@ if ($action == 'create') { // 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((GETPOSTISSET("subledger_account") ? GETPOST("subledger_account", "alpha") : $line->subledger_account), 'subledger_account', 1, 'maxwidth250', '', 'subledger_label'); + print $formaccounting->select_auxaccount((is_array($subledger_account) ? $subledger_account[$key] : $subledger_account ), 'subledger_account['.$key.']', 1, 'maxwidth250', '', 'subledger_label'); } else { - print 'subledger_account).'" placeholder="'.dol_escape_htmltag($langs->trans("SubledgerAccount")).'">'; + print ''; } - // Add also input for subledger label - print '
subledger_label).'" placeholder="'.dol_escape_htmltag($langs->trans("SubledgerAccountLabel")).'">'; + print '
'; print '
label_operation).'">debit)).'">credit)).'">'; - print ''."\n"; - print ''; - 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) { - print $accountingaccount->getNomUrl(0, 1, 1, '', 0); + print ''.length_accounta($line->subledger_account); - if ($line->subledger_label) { - print ' - '.$line->subledger_label.''; - } - print ''.$line->label_operation.''.price($line->debit).''.price($line->credit).''; - if (empty($line->date_export) && empty($line->date_validation)) { - print 'id . '&piece_num=' . urlencode($line->piece_num) . '&mode=' . urlencode($mode) . '&token=' . urlencode(newToken()) . '">'; - print img_edit('', 0, 'class="marginrightonly"'); - print '  '; - } else { - print ''; - print img_edit($langs->trans("ForbiddenTransactionAlreadyExported"), 0, 'class="marginrightonly"'); - print '  '; - } - - if (empty($line->date_validation)) { - $actiontodelete = 'delete'; - if ($mode == '_tmp' || $action != 'delmouv') { - $actiontodelete = 'confirm_delete'; - } - - print ''; - print img_delete(); - print ''; - } else { - print ''; - print img_delete($langs->trans("ForbiddenTransactionAlreadyValidated")); - print ''; - } - - print '
'; - print '
'; - - if ($mode == '_tmp' && $action == '') { - print '
'; - print '
'; - if ($total_debit == $total_credit) { - print ''.$langs->trans("ValidTransaction").''; + } else { + print ''; + $resultfetch = $accountingaccount->fetch(null, $line->numero_compte, true); + print ''; + if ($resultfetch > 0) { + print $accountingaccount->getNomUrl(0, 1, 1, '', 0); } else { - print ''; + print $line->numero_compte.' ('.$langs->trans("AccountRemovedFromCurrentChartOfAccount").')'; + } + print ''; + print ''.length_accounta($line->subledger_account); + if ($line->subledger_label) { + print ' - '.$line->subledger_label.''; + } + print ''; + print ''.$line->label_operation.''; + print ''.($line->debit != 0 ? price($line->debit) : '').''; + print ''.($line->credit != 0 ? price($line->credit) : '').''; + + print ''; + if (empty($line->date_export) && empty($line->date_validation)) { + print 'id . '&piece_num=' . urlencode($line->piece_num) . '&mode=' . urlencode($mode) . '&token=' . urlencode(newToken()) . '">'; + print img_edit('', 0, 'class="marginrightonly"'); + print '  '; + } else { + print ''; + print img_edit($langs->trans("ForbiddenTransactionAlreadyExported"), 0, 'class="marginrightonly"'); + print '  '; } - print '   '; - print ''.$langs->trans("Cancel").''; + if (empty($line->date_validation)) { + $actiontodelete = 'delete'; + if ($mode == '_tmp' || $action != 'delmouv') { + $actiontodelete = 'confirm_delete'; + } - print "
"; + print ''; + print img_delete(); + print ''; + } else { + print ''; + print img_delete($langs->trans("ForbiddenTransactionAlreadyValidated")); + print ''; + } + + print ''; } + print "\n"; } - print '
'; + $total_debit = price2num($total_debit, 'MT'); + $total_credit = price2num($total_credit, 'MT'); + + if ($total_debit != $total_credit) { + setEventMessages(null, array($langs->trans('MvtNotCorrectlyBalanced', $total_debit, $total_credit)), 'warnings'); + } + + print ''; + print ''; + + if ($mode == '_tmp' && $action == '') { + print '
'; + print '
'; + if ($total_debit == $total_credit) { + print ''; + } else { + print ''; + } + + print '   '; + print ''.$langs->trans("Cancel").''; + + print "
"; + } } - } else { - print load_fiche_titre($langs->trans("NoRecords")); + + print ''; } +} else { + print load_fiche_titre($langs->trans("NoRecords")); } print dol_get_fiche_end(); diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index f0e95c3efb7..23bb513a85b 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -2,8 +2,10 @@ /* Copyright (C) 2013-2016 Olivier Geffroy * Copyright (C) 2013-2016 Florian Henry * Copyright (C) 2013-2022 Alexandre Spangaro + * Copyright (C) 2022 Lionel Vessiller * Copyright (C) 2016-2017 Laurent Destailleur * Copyright (C) 2018-2021 Frédéric France + * Copyright (C) 2022 Progiseize * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -102,7 +104,9 @@ if (GETPOST("button_export_file_x") || GETPOST("button_export_file.x") || GETPOS $action = 'export_file'; } -$search_accountancy_code = GETPOST("search_accountancy_code"); +$search_account_category = GETPOST('search_account_category', 'int'); + +$search_accountancy_code = GETPOST("search_accountancy_code", 'alpha'); $search_accountancy_code_start = GETPOST('search_accountancy_code_start', 'alpha'); if ($search_accountancy_code_start == - 1) { $search_accountancy_code_start = ''; @@ -253,6 +257,7 @@ if (empty($reshook)) { $search_doc_type = ''; $search_doc_ref = ''; $search_doc_date = ''; + $search_account_category = ''; $search_accountancy_code = ''; $search_accountancy_code_start = ''; $search_accountancy_code_end = ''; @@ -335,6 +340,20 @@ if (empty($reshook)) { $filter['t.doc_ref'] = $search_doc_ref; $param .= '&search_doc_ref='.urlencode($search_doc_ref); } + if ($search_account_category != '-1' && !empty($search_account_category)) { + require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancycategory.class.php'; + $accountingcategory = new AccountancyCategory($db); + + $listofaccountsforgroup = $accountingcategory->getCptsCat(0, 'fk_accounting_category = '.((int) $search_account_category)); + $listofaccountsforgroup2 = array(); + if (is_array($listofaccountsforgroup)) { + foreach ($listofaccountsforgroup as $tmpval) { + $listofaccountsforgroup2[] = "'".$db->escape($tmpval['id'])."'"; + } + } + $filter['t.search_accounting_code_in'] = join(',', $listofaccountsforgroup2); + $param .= '&search_account_category='.urlencode($search_account_category); + } if (!empty($search_accountancy_code)) { $filter['t.numero_compte'] = $search_accountancy_code; $param .= '&search_accountancy_code='.urlencode($search_accountancy_code); @@ -474,7 +493,7 @@ if (empty($reshook)) { if ($conf->global->ACCOUNTING_REEXPORT == 1) { setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsEnable"), null, 'mesgs'); } else { - setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsDisable"), null, 'mesgs'); + setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsDisable"), null, 'warnings'); } } else { setEventMessages($langs->trans("Error"), null, 'errors'); @@ -642,6 +661,9 @@ $sql .= " t.tms as date_modification,"; $sql .= " t.date_export,"; $sql .= " t.date_validated as date_validation,"; $sql .= " t.import_key"; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= ' FROM '.MAIN_DB_PREFIX.$object->table_element.' as t'; // Manage filter $sqlwhere = array(); @@ -672,7 +694,13 @@ if (count($filter) > 0) { } elseif ($key == 't.reconciled_option') { $sqlwhere[] = 't.lettering_code IS NULL'; } elseif ($key == 't.code_journal' && !empty($value)) { - $sqlwhere[] = natural_search("t.code_journal", join(',', $value), 3, 1); + if (is_array($value)) { + $sqlwhere[] = natural_search("t.code_journal", join(',', $value), 3, 1); + } else { + $sqlwhere[] = natural_search("t.code_journal", $value, 3, 1); + } + } elseif ($key == 't.search_accounting_code_in' && !empty($value)) { + $sqlwhere[] = 't.numero_compte IN ('.$db->sanitize($value, 1).')'; } else { $sqlwhere[] = natural_search($key, $value, 0, 1); } @@ -685,9 +713,6 @@ if (empty($conf->global->ACCOUNTING_REEXPORT)) { if (count($sqlwhere) > 0) { $sql .= ' AND '.implode(' AND ', $sqlwhere); } -if (!empty($sortfield)) { - $sql .= $db->order($sortfield, $sortorder); -} //print $sql; @@ -715,58 +740,62 @@ if ($action == 'export_fileconfirm' && $user->hasRight('accounting', 'mouvements } } - $mimetype = $accountancyexport->getMimeType($formatexportset); - - top_httphead($mimetype, 1); - - // Output data on screen - $accountancyexport->export($object->lines, $formatexportset); - $notifiedexportdate = GETPOST('notifiedexportdate', 'alpha'); $notifiedvalidationdate = GETPOST('notifiedvalidationdate', 'alpha'); + $withAttachment = !empty(trim(GETPOST('notifiedexportfull', 'alphanohtml'))) ? 1 : 0; - if (!empty($accountancyexport->errors)) { - dol_print_error('', '', $accountancyexport->errors); - } elseif (!empty($notifiedexportdate) || !empty($notifiedvalidationdate)) { - // Specify as export : update field date_export or date_validated - $error = 0; - $db->begin(); + // Output data on screen or download + $result = $accountancyexport->export($object->lines, $formatexportset, $withAttachment); - if (is_array($object->lines)) { - foreach ($object->lines as $movement) { - $now = dol_now(); + $error = 0; + if ($result < 0) { + $error++; + } else { + if (!empty($notifiedexportdate) || !empty($notifiedvalidationdate)) { + if (is_array($object->lines)) { + // Specify as export : update field date_export or date_validated + $db->begin(); - $sql = " UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping"; - $sql .= " SET"; - if (!empty($notifiedexportdate) && !empty($notifiedvalidationdate)) { - $sql .= " date_export = '".$db->idate($now)."'"; - $sql .= ", date_validated = '".$db->idate($now)."'"; - } elseif (!empty($notifiedexportdate)) { - $sql .= " date_export = '".$db->idate($now)."'"; - } elseif (!empty($notifiedvalidationdate)) { - $sql .= " date_validated = '".$db->idate($now)."'"; + foreach ($object->lines as $movement) { + $now = dol_now(); + + $sql = " UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping"; + $sql .= " SET"; + if (!empty($notifiedexportdate) && !empty($notifiedvalidationdate)) { + $sql .= " date_export = '".$db->idate($now)."'"; + $sql .= ", date_validated = '".$db->idate($now)."'"; + } elseif (!empty($notifiedexportdate)) { + $sql .= " date_export = '".$db->idate($now)."'"; + } elseif (!empty($notifiedvalidationdate)) { + $sql .= " date_validated = '".$db->idate($now)."'"; + } + $sql .= " WHERE rowid = ".((int) $movement->id); + + dol_syslog("/accountancy/bookkeeping/list.php Function export_file Specify movements as exported", LOG_DEBUG); + + $result = $db->query($sql); + if (!$result) { + $error++; + break; + } } - $sql .= " WHERE rowid = ".((int) $movement->id); - dol_syslog("/accountancy/bookkeeping/list.php Function export_file Specify movements as exported", LOG_DEBUG); - - $result = $db->query($sql); - if (!$result) { + if (!$error) { + $db->commit(); + } else { $error++; - break; + $accountancyexport->errors[] = $langs->trans('NotAllExportedMovementsCouldBeRecordedAsExportedOrValidated'); + $db->rollback(); } } } - - if (!$error) { - $db->commit(); - } else { - $error++; - $db->rollback(); - dol_print_error('', $langs->trans("NotAllExportedMovementsCouldBeRecordedAsExportedOrValidated")); - } } - exit; + + if ($error) { + setEventMessages('', $accountancyexport->errors, 'errors'); + header('Location: '.$_SERVER['PHP_SELF']); + } + exit(); // download or show errors } } @@ -783,28 +812,38 @@ $title_page = $langs->trans("Operations").' - '.$langs->trans("Journals"); // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $resql = $db->query($sql); - $nbtotalofrecords = $db->num_rows($resql); - if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. -if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) { - $num = $nbtotalofrecords; -} else { + +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $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); } +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} + +$num = $db->num_rows($resql); + $arrayofselected = is_array($toselect) ? $toselect : array(); // Output page @@ -854,7 +893,17 @@ if ($action == 'export_file') { $form_question['separator3'] = array('name'=>'separator3', 'type'=>'separator'); } - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', $langs->trans('ConfirmExportFile'), 'export_fileconfirm', $form_question, '', 1, 350, 600); + // add documents in an archive for accountancy export (Quadratus) + if (getDolGlobalString('ACCOUNTING_EXPORT_MODELCSV') == AccountancyExport::$EXPORT_TYPE_QUADRATUS) { + $form_question['notifiedexportfull'] = array( + 'name' => 'notifiedexportfull', + 'type' => 'checkbox', + 'label' => $langs->trans('NotifiedExportFull'), + 'value' => 'false', + ); + } + + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', $langs->trans('ConfirmExportFile'), 'export_fileconfirm', $form_question, '', 1, 400, 600); } //if ($action == 'delbookkeepingyear') { @@ -942,7 +991,7 @@ if (count($filter)) { $buttonLabel = $langs->trans("ExportList"); } -$parameters = array(); +$parameters = array('param' => $param); $reshook = $hookmanager->executeHooks('addMoreActionsButtonsList', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -953,11 +1002,14 @@ $newcardbutton = empty($hookmanager->resPrint) ? '' : $hookmanager->resPrint; if (empty($reshook)) { // Button re-export if (!empty($conf->global->ACCOUNTING_REEXPORT)) { - $newcardbutton .= ''.img_picto($langs->trans("Activated"), 'switch_on').' '; + $newcardbutton .= ''.img_picto($langs->trans("ClickToHideAlreadyExportedLines"), 'switch_off', 'class="small size15x valignmiddle"'); + $newcardbutton .= ''.$langs->trans("ClickToHideAlreadyExportedLines").''; + $newcardbutton .= ''; } else { - $newcardbutton .= ''.img_picto($langs->trans("Disabled"), 'switch_off').' '; + $newcardbutton .= ''.img_picto($langs->trans("DocsAlreadyExportedAreExcluded"), 'switch_on', 'class="warning size15x valignmiddle"').''; + $newcardbutton .= ''.$langs->trans("DocsAlreadyExportedAreExcluded").''; + $newcardbutton .= ''; } - $newcardbutton .= ''.$langs->trans("IncludeDocsAlreadyExported").''; if ($user->hasRight('accounting', 'mouvements', 'export')) { $newcardbutton .= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"].'?action=export_file&token='.newToken().($param ? '&'.$param : ''), $user->hasRight('accounting', 'mouvements', 'export')); @@ -991,23 +1043,33 @@ if ($massaction == 'preunletteringauto') { 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 +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields if ($massactionbutton && $contextpage != 'poslist') { $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); } $moreforfilter = ''; +$moreforfilter .= '
'; +$moreforfilter .= $langs->trans('AccountingCategory').': '; +$moreforfilter .= '
'; +$moreforfilter .= $formaccounting->select_accounting_category($search_account_category, 'search_account_category', 1, 0, 0, 0); +$moreforfilter .= '
'; +$moreforfilter .= '
'; $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { $moreforfilter .= $hookmanager->resPrint; } else { $moreforfilter = $hookmanager->resPrint; } +print '
'; +print $moreforfilter; +print '
'; + print '
'; -print ''; +print '
'; // Filters lines print ''; @@ -1163,8 +1225,7 @@ print "\n"; print ''; if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); -} + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch actioncolumn ');} 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); } @@ -1511,6 +1572,16 @@ while ($i < min($num, $limit)) { // Show total line include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; +// If no record found +if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print ''; +} $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 06a84af4a97..78aea811a5d 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -79,7 +79,8 @@ $search_date_validation_start = dol_mktime(0, 0, 0, $search_date_validation_star $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_account_category = GETPOST('search_account_category', 'int'); + $search_accountancy_code_start = GETPOST('search_accountancy_code_start', 'alpha'); if ($search_accountancy_code_start == - 1) { $search_accountancy_code_start = ''; @@ -198,6 +199,8 @@ if (!$user->hasRight('accounting', 'mouvements', 'lire')) { accessforbidden(); } +$error = 0; + /* * Action @@ -224,7 +227,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_doc_date = ''; - $search_accountancy_code = ''; + $search_account_category = ''; $search_accountancy_code_start = ''; $search_accountancy_code_end = ''; $search_label_account = ''; @@ -280,6 +283,20 @@ if (empty($reshook)) { $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 ($search_account_category != '-1' && !empty($search_account_category)) { + require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancycategory.class.php'; + $accountingcategory = new AccountancyCategory($db); + + $listofaccountsforgroup = $accountingcategory->getCptsCat(0, 'fk_accounting_category = '.((int) $search_account_category)); + $listofaccountsforgroup2 = array(); + if (is_array($listofaccountsforgroup)) { + foreach ($listofaccountsforgroup as $tmpval) { + $listofaccountsforgroup2[] = "'".$db->escape($tmpval['id'])."'"; + } + } + $filter['t.search_accounting_code_in'] = join(',', $listofaccountsforgroup2); + $param .= '&search_account_category='.urlencode($search_account_category); + } if (!empty($search_accountancy_code_start)) { if ($type == 'sub') { $filter['t.subledger_account>='] = $search_accountancy_code_start; @@ -358,7 +375,6 @@ if (empty($reshook)) { $filter['t.import_key'] = $search_import_key; $param .= '&search_import_key='.urlencode($search_import_key); } - // param with type of list $url_param = substr($param, 1); // remove first "&" if (!empty($type)) { @@ -544,25 +560,29 @@ llxHeader('', $title_page); // List $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { + // TODO Perf Replace this by a count if ($type == 'sub') { - $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter, 'AND', 1); + $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter, 'AND', 1, 1); } else { - $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter); + $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter, 'AND', 0, 1); } if ($nbtotalofrecords < 0) { setEventMessages($object->error, $object->errors, 'errors'); + $error++; } } -if ($type == 'sub') { - $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter, 'AND', 1); -} else { - $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter); -} +if (!$error) { + if ($type == 'sub') { + $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter, 'AND', 1); + } else { + $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter, 'AND', 0); + } -if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } } $arrayofselected = is_array($toselect) ? $toselect : array(); @@ -642,7 +662,7 @@ print ''; print ''; print ''; -$parameters = array(); +$parameters = array('param' => $param); $reshook = $hookmanager->executeHooks('addMoreActionsButtonsList', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -711,7 +731,7 @@ if ($type == 'sub') { $moreforfilter = ''; -// Accountancy account +// Search on accountancy custom groups or account $moreforfilter .= '
'; $moreforfilter .= $langs->trans('AccountAccounting').': '; $moreforfilter .= '
'; @@ -729,6 +749,13 @@ if ($type == 'sub') { $moreforfilter .= '
'; $moreforfilter .= '
'; +$moreforfilter .= '
'; +$moreforfilter .= $langs->trans('AccountingCategory').': '; +$moreforfilter .= '
'; +$moreforfilter .= $formaccounting->select_accounting_category($search_account_category, 'search_account_category', 1, 0, 0, 0); +$moreforfilter .= '
'; +$moreforfilter .= '
'; + $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook if (empty($reshook)) { @@ -844,7 +871,7 @@ if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); } 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); + print_liste_field_titre($arrayfields['t.piece_num']['label'], $_SERVER['PHP_SELF'], "t.piece_num", "", $param, '', $sortfield, $sortorder, 'tdoverflowmax80imp '); } 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 '); @@ -935,8 +962,8 @@ while ($i < min($num, $limit)) { } else { print ''; } - print ''; - print ''; + print ''; + print ''; print ''; print ''; // Show balance of last shown account @@ -945,13 +972,13 @@ while ($i < min($num, $limit)) { print ''; if ($balance > 0) { print ''; print ''; } else { print ''; print ''; } print ''; @@ -1024,7 +1051,7 @@ while ($i < min($num, $limit)) { $accountingjournal = new AccountingJournal($db); $result = $accountingjournal->fetch('', $line->code_journal); $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal); - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } @@ -1120,7 +1147,7 @@ while ($i < min($num, $limit)) { // Amount debit if (!empty($arrayfields['t.debit']['checked'])) { - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } @@ -1132,7 +1159,7 @@ while ($i < min($num, $limit)) { // Amount credit if (!empty($arrayfields['t.credit']['checked'])) { - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } @@ -1206,8 +1233,8 @@ while ($i < min($num, $limit)) { if ($num > 0 && $colspan > 0) { print ''; print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; // Show balance of last shown account @@ -1216,22 +1243,42 @@ if ($num > 0 && $colspan > 0) { print ''; if ($balance > 0) { print ''; print ''; } else { print ''; print ''; } print ''; print ''; } + +// Clean total values to round them +if (!empty($totalarray['val']['totaldebit'])) { + $totalarray['val']['totaldebit'] = price2num($totalarray['val']['totaldebit'], 'MT'); +} +if (!empty($totalarray['val']['totalcredit'])) { + $totalarray['val']['totalcredit'] = price2num($totalarray['val']['totalcredit'], 'MT'); +} + + // 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 ''; +} $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook diff --git a/htdocs/accountancy/class/accountancycategory.class.php b/htdocs/accountancy/class/accountancycategory.class.php index 7ae48c749c2..d68f4e79f5e 100644 --- a/htdocs/accountancy/class/accountancycategory.class.php +++ b/htdocs/accountancy/class/accountancycategory.class.php @@ -353,7 +353,7 @@ class AccountancyCategory // extends CommonObject $sql .= " formula=".(isset($this->formula) ? "'".$this->db->escape($this->formula)."'" : "null").","; $sql .= " position=".(isset($this->position) ? $this->position : "null").","; $sql .= " fk_country=".(isset($this->fk_country) ? $this->fk_country : "null").","; - $sql .= " active=".(isset($this->active) ? $this->active : "null").""; + $sql .= " active=".(isset($this->active) ? $this->active : "null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); @@ -446,62 +446,12 @@ class AccountancyCategory // extends CommonObject } else { $this->error = "Error ".$this->db->lasterror(); $this->errors[] = $this->error; - dol_syslog(__METHOD__." ".implode(','.$this->errors), LOG_ERR); + dol_syslog(__METHOD__." ".implode(',', $this->errors), LOG_ERR); return -1; } } - /** - * Function to fill ->lines_cptbk with accounting account used (into bookkeeping) and not yet into a custom group - * - * @param int $id Id of custom group - * @return int <0 if KO, 0 if not found, >0 if OK - */ - /* - public function getCptBK($id) - { - global $conf; - - $sql = "SELECT DISTINCT t.numero_compte, t.label_operation, t.doc_ref"; - $sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as t"; - $sql .= " WHERE t.numero_compte NOT IN ("; // account not into a custom group - $sql .= " SELECT t.account_number"; - $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t"; - $sql .= " WHERE t.fk_accounting_category = ".((int) $id)." AND t.entity = ".$conf->entity.")"; - $sql .= " AND t.numero_compte IN ("; // account into current chart of account - $sql .= " SELECT DISTINCT aa.account_number"; - $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa"; - $sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; - $sql .= " AND asy.rowid = ".((int) $conf->global->CHARTOFACCOUNTS); - $sql .= " AND aa.active = 1"; - $sql .= " AND aa.entity = ".$conf->entity.")"; - $sql .= " GROUP BY t.numero_compte, t.label_operation, t.doc_ref"; - $sql .= " ORDER BY t.numero_compte"; - - $this->lines_cptbk = array(); - - dol_syslog(__METHOD__, LOG_DEBUG); - $resql = $this->db->query($sql); - if ($resql) { - $num = $this->db->num_rows($resql); - if ($num) { - while ($obj = $this->db->fetch_object($resql)) { - $this->lines_cptbk[] = $obj; - } - } - - return $num; - } else { - $this->error = "Error ".$this->db->lasterror(); - $this->errors[] = $this->error; - dol_syslog(__METHOD__." ".implode(','.$this->errors), LOG_ERR); - - return -1; - } - } - */ - /** * Function to fill ->lines_cptbk with accounting account (defined in chart of account) and not yet into a custom group * @@ -538,7 +488,7 @@ class AccountancyCategory // extends CommonObject } else { $this->error = "Error ".$this->db->lasterror(); $this->errors[] = $this->error; - dol_syslog(__METHOD__." ".implode(','.$this->errors), LOG_ERR); + dol_syslog(__METHOD__." ".implode(',', $this->errors), LOG_ERR); return -1; } @@ -655,60 +605,6 @@ class AccountancyCategory // extends CommonObject } } - /** - * Function to know all custom groupd from an accounting account - * - * @return array|integer Result in table (array), -1 if KO - */ - public function getCatsCpts() - { - global $mysoc, $conf; - - if (empty($mysoc->country_id)) { - dol_print_error('', 'Call to select_accounting_account with mysoc country not yet defined'); - exit(); - } - - $sql = "SELECT t.rowid, t.account_number, t.label as account_label, cat.code, cat.position, cat.label as name_cat, cat.sens "; - $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t, ".MAIN_DB_PREFIX."c_accounting_category as cat"; - $sql .= " WHERE t.fk_accounting_category IN ( SELECT c.rowid "; - $sql .= " FROM ".MAIN_DB_PREFIX."c_accounting_category as c"; - $sql .= " WHERE c.active = 1"; - $sql .= " AND c.entity = ".$conf->entity; - $sql .= " AND (c.fk_country = ".((int) $mysoc->country_id)." OR c.fk_country = 0)"; - $sql .= " AND cat.rowid = t.fk_accounting_category"; - $sql .= " AND t.entity = ".$conf->entity; - $sql .= " ORDER BY cat.position ASC"; - - $resql = $this->db->query($sql); - if ($resql) { - $i = 0; - $obj = ''; - $num = $this->db->num_rows($resql); - $data = array(); - if ($num) { - while ($obj = $this->db->fetch_object($resql)) { - $name_cat = $obj->name_cat; - $data[$name_cat][$i] = array( - 'id' => $obj->rowid, - 'code' => $obj->code, - 'position' => $obj->position, - 'account_number' => $obj->account_number, - 'account_label' => $obj->account_label, - 'sens' => $obj->sens - ); - $i++; - } - } - return $data; - } else { - $this->error = "Error ".$this->db->lasterror(); - dol_syslog(__METHOD__." ".$this->error, LOG_ERR); - - return -1; - } - } - /** * Function to show result of an accounting account from the ledger with a direction and a period * @@ -728,6 +624,22 @@ class AccountancyCategory // extends CommonObject $this->sdc = 0; $this->sdcpermonth = array(); + if (is_array($cpt)) { + $listofaccount = ''; + foreach ($cpt as $cptcursor) { + if (! is_null($cptcursor)) { + if ($listofaccount) { + $listofaccount .= ","; + } + $listofaccount .= "'".$cptcursor."'"; + } + } + if (empty($listofaccount)) { + // List of account is empty, so we do no try sql request, we can say result is empty. + return 0; + } + } + $sql = "SELECT SUM(t.debit) as debit, SUM(t.credit) as credit"; if (is_array($cpt)) { $sql .= ", t.numero_compte as accountancy_account"; @@ -736,14 +648,7 @@ class AccountancyCategory // extends CommonObject //if (in_array($this->db->type, array('mysql', 'mysqli'))) $sql.=' USE INDEX idx_accounting_bookkeeping_doc_date'; $sql .= " WHERE t.entity = ".$conf->entity; if (is_array($cpt)) { - $listofaccount = ''; - foreach ($cpt as $cptcursor) { - if ($listofaccount) { - $listofaccount .= ","; - } - $listofaccount .= "'".$cptcursor."'"; - } - $sql .= " AND t.numero_compte IN (".$this->db->sanitize($listofaccount).")"; + $sql .= " AND t.numero_compte IN (".$this->db->sanitize($listofaccount, 1).")"; } else { $sql .= " AND t.numero_compte = '".$this->db->escape($cpt)."'"; } @@ -759,22 +664,28 @@ class AccountancyCategory // extends CommonObject if (is_array($cpt)) { $sql .= " GROUP BY t.numero_compte"; } - //print $sql; $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); if ($num) { - $obj = $this->db->fetch_object($resql); - if ($sens == 1) { - $this->sdc = $obj->debit - $obj->credit; - } else { - $this->sdc = $obj->credit - $obj->debit; - } - if (is_array($cpt)) { - $this->sdcperaccount[$obj->accountancy_account] = $this->sdc; + $i = 0; + while ($i < $num) { + $obj = $this->db->fetch_object($resql); + if ($obj) { + if ($sens == 1) { + $this->sdc = $obj->debit - $obj->credit; + } else { + $this->sdc = $obj->credit - $obj->debit; + } + if (is_array($cpt)) { + $this->sdcperaccount[$obj->accountancy_account] = $this->sdc; + } + } + $i++; } } + return $num; } else { $this->error = "Error ".$this->db->lasterror(); @@ -784,12 +695,75 @@ class AccountancyCategory // extends CommonObject } } + /** + * Function to get an array of all active custom groups (llx_c_accunting_categories) with their accounts from the chart of account (ll_accounting_acount) + * + * @param int $catid Custom group ID + * @return array|integer Result in table (array), -1 if KO + * @see getCats(), getCptsCat() + */ + public function getCatsCpts($catid = 0) + { + global $mysoc, $conf; + + if (empty($mysoc->country_id)) { + $this->error = "Error ".$this->db->lasterror(); + dol_syslog(__METHOD__." ".$this->error, LOG_ERR); + return -1; + } + + $sql = "SELECT t.rowid, t.account_number, t.label as account_label,"; + $sql .= " cat.code, cat.position, cat.label as name_cat, cat.sens, cat.category_type, cat.formula"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t, ".MAIN_DB_PREFIX."c_accounting_category as cat"; + $sql .= " WHERE t.fk_accounting_category IN (SELECT c.rowid"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_accounting_category as c"; + $sql .= " WHERE c.active = 1"; + $sql .= " AND c.entity = ".$conf->entity; + $sql .= " AND (c.fk_country = ".((int) $mysoc->country_id)." OR c.fk_country = 0)"; + $sql .= " AND cat.rowid = t.fk_accounting_category"; + $sql .= " AND t.entity = ".$conf->entity; + if ($catid > 0) { + $sql .= " AND cat.rowid = ".((int) $catid); + } + $sql .= " ORDER BY cat.position ASC"; + + $resql = $this->db->query($sql); + if ($resql) { + $obj = ''; + $num = $this->db->num_rows($resql); + $data = array(); + if ($num) { + while ($obj = $this->db->fetch_object($resql)) { + $name_cat = $obj->name_cat; + $data[$name_cat][$obj->rowid] = array( + 'id' => $obj->rowid, + 'code' => $obj->code, + 'label' => $obj->label, + 'position' => $obj->position, + 'category_type' => $obj->category_type, + 'formula' => $obj->formula, + 'sens' => $obj->sens, + 'account_number' => $obj->account_number, + 'account_label' => $obj->account_label + ); + } + } + return $data; + } else { + $this->error = "Error ".$this->db->lasterror(); + dol_syslog(__METHOD__." ".$this->error, LOG_ERR); + return -1; + } + } + /** * Return list of custom groups. + * For list + detail of accounting account, see getCatsCpt() * * @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 + * @see getCatsCpts(), getCptsCat() */ public function getCats($categorytype = -1, $active = 1) { @@ -824,9 +798,10 @@ class AccountancyCategory // extends CommonObject 'rowid' => $obj->rowid, 'code' => $obj->code, 'label' => $obj->label, - 'formula' => $obj->formula, 'position' => $obj->position, 'category_type' => $obj->category_type, + 'formula' => $obj->formula, + 'sens' => $obj->sens, 'bc' => $obj->sens ); $i++; @@ -844,12 +819,15 @@ class AccountancyCategory // extends CommonObject /** - * Get all accounting account of a custom group (or a list of custom groups). + * Get all accounting account of a given custom group (or a list of custom groups). * You must choose between first parameter (personalized group) or the second (free criteria filter) * * @param int $cat_id Id if personalized accounting group/category - * @param string $predefinedgroupwhere Sql criteria filter to select accounting accounts. This value must not come from an input of a user. + * @param string $predefinedgroupwhere Sql criteria filter to select accounting accounts. This value must be sanitized and not come from an input of a user. + * Example: "pcg_type = 'EXPENSE' AND fk_pcg_version = 'xx'" + * Example: "fk_accounting_category = 99" * @return array|int Array of accounting accounts or -1 if error + * @see getCats(), getCatsCpts() */ public function getCptsCat($cat_id, $predefinedgroupwhere = '') { diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index 3c45315ffa9..d34f89d95d3 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -5,13 +5,15 @@ * Copyright (C) 2015 Florian Henry * Copyright (C) 2015 Raphaël Doursenaud * Copyright (C) 2016 Pierre-Henry Favre - * Copyright (C) 2016-2021 Alexandre Spangaro + * Copyright (C) 2016-2023 Alexandre Spangaro + * Copyright (C) 2022 Lionel Vessiller * Copyright (C) 2013-2017 Olivier Geffroy * Copyright (C) 2017 Elarifr. Ari Elbaz * Copyright (C) 2017-2019 Frédéric France * Copyright (C) 2017 André Schild * Copyright (C) 2020 Guillaume Alexandre * Copyright (C) 2022 Joachim Kueter + * Copyright (C) 2022 Progiseize * * This 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,6 +38,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'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; /** @@ -200,7 +203,7 @@ class AccountancyExport 'ACCOUNTING_EXPORT_FORMAT' => empty($conf->global->ACCOUNTING_EXPORT_FORMAT) ? 'txt' : $conf->global->ACCOUNTING_EXPORT_FORMAT, 'ACCOUNTING_EXPORT_SEPARATORCSV' => empty($conf->global->ACCOUNTING_EXPORT_SEPARATORCSV) ? ',' : $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV, 'ACCOUNTING_EXPORT_ENDLINE' => empty($conf->global->ACCOUNTING_EXPORT_ENDLINE) ? 1 : $conf->global->ACCOUNTING_EXPORT_ENDLINE, - 'ACCOUNTING_EXPORT_DATE' => empty($conf->global->ACCOUNTING_EXPORT_DATE) ? '%d%m%Y' : $conf->global->ACCOUNTING_EXPORT_DATE, + 'ACCOUNTING_EXPORT_DATE' => getDolGlobalString('ACCOUNTING_EXPORT_DATE', '%Y-%m-%d'), ), self::$EXPORT_TYPE_CEGID => array( 'label' => $langs->trans('Modelcsv_CEGID'), @@ -313,9 +316,10 @@ class AccountancyExport * * @param array $TData Array with data * @param int $formatexportset Id of export format - * @return void + * @param int $withAttachment [=0] Not add files or 1 to have attached in an archive (ex : Quadratus) + * @return int <0 if KO, >0 OK */ - public function export(&$TData, $formatexportset) + public function export(&$TData, $formatexportset, $withAttachment = 0) { global $conf, $langs; global $search_date_end; // Used into /accountancy/tpl/export_journal.tpl.php @@ -325,8 +329,44 @@ class AccountancyExport $type_export = 'general_ledger'; global $db; // The tpl file use $db + $completefilename = ''; + $exportFile = null; + $exportFileName = ''; + $exportFilePath = ''; + $archiveFileList = array(); + if ($withAttachment == 1) { + // PHP ZIP extension must be enabled + if (!extension_loaded('zip')) { + $langs->load('install'); + $this->errors[] = $langs->trans('ErrorPHPDoesNotSupport', 'ZIP'); + return -1; + } + } else { + $mimetype = $this->getMimeType($formatexportset); + top_httphead($mimetype, 1); + } include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php'; + if ($withAttachment == 1 && !empty($completefilename)) { + // create export file + $tmpDir = !empty($conf->accounting->multidir_temp[$conf->entity]) ? $conf->accounting->multidir_temp[$conf->entity] : $conf->accounting->dir_temp; + $exportFileFullName = $completefilename; + $exportFileBaseName = basename($exportFileFullName); + $exportFileName = pathinfo($exportFileBaseName, PATHINFO_FILENAME); + $exportFilePath = $tmpDir.'/'.$exportFileFullName; + $exportFile = fopen($exportFilePath, 'w'); + if (!$exportFile) { + $this->errors[] = $langs->trans('ErrorFileNotFound', $exportFilePath); + return -1; + } + $archiveFileList[0] = array( + 'path' => $exportFilePath, + 'name' => $exportFileFullName, + ); + // archive name and path + $archiveFullName = $exportFileName.'.zip'; + $archivePath = $tmpDir.'/'.$archiveFullName; + } switch ($formatexportset) { case self::$EXPORT_TYPE_CONFIGURABLE: @@ -345,7 +385,7 @@ class AccountancyExport $this->exportCiel($TData); break; case self::$EXPORT_TYPE_QUADRATUS: - $this->exportQuadratus($TData); + $archiveFileList = $this->exportQuadratus($TData, $exportFile, $archiveFileList, $withAttachment); break; case self::$EXPORT_TYPE_WINFIC: $this->exportWinfic($TData); @@ -399,6 +439,69 @@ class AccountancyExport } break; } + + // create and download export file or archive + if ($withAttachment == 1) { + $error = 0; + + // close export file + if ($exportFile) { + fclose($exportFile); + } + + if (!empty($archiveFullName) && !empty($archivePath) && !empty($archiveFileList)) { + // archive files + $downloadFileMimeType = 'application/zip'; + $downloadFileFullName = $archiveFullName; + $downloadFilePath = $archivePath; + + // create archive + $archive = new ZipArchive(); + $res = $archive->open($archivePath, ZipArchive::OVERWRITE | ZipArchive::CREATE); + if ($res !== true) { + $error++; + $this->errors[] = $langs->trans('ErrorFileNotFound', $archivePath); + } + if (!$error) { + // add files + foreach ($archiveFileList as $archiveFileArr) { + $res = $archive->addFile($archiveFileArr['path'], $archiveFileArr['name']); + if (!$res) { + $error++; + $this->errors[] = $langs->trans('ErrorArchiveAddFile', $archiveFileArr['name']); + break; + } + } + } + if (!$error) { + // close archive + $archive->close(); + } + } elseif (!empty($exportFileFullName) && !empty($exportFilePath)) { + // only one file to download + $downloadFileMimeType = 'text/csv'; + $downloadFileFullName = $exportFileFullName; + $downloadFilePath = $exportFilePath; + } + + if (!$error) { + // download export file + if (!empty($downloadFileMimeType) && !empty($downloadFileFullName) && !empty($downloadFilePath)) { + header('Content-Type: '.$downloadFileMimeType); + header('Content-Disposition: attachment; filename='.$downloadFileFullName); + header('Cache-Control: Public, must-revalidate'); + header('Pragma: public'); + header('Content-Length: '.dol_filesize($downloadFilePath)); + readfileLowMemory($downloadFilePath); + } + } + + if ($error) { + return -1; + } + } + + return 1; } @@ -444,14 +547,14 @@ class AccountancyExport print $date.$separator; print $line->piece_num.$separator; print length_accountg($line->numero_compte).$separator; - print ''.$separator; + print $separator; print $line->label_operation.$separator; print $date.$separator; if ($line->sens == 'D') { print price($line->debit).$separator; - print ''.$separator; + print $separator; } elseif ($line->sens == 'C') { - print ''.$separator; + print $separator; print price($line->credit).$separator; } print $line->doc_ref.$separator; @@ -579,15 +682,18 @@ class AccountancyExport /** * Export format : Quadratus (Format ASCII) * Format since 2015 compatible QuadraCOMPTA - * Last review for this format : 2021/09/13 Alexandre Spangaro (aspangaro@open-dsi.fr) + * Last review for this format : 2023/01/28 Alexandre Spangaro (aspangaro@open-dsi.fr) * * Help : https://docplayer.fr/20769649-Fichier-d-entree-ascii-dans-quadracompta.html * In QuadraCompta | Use menu : "Outils" > "Suivi des dossiers" > "Import ASCII(Compta)" * - * @param array $TData data - * @return void + * @param array $TData Data + * @param resource $exportFile [=null] File resource to export or print if null + * @param array $archiveFileList [=array()] Archive file list : array of ['path', 'name'] + * @param bool $withAttachment [=0] Not add files or 1 to have attached in an archive + * @return array Archive file list : array of ['path', 'name'] */ - public function exportQuadratus(&$TData) + public function exportQuadratus(&$TData, $exportFile = null, $archiveFileList = array(), $withAttachment = 0) { global $conf, $db; @@ -597,6 +703,14 @@ class AccountancyExport // $date_ecriture = dol_print_date(dol_now(), $conf->global->ACCOUNTING_EXPORT_DATE); // format must be ddmmyy // $date_ecriture = dol_print_date(time(), $conf->global->ACCOUNTING_EXPORT_DATE); // format must be ddmmyy foreach ($TData as $data) { + // Clean some data + $data->doc_ref = dol_string_unaccent($data->doc_ref); + $data->label_operation = dol_string_unaccent($data->label_operation); + $data->numero_compte = dol_string_unaccent($data->numero_compte); + $data->label_compte = dol_string_unaccent($data->label_compte); + $data->subledger_account = dol_string_unaccent($data->subledger_account); + $data->subledger_label = dol_string_unaccent($data->subledger_label); + $code_compta = $data->numero_compte; if (!empty($data->subledger_account)) { $code_compta = $data->subledger_account; @@ -628,16 +742,20 @@ class AccountancyExport if ($data->doc_type == 'customer_invoice') { $Tab['type_compte'] = 'C'; } elseif ($data->doc_type == 'supplier_invoice') { - $Tab['coll_compte'] = 'F'; + $Tab['type_compte'] = 'F'; } else { - $Tab['coll_compte'] = 'G'; + $Tab['type_compte'] = 'G'; } $Tab['filler3'] = str_repeat(' ', 235); $Tab['end_line'] = $end_line; - print implode($Tab); + if ($exportFile) { + fwrite($exportFile, implode($Tab)); + } else { + print implode($Tab); + } } $Tab = array(); @@ -651,7 +769,7 @@ class AccountancyExport //$Tab['date_ecriture'] = $date_ecriture; $Tab['date_ecriture'] = dol_print_date($data->doc_date, '%d%m%y'); $Tab['filler'] = ' '; - $Tab['libelle_ecriture'] = str_pad(self::trunc(dol_string_unaccent($data->doc_ref).' '.dol_string_unaccent($data->label_operation), 20), 20); + $Tab['libelle_ecriture'] = str_pad(self::trunc($data->doc_ref.' '.$data->label_operation, 20), 20); // Credit invoice - invert sens /* @@ -701,19 +819,70 @@ class AccountancyExport // TODO: we should filter more than only accent to avoid wrong line size // TODO: remove invoice number doc_ref in libelle, // TODO: we should offer an option for customer to build the libelle using invoice number / name / date in accounting software - //$Tab['libelle_ecriture2'] = str_pad(self::trunc(dol_string_unaccent($data->doc_ref) . ' ' . dol_string_unaccent($data->label_operation), 30), 30); - $Tab['libelle_ecriture2'] = str_pad(self::trunc(dol_string_unaccent($data->label_operation), 30), 30); + //$Tab['libelle_ecriture2'] = str_pad(self::trunc($data->doc_ref . ' ' . $data->label_operation, 30), 30); + $Tab['libelle_ecriture2'] = str_pad(self::trunc($data->label_operation, 30), 30); $Tab['codetva'] = str_repeat(' ', 2); // We need to keep the 10 lastest number of invoice doc_ref not the beginning part that is the unusefull almost same part // $Tab['num_piece3'] = str_pad(self::trunc($data->piece_num, 10), 10); $Tab['num_piece3'] = substr(self::trunc($data->doc_ref, 20), -10); - $Tab['filler4'] = str_repeat(' ', 73); + $Tab['reserved'] = str_repeat(' ', 10); // position 159 + $Tab['currency_amount'] = str_repeat(' ', 13); // position 169 + // get document file + $attachmentFileName = ''; + if ($withAttachment == 1) { + $attachmentFileKey = trim($data->piece_num); + if (!isset($archiveFileList[$attachmentFileKey])) { + $objectDirPath = ''; + $objectFileName = dol_sanitizeFileName($data->doc_ref); + if ($data->doc_type == 'customer_invoice') { + $objectDirPath = !empty($conf->facture->multidir_output[$conf->entity]) ? $conf->facture->multidir_output[$conf->entity] : $conf->facture->dir_output; + } elseif ($data->doc_type == 'expense_report') { + $objectDirPath = !empty($conf->expensereport->multidir_output[$conf->entity]) ? $conf->expensereport->multidir_output[$conf->entity] : $conf->factureexpensereport->dir_output; + } elseif ($data->doc_type == 'supplier_invoice') { + $objectDirPath = !empty($conf->fournisseur->facture->multidir_output[$conf->entity]) ? $conf->fournisseur->facture->multidir_output[$conf->entity] : $conf->fournisseur->facture->dir_output; + } + $arrayofinclusion = array(); + $arrayofinclusion[] = '^'.preg_quote($objectFileName, '/').'\.pdf$'; + $fileFoundList = dol_dir_list($objectDirPath.'/'.$objectFileName, 'files', 0, implode('|', $arrayofinclusion), '(\.meta|_preview.*\.png)$', 'date', SORT_DESC, 0, true); + if (!empty($fileFoundList)) { + $attachmentFileNameTrunc = str_pad(self::trunc($data->piece_num, 8), 8, '0', STR_PAD_LEFT); + foreach ($fileFoundList as $fileFound) { + if (strstr($fileFound['name'], $objectFileName)) { + $fileFoundPath = $objectDirPath.'/'.$objectFileName.'/'.$fileFound['name']; + if (file_exists($fileFoundPath)) { + $archiveFileList[$attachmentFileKey] = array( + 'path' => $fileFoundPath, + 'name' => $attachmentFileNameTrunc.'.pdf', + ); + break; + } + } + } + } + } + + if (isset($archiveFileList[$attachmentFileKey])) { + $attachmentFileName = $archiveFileList[$attachmentFileKey]['name']; + } + } + if (dol_strlen($attachmentFileName) == 12) { + $Tab['attachment'] = $attachmentFileName; // position 182 + } else { + $Tab['attachment'] = str_repeat(' ', 12); // position 182 + } + $Tab['filler4'] = str_repeat(' ', 38); $Tab['end_line'] = $end_line; - print implode($Tab); + if ($exportFile) { + fwrite($exportFile, implode($Tab)); + } else { + print implode($Tab); + } } + + return $archiveFileList; } /** diff --git a/htdocs/accountancy/class/accountingaccount.class.php b/htdocs/accountancy/class/accountingaccount.class.php index 94ee1ac6029..8e5f7690dd1 100644 --- a/htdocs/accountancy/class/accountingaccount.class.php +++ b/htdocs/accountancy/class/accountingaccount.class.php @@ -723,7 +723,7 @@ class AccountingAccount extends CommonObject } /** - * Return Suggest accounting accounts to bind + * Return a suggested account (from chart of accounts) to bind * * @param Societe $buyer Object buyer * @param Societe $seller Object seller @@ -733,6 +733,8 @@ class AccountingAccount extends CommonObject * @param array $accountingAccount Array of Accounting account * @param string $type Customer / Supplier * @return array|int Accounting accounts suggested or < 0 if technical error. + * 'suggestedaccountingaccountbydefaultfor'=>Will be used for the label to show on tooltip for account by default on any product + * 'suggestedaccountingaccountfor'=>Is the account suggested for this product */ public function getAccountingCodeToBind(Societe $buyer, Societe $seller, Product $product, $facture, $factureDet, $accountingAccount = array(), $type = '') { diff --git a/htdocs/accountancy/class/accountingjournal.class.php b/htdocs/accountancy/class/accountingjournal.class.php index 4accf66e154..f56932d4985 100644 --- a/htdocs/accountancy/class/accountingjournal.class.php +++ b/htdocs/accountancy/class/accountingjournal.class.php @@ -454,27 +454,12 @@ class AccountingJournal extends CommonObject } $sql = ""; - - // FIXME sql error with Mysql 5.7 - /*if ($in_bookkeeping == 'already' || $in_bookkeeping == 'notyet') { - $sql .= "WITH in_accounting_bookkeeping(fk_docdet) AS ("; - $sql .= " SELECT DISTINCT fk_docdet"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping"; - $sql .= " WHERE doc_type = 'asset'"; - $sql .= ") "; - }*/ - $sql .= "SELECT ad.fk_asset AS rowid, a.ref AS asset_ref, a.label AS asset_label, a.acquisition_value_ht AS asset_acquisition_value_ht"; $sql .= ", a.disposal_date AS asset_disposal_date, a.disposal_amount_ht AS asset_disposal_amount_ht, a.disposal_subject_to_vat AS asset_disposal_subject_to_vat"; $sql .= ", ad.rowid AS depreciation_id, ad.depreciation_mode, ad.ref AS depreciation_ref, ad.depreciation_date, ad.depreciation_ht, ad.accountancy_code_debit, ad.accountancy_code_credit"; $sql .= " FROM " . MAIN_DB_PREFIX . "asset_depreciation as ad"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "asset as a ON a.rowid = ad.fk_asset"; - // FIXME sql error with Mysql 5.7 - /*if ($in_bookkeeping == 'already' || $in_bookkeeping == 'notyet') { - $sql .= " LEFT JOIN in_accounting_bookkeeping as iab ON iab.fk_docdet = ad.rowid"; - }*/ $sql .= " WHERE a.entity IN (" . getEntity('asset', 0) . ')'; // We don't share object for accountancy, we use source object sharing - // Compatibility with Mysql 5.7 if ($in_bookkeeping == 'already') { $sql .= " AND EXISTS (SELECT iab.fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping AS iab WHERE iab.fk_docdet = ad.rowid AND doc_type = 'asset')"; } elseif ($in_bookkeeping == 'notyet') { @@ -488,11 +473,6 @@ class AccountingJournal extends CommonObject if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) { $sql .= " AND ad.depreciation_date >= '" . $this->db->idate($conf->global->ACCOUNTING_DATE_START_BINDING) . "'"; } - // Already in bookkeeping or not - // FIXME sql error with Mysql 5.7 - /*if ($in_bookkeeping == 'already' || $in_bookkeeping == 'notyet') { - $sql .= " AND iab.fk_docdet IS" . ($in_bookkeeping == 'already' ? " NOT" : "") . " NULL"; - }*/ $sql .= " ORDER BY ad.depreciation_date"; dol_syslog(__METHOD__, LOG_DEBUG); @@ -755,7 +735,7 @@ class AccountingJournal extends CommonObject } } - $journal_data[$pre_data_id] = $element; + $journal_data[(int) $pre_data_id] = $element; } unset($pre_data); diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 95ba38d20bb..897f60e8aaa 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -817,56 +817,61 @@ class BookKeeping extends CommonObject /** - * Load object in memory from the database + * Load object in memory from the database in ->lines. Or just make a simple count if $countonly=1. * - * @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) - * @param int $option option (0: general account or 1: subaccount) - * - * @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) + * @param int $option option (0: general account or 1: subaccount) + * @param int $countonly Do not fill the $object->lines, return only the count. + * @return int <0 if KO, Number of lines if OK */ - public function fetchAllByAccount($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND', $option = 0) + public function fetchAllByAccount($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND', $option = 0, $countonly = 0) { global $conf; dol_syslog(__METHOD__, LOG_DEBUG); $this->lines = array(); + $num = 0; $sql = 'SELECT'; - $sql .= ' t.rowid,'; - $sql .= " t.doc_date,"; - $sql .= " t.doc_type,"; - $sql .= " t.doc_ref,"; - $sql .= " t.fk_doc,"; - $sql .= " t.fk_docdet,"; - $sql .= " t.thirdparty_code,"; - $sql .= " t.subledger_account,"; - $sql .= " t.subledger_label,"; - $sql .= " t.numero_compte,"; - $sql .= " t.label_compte,"; - $sql .= " t.label_operation,"; - $sql .= " t.debit,"; - $sql .= " t.credit,"; - $sql .= " t.montant as amount,"; - $sql .= " t.sens,"; - $sql .= " t.multicurrency_amount,"; - $sql .= " t.multicurrency_code,"; - $sql .= " t.lettering_code,"; - $sql .= " t.date_lettering,"; - $sql .= " t.fk_user_author,"; - $sql .= " t.import_key,"; - $sql .= " t.code_journal,"; - $sql .= " t.journal_label,"; - $sql .= " t.piece_num,"; - $sql .= " t.date_creation,"; - $sql .= " t.date_export,"; - $sql .= " t.date_validated as date_validation,"; - $sql .= " t.import_key"; + if ($countonly) { + $sql .= ' COUNT(t.rowid) as nb'; + } else { + $sql .= ' t.rowid,'; + $sql .= " t.doc_date,"; + $sql .= " t.doc_type,"; + $sql .= " t.doc_ref,"; + $sql .= " t.fk_doc,"; + $sql .= " t.fk_docdet,"; + $sql .= " t.thirdparty_code,"; + $sql .= " t.subledger_account,"; + $sql .= " t.subledger_label,"; + $sql .= " t.numero_compte,"; + $sql .= " t.label_compte,"; + $sql .= " t.label_operation,"; + $sql .= " t.debit,"; + $sql .= " t.credit,"; + $sql .= " t.montant as amount,"; + $sql .= " t.sens,"; + $sql .= " t.multicurrency_amount,"; + $sql .= " t.multicurrency_code,"; + $sql .= " t.lettering_code,"; + $sql .= " t.date_lettering,"; + $sql .= " t.fk_user_author,"; + $sql .= " t.import_key,"; + $sql .= " t.code_journal,"; + $sql .= " t.journal_label,"; + $sql .= " t.piece_num,"; + $sql .= " t.date_creation,"; + $sql .= " t.date_export,"; + $sql .= " t.date_validated as date_validation,"; + $sql .= " t.import_key"; + } // Manage filter $sqlwhere = array(); if (count($filter) > 0) { @@ -880,7 +885,7 @@ class BookKeeping extends CommonObject } elseif ($key == 't.fk_doc' || $key == 't.fk_docdet' || $key == 't.piece_num') { $sqlwhere[] = $key.'='.$value; } elseif ($key == 't.subledger_account' || $key == 't.numero_compte') { - $sqlwhere[] = $key.' LIKE \''.$this->db->escape($value).'%\''; + $sqlwhere[] = $key.' LIKE \''.$this->db->escapeforlike($this->db->escape($value)).'%\''; } elseif ($key == 't.date_creation>=' || $key == 't.date_creation<=') { $sqlwhere[] = $key.'\''.$this->db->idate($value).'\''; } elseif ($key == 't.date_export>=' || $key == 't.date_export<=') { @@ -897,18 +902,19 @@ class BookKeeping extends CommonObject } else { $sqlwhere[] = natural_search("t.code_journal", $value, 3, 1); } + } elseif ($key == 't.search_accounting_code_in' && !empty($value)) { + $sqlwhere[] = 't.numero_compte IN ('.$this->db->sanitize($value, 1).')'; } else { $sqlwhere[] = natural_search($key, $value, 0, 1); } } } $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; - $sql .= ' WHERE 1 = 1'; - $sql .= " AND entity = " . ((int) $conf->entity); // Do not use getEntity for accounting features + $sql .= ' WHERE entity = ' . ((int) $conf->entity); // Do not use getEntity for accounting features if (count($sqlwhere) > 0) { $sql .= " AND ".implode(" ".$filtermode." ", $sqlwhere); } - // Affichage par compte comptable + // Filter by ledger account or subledger account if (!empty($option)) { $sql .= " AND t.subledger_account IS NOT NULL"; $sql .= " AND t.subledger_account <> ''"; @@ -919,54 +925,63 @@ class BookKeeping extends CommonObject $sortorder = 'ASC'.($sortorder ? ','.$sortorder : ''); } - $sql .= $this->db->order($sortfield, $sortorder); - if (!empty($limit)) { - $sql .= $this->db->plimit($limit + 1, $offset); + if (!$countonly) { + $sql .= $this->db->order($sortfield, $sortorder); + if (!empty($limit)) { + $sql .= $this->db->plimit($limit + 1, $offset); + } } $resql = $this->db->query($sql); if ($resql) { - $num = $this->db->num_rows($resql); + if ($countonly) { + $obj = $this->db->fetch_object($resql); + if ($obj) { + $num = $obj->nb; + } + } else { + $num = $this->db->num_rows($resql); - $i = 0; - while (($obj = $this->db->fetch_object($resql)) && (empty($limit) || $i < min($limit, $num))) { - $line = new BookKeepingLine(); + $i = 0; + while (($obj = $this->db->fetch_object($resql)) && (empty($limit) || $i < min($limit, $num))) { + $line = new BookKeepingLine(); - $line->id = $obj->rowid; + $line->id = $obj->rowid; - $line->doc_date = $this->db->jdate($obj->doc_date); - $line->doc_type = $obj->doc_type; - $line->doc_ref = $obj->doc_ref; - $line->fk_doc = $obj->fk_doc; - $line->fk_docdet = $obj->fk_docdet; - $line->thirdparty_code = $obj->thirdparty_code; - $line->subledger_account = $obj->subledger_account; - $line->subledger_label = $obj->subledger_label; - $line->numero_compte = $obj->numero_compte; - $line->label_compte = $obj->label_compte; - $line->label_operation = $obj->label_operation; - $line->debit = $obj->debit; - $line->credit = $obj->credit; - $line->montant = $obj->amount; // deprecated - $line->amount = $obj->amount; - $line->sens = $obj->sens; - $line->multicurrency_amount = $obj->multicurrency_amount; - $line->multicurrency_code = $obj->multicurrency_code; - $line->lettering_code = $obj->lettering_code; - $line->date_lettering = $obj->date_lettering; - $line->fk_user_author = $obj->fk_user_author; - $line->import_key = $obj->import_key; - $line->code_journal = $obj->code_journal; - $line->journal_label = $obj->journal_label; - $line->piece_num = $obj->piece_num; - $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; + $line->doc_date = $this->db->jdate($obj->doc_date); + $line->doc_type = $obj->doc_type; + $line->doc_ref = $obj->doc_ref; + $line->fk_doc = $obj->fk_doc; + $line->fk_docdet = $obj->fk_docdet; + $line->thirdparty_code = $obj->thirdparty_code; + $line->subledger_account = $obj->subledger_account; + $line->subledger_label = $obj->subledger_label; + $line->numero_compte = $obj->numero_compte; + $line->label_compte = $obj->label_compte; + $line->label_operation = $obj->label_operation; + $line->debit = $obj->debit; + $line->credit = $obj->credit; + $line->montant = $obj->amount; // deprecated + $line->amount = $obj->amount; + $line->sens = $obj->sens; + $line->multicurrency_amount = $obj->multicurrency_amount; + $line->multicurrency_code = $obj->multicurrency_code; + $line->lettering_code = $obj->lettering_code; + $line->date_lettering = $obj->date_lettering; + $line->fk_user_author = $obj->fk_user_author; + $line->import_key = $obj->import_key; + $line->code_journal = $obj->code_journal; + $line->journal_label = $obj->journal_label; + $line->piece_num = $obj->piece_num; + $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; + $this->lines[] = $line; - $i++; + $i++; + } } $this->db->free($resql); @@ -1139,9 +1154,10 @@ class BookKeeping extends CommonObject * @param int $offset offset limit * @param array $filter filter array * @param string $filtermode filter mode (AND or OR) + * @param int $option option (0: general account or 1: subaccount) * @return int <0 if KO, >0 if OK */ - public function fetchAllBalance($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') + public function fetchAllBalance($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND', $option = 0) { global $conf; @@ -1151,6 +1167,11 @@ class BookKeeping extends CommonObject $sql = 'SELECT'; $sql .= " t.numero_compte,"; + $sql .= " t.label_compte,"; + if (!empty($option)) { + $sql .= " t.subledger_account,"; + $sql .= " t.subledger_label,"; + } $sql .= " SUM(t.debit) as debit,"; $sql .= " SUM(t.credit) as credit"; $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; @@ -1176,6 +1197,8 @@ class BookKeeping extends CommonObject } else { $sqlwhere[] = natural_search("t.code_journal", $value, 3, 1); } + } elseif ($key == 't.reconciled_option') { + $sqlwhere[] = 't.lettering_code IS NULL'; } else { $sqlwhere[] = $key." LIKE '%".$this->db->escape($value)."%'"; } @@ -1186,7 +1209,17 @@ class BookKeeping extends CommonObject $sql .= " AND ".implode(" ".$filtermode." ", $sqlwhere); } - $sql .= ' GROUP BY t.numero_compte'; + if (!empty($option)) { + $sql .= ' AND t.subledger_account IS NOT NULL'; + $sql .= ' AND t.subledger_account != ""'; + $sql .= ' GROUP BY t.numero_compte, t.label_compte, t.subledger_account, t.subledger_label'; + $sortfield = 't.subledger_account'.($sortfield ? ','.$sortfield : ''); + $sortorder = 'ASC'.($sortfield ? ','.$sortfield : ''); + } else { + $sql .= ' GROUP BY t.numero_compte, t.label_compte'; + $sortfield = 't.numero_compte'.($sortfield ? ','.$sortfield : ''); + $sortorder = 'ASC'.($sortorder ? ','.$sortorder : ''); + } if (!empty($sortfield)) { $sql .= $this->db->order($sortfield, $sortorder); @@ -1204,6 +1237,9 @@ class BookKeeping extends CommonObject $line = new BookKeepingLine(); $line->numero_compte = $obj->numero_compte; + $line->label_compte = $obj->label_compte; + $line->subledger_account = $obj->subledger_account; + $line->subledger_label = $obj->subledger_label; $line->debit = $obj->debit; $line->credit = $obj->credit; diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index 393629ae505..5f603a973c2 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -121,26 +121,12 @@ if (($action == 'clean' || $action == 'validatehistory') && $user->hasRight('acc if ($action == 'validatehistory') { $error = 0; $nbbinddone = 0; + $nbbindfailed = 0; $notpossible = 0; $db->begin(); // Now make the binding. Bind automatically only for product with a dedicated account that exists into chart of account, others need a manual bind - /*if ($db->type == 'pgsql') { - $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet"; - $sql1 .= " SET fk_code_ventilation = accnt.rowid"; - $sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; - $sql1 .= " WHERE " . MAIN_DB_PREFIX . "facturedet.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . ((int) $conf->global->CHARTOFACCOUNTS).' AND accnt.entity = '.((int) $conf->entity); - $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number"; - $sql1 .= " AND " . MAIN_DB_PREFIX . "facturedet.fk_code_ventilation = 0"; - } else { - $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; - $sql1 .= " SET fk_code_ventilation = accnt.rowid"; - $sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . ((int) $conf->global->CHARTOFACCOUNTS).' AND accnt.entity = '.((int) $conf->entity); - $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number"; - $sql1 .= " AND fd.fk_code_ventilation = 0"; - }*/ - // Customer Invoice lines (must be same request than into page list.php for manual binding) $sql = "SELECT f.rowid as facid, f.ref as ref, f.datef, f.type as ftype, f.fk_facture_source,"; $sql .= " l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,"; @@ -281,12 +267,14 @@ if ($action == 'validatehistory') { if (!$resqlupdate) { $error++; setEventMessages($db->lasterror(), null, 'errors'); + $nbbindfailed++; break; } else { $nbbinddone++; } } else { $notpossible++; + $nbbindfailed++; } $i++; @@ -300,7 +288,10 @@ if ($action == 'validatehistory') { $db->rollback(); } else { $db->commit(); - setEventMessages($langs->trans('AutomaticBindingDone', $nbbinddone, $notpossible), null, 'mesgs'); + setEventMessages($langs->trans('AutomaticBindingDone', $nbbinddone, $notpossible), null, ($notpossible ? 'warnings' : 'mesgs')); + if ($nbbindfailed) { + setEventMessages($langs->trans('DoManualBindingForFailedRecord', $nbbindfailed), null, 'warnings'); + } } } @@ -324,7 +315,7 @@ print '
'; $y = $year_current; -$buttonbind = ''.$langs->trans("ValidateHistory").''; +$buttonbind = ''.img_picto($langs->trans("ValidateHistory"), 'link', 'class="pictofixedwidth fa-color-unset"').$langs->trans("ValidateHistory").''; print_barre_liste(img_picto('', 'unlink', 'class="paddingright fa-color-unset"').$langs->trans("OverviewOfAmountOfLinesNotBound"), '', '', '', '', '', '', -1, '', '', 0, $buttonbind, '', 0, 1, 1); //print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, ''); @@ -405,7 +396,17 @@ if ($resql) { print ''; print '
'; } print ''; @@ -558,7 +565,7 @@ print "
'.$langs->trans("NoRecordFound").'
' . $langs->trans("TotalForAccount") . ' ' . length_accountg($displayed_account_number) . ':'.price($sous_total_debit).''.price($sous_total_credit).''.price(price2num($sous_total_debit, 'MT')).''.price(price2num($sous_total_credit, 'MT')).'
'.$langs->trans("Balance").':'; - print price($sous_total_debit - $sous_total_credit); + print price(price2num($sous_total_debit - $sous_total_credit, 'MT')); print ''; - print price($sous_total_credit - $sous_total_debit); + print price(price2num($sous_total_credit - $sous_total_debit, 'MT')); print ''.$journaltoshow.''.$journaltoshow.''.($line->debit ? price($line->debit) : '').''.($line->debit != 0 ? price($line->debit) : '').''.($line->credit ? price($line->credit) : '').''.($line->credit != 0 ? price($line->credit) : '').'
'.$langs->trans("TotalForAccount").' '.$accountg.':'.price($sous_total_debit).''.price($sous_total_credit).''.price(price2num($sous_total_debit, 'MT')).''.price(price2num($sous_total_credit, 'MT')).'
'.$langs->trans("Balance").':'; - print price($sous_total_debit - $sous_total_credit); + print price(price2num($sous_total_debit - $sous_total_credit, 'MT')); print ''; - print price($sous_total_credit - $sous_total_debit); + print price(price2num($sous_total_credit - $sous_total_debit, 'MT')); print '
'.$langs->trans("NoRecordFound").'
'; if ($row[0] == 'tobind') { - print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.((int) $y), $langs->transnoentitiesnoconv("ToBind")); + $startmonth = ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1); + if ($startmonth > 12) { + $startmonth -= 12; + } + $startyear = ($startmonth < ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1)) ? $y + 1 : $y; + $endmonth = ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) + 11; + if ($endmonth > 12) { + $endmonth -= 12; + } + $endyear = ($endmonth < ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1)) ? $y + 1 : $y; + print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_date_startday=1&search_date_startmonth='.((int) $startmonth).'&search_date_startyear='.((int) $startyear).'&search_date_endday=&search_date_endmonth='.((int) $endmonth).'&search_date_endyear='.((int) $endyear), $langs->transnoentitiesnoconv("ToBind")); } else { print $row[1]; } @@ -420,6 +421,12 @@ if ($resql) { print ''; print price($row[$i]); + // Add link to make binding + if (!empty(price2num($row[$i]))) { + print ''; + print img_picto($langs->trans("ValidateHistory").' ('.$langs->trans('Month'.str_pad($cursormonth, 2, '0', STR_PAD_LEFT)).' '.$cursoryear.')', 'link', 'class="marginleft2"'); + print ''; + } print ''.price($row[14]).'
\n"; print '
'; -if ($conf->global->MAIN_FEATURES_LEVEL > 0) { // This part of code looks strange. Why showing a report that should rely on result of this step ? +if (getDolGlobalString('SHOW_TOTAL_OF_PREVIOUS_LISTS_IN_LIN_PAGE')) { // This part of code looks strange. Why showing a report that should rely on result of this step ? print '
'; print '
'; diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index 65d7ee0bbeb..b8df8890a01 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -189,7 +189,7 @@ print ''."\n"; diff --git a/htdocs/admin/mrp.php b/htdocs/admin/mrp.php index 36a82e965f4..21fff1c45e6 100644 --- a/htdocs/admin/mrp.php +++ b/htdocs/admin/mrp.php @@ -52,10 +52,10 @@ $type = 'mrp'; include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconstmrp = GETPOST('maskconstMo', 'alpha'); + $maskconstmrp = GETPOST('maskconstMo', 'aZ09'); $maskmrp = GETPOST('maskMo', 'alpha'); - if ($maskconstmrp) { + if ($maskconstmrp && preg_match('/_MASK$/', $maskconstmrp)) { $res = dolibarr_set_const($db, $maskconstmrp, $maskmrp, 'chaine', 0, '', $conf->entity); } diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index 1cf838c08cb..5945ebfb5d5 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -134,7 +134,8 @@ if ($action == 'add_currency') { dolibarr_set_const($db, 'MULTICURRENCY_APP_SOURCE', GETPOST('MULTICURRENCY_APP_SOURCE', 'alpha')); //dolibarr_set_const($db, 'MULTICURRENCY_ALTERNATE_SOURCE', GETPOST('MULTICURRENCY_ALTERNATE_SOURCE', 'alpha')); } else { - $result = MultiCurrency::syncRates($conf->global->MULTICURRENCY_APP_ID); + $multiurrency = new MultiCurrency($db); + $result = $multiurrency->syncRates(getDolGlobalString('MULTICURRENCY_APP_ID')); if ($result > 0) { setEventMessages($langs->trans("CurrencyRateSyncSucceed"), null, "mesgs"); } diff --git a/htdocs/admin/oauth.php b/htdocs/admin/oauth.php index 64968b1a516..8c082d674db 100644 --- a/htdocs/admin/oauth.php +++ b/htdocs/admin/oauth.php @@ -48,6 +48,8 @@ $action = GETPOST('action', 'aZ09'); $provider = GETPOST('provider', 'aZ09'); $label = GETPOST('label', 'aZ09'); +$servicetoeditname = GETPOST('servicetoeditname', 'aZ09'); + $error = 0; @@ -72,15 +74,24 @@ 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++; + $newconstvalue = $constvalue; + if (GETPOSTISSET($constvalue.'_NAME')) { + $newconstvalue = preg_replace('/-.*$/', '', $constvalue).'-'.GETPOST($constvalue.'_NAME'); + } + + if (GETPOSTISSET($constvalue.'_ID')) { + if (!dolibarr_set_const($db, $newconstvalue.'_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.'_SECRET')) { + if (!dolibarr_set_const($db, $newconstvalue.'_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)) { + if (!dolibarr_set_const($db, $newconstvalue.'_URLAUTHORIZE', GETPOST($constvalue.'_URLAUTHORIZE'), 'chaine', 0, '', $conf->entity)) { $error++; } } @@ -90,14 +101,46 @@ if ($action == 'update') { } else { $scopestring = GETPOST($constvalue.'_SCOPE'); } - if (!dolibarr_set_const($db, $constvalue.'_SCOPE', $scopestring, 'chaine', 0, '', $conf->entity)) { + if (!dolibarr_set_const($db, $newconstvalue.'_SCOPE', $scopestring, 'chaine', 0, '', $conf->entity)) { $error++; } - } else { - if (!dolibarr_set_const($db, $constvalue.'_SCOPE', '', 'chaine', 0, '', $conf->entity)) { + } elseif ($newconstvalue !== $constvalue) { + if (!dolibarr_set_const($db, $newconstvalue.'_SCOPE', '', 'chaine', 0, '', $conf->entity)) { $error++; } } + + // If name changed, we have to delete old const and proceed few other changes + if ($constvalue !== $newconstvalue) { + dolibarr_del_const($db, $constvalue.'_ID', $conf->entity); + dolibarr_del_const($db, $constvalue.'_SECRET', $conf->entity); + dolibarr_del_const($db, $constvalue.'_URLAUTHORIZE', $conf->entity); + dolibarr_del_const($db, $constvalue.'_SCOPE', $conf->entity); + + // Update name of token + $oldname = preg_replace('/^OAUTH_/', '', $constvalue); + $oldprovider = ucfirst(strtolower(preg_replace('/-.*$/', '', $oldname))); + $oldlabel = preg_replace('/^.*-/', '', $oldname); + $newlabel = preg_replace('/^.*-/', '', $newconstvalue); + + + $sql = "UPDATE ".MAIN_DB_PREFIX."oauth_token"; + $sql.= " SET service = '".$db->escape($oldprovider."-".$newlabel)."'"; + $sql.= " WHERE service = '".$db->escape($oldprovider."-".$oldlabel)."'"; + + + $resql = $db->query($sql); + if (!$resql) { + $error++; + } + + // Update const where the token was used, might not be exhaustive + if (getDolGlobalString('MAIN_MAIL_SMTPS_OAUTH_SERVICE') == $oldname) { + if (!dolibarr_set_const($db, 'MAIN_MAIL_SMTPS_OAUTH_SERVICE', strtoupper($oldprovider).'-'.$newlabel, 'chaine', 0, '', $conf->entity)) { + $error++; + } + } + } } } @@ -270,11 +313,16 @@ if (count($listinsetup) > 0) { } else { print $label; } - if ($keyforprovider) { + if ($servicetoeditname == $key[0]) { + print ' ()'; + } elseif ($keyforprovider) { print ' ('.$keyforprovider.')'; } else { print ' ('.$langs->trans("NoName").')'; } + if (!($servicetoeditname == $key[0])) { + print ''.img_edit($langs->transnoentitiesnoconv('Edit'), 1).''; + } print ''; print ''; if (!empty($supportedoauth2array[$keyforsupportedoauth2array]['urlforcredentials'])) { @@ -285,7 +333,7 @@ if (count($listinsetup) > 0) { // Delete print ''; $label = preg_replace('/_NAME$/', '', $keyforsupportedoauth2array); - print ''; + print ''; print img_picto('', 'delete'); print ''; @@ -298,7 +346,8 @@ if (count($listinsetup) > 0) { $redirect_uri = $urlwithroot.'/core/modules/oauth/'.$supportedoauth2array[$keyforsupportedoauth2array]['callbackfile'].'_oauthcallback.php'; print ''; print ''.$langs->trans("UseTheFollowingUrlAsRedirectURI").''; - print ''; + print ''; + print ajax_autoselect('uri'.$keyforsupportedoauth2array.$keyforprovider); print ''; print ''; print ''; @@ -306,7 +355,7 @@ if (count($listinsetup) > 0) { if ($keyforsupportedoauth2array == 'OAUTH_OTHER_NAME') { print ''; print ''.$langs->trans("URLOfServiceForAuthorization").''; - print ''; + print ''; print ''; print ''; print ''; diff --git a/htdocs/admin/oauthlogintokens.php b/htdocs/admin/oauthlogintokens.php index f798995d525..9a0532880cd 100644 --- a/htdocs/admin/oauthlogintokens.php +++ b/htdocs/admin/oauthlogintokens.php @@ -213,7 +213,13 @@ if ($mode == 'setup' && $user->admin) { $urltocheckperms = ''; } - $urltorenew .= '&keyforprovider='.urlencode($keyforprovider); + if ($urltorenew) { + $urltorenew .= '&keyforprovider='.urlencode($keyforprovider); + } + if ($urltodelete) { + $urltodelete .= '&keyforprovider='.urlencode($keyforprovider); + } + // Show value of token $tokenobj = null; diff --git a/htdocs/admin/payment.php b/htdocs/admin/payment.php index 59da712b266..7b0d0acbf06 100644 --- a/htdocs/admin/payment.php +++ b/htdocs/admin/payment.php @@ -51,9 +51,9 @@ if (empty($conf->global->PAYMENT_ADDON)) { */ if ($action == 'updateMask') { - $maskconstpayment = GETPOST('maskconstpayment', 'alpha'); + $maskconstpayment = GETPOST('maskconstpayment', 'aZ09'); $maskpayment = GETPOST('maskpayment', 'alpha'); - if ($maskconstpayment) { + if ($maskconstpayment && preg_match('/_MASK$/', $maskconstpayment)) { $res = dolibarr_set_const($db, $maskconstpayment, $maskpayment, 'chaine', 0, '', $conf->entity); } diff --git a/htdocs/admin/pdf.php b/htdocs/admin/pdf.php index d8cc8d554a2..f5f87877ab7 100644 --- a/htdocs/admin/pdf.php +++ b/htdocs/admin/pdf.php @@ -35,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('admin', 'languages', 'other', 'companies', 'products', 'members', 'stocks', 'Trips')); +$langs->loadLangs(array('admin', 'companies', 'languages', 'members', 'other', 'products', 'stocks', 'trips')); if (!$user->admin) { accessforbidden(); @@ -276,7 +276,7 @@ print load_fiche_titre($langs->trans("DictionaryPaperFormat"), '', ''); print '
'; print ''; -print ''; +print ''; $selected = (isset($conf->global->MAIN_PDF_FORMAT) ? $conf->global->MAIN_PDF_FORMAT : ''); if (empty($selected)) { diff --git a/htdocs/admin/pdf_other.php b/htdocs/admin/pdf_other.php index e5c76a36269..933486b0577 100644 --- a/htdocs/admin/pdf_other.php +++ b/htdocs/admin/pdf_other.php @@ -5,6 +5,7 @@ * Copyright (C) 2012-2107 Juanjo Menent * Copyright (C) 2019 Ferran Marcet * Copyright (C) 2021-2022 Anthony Berton + * Copyright (C) 2022 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,7 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('admin', 'languages', 'other', 'companies', 'products', 'members', 'stocks', 'Trips')); +$langs->loadLangs(array('admin', 'bills', 'companies', 'languages', 'members', 'other', 'products', 'propal', 'receptions', 'stocks', 'trips')); if (!$user->admin) { accessforbidden(); @@ -69,6 +70,9 @@ if ($action == 'update') { dolibarr_set_const($db, "INVOICE_ADD_SWISS_QR_CODE", GETPOST("INVOICE_ADD_SWISS_QR_CODE", 'int'), 'chaine', 0, '', $conf->entity); dolibarr_del_const($db, "INVOICE_ADD_ZATCA_QR_CODE", $conf->entity); } + if (GETPOSTISSET('INVOICE_CATEGORY_OF_OPERATION')) { + dolibarr_set_const($db, "INVOICE_CATEGORY_OF_OPERATION", GETPOST("INVOICE_CATEGORY_OF_OPERATION", 'int'), 'chaine', 0, '', $conf->entity); + } if (GETPOSTISSET('INVOICE_SHOW_SHIPPING_ADDRESS')) { dolibarr_set_const($db, "INVOICE_SHOW_SHIPPING_ADDRESS", GETPOST("INVOICE_SHOW_SHIPPING_ADDRESS", 'int'), 'chaine', 0, '', $conf->entity); dolibarr_del_const($db, "INVOICE_SHOW_SHIPPING_ADDRESS", $conf->entity); @@ -135,7 +139,7 @@ if (isModEnabled('facture')) { print '
'; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Parameters").''.$langs->trans("Value").'
'; - print ''; + print ''; print ''; + // Mention category of operations + // French Decret n°2099-1299 2022-10-07 print ''; + + print ''; print ''; @@ -2104,7 +2104,7 @@ if ($id > 0) { $("#select_actioncommsendmodel_mail").closest("tr").show(); } else { $("#select_actioncommsendmodel_mail").closest("tr").hide(); - }; + } }); })'; @@ -2191,7 +2191,7 @@ if ($id > 0) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -2425,7 +2425,7 @@ if ($id > 0) { $tmpuserstatic = new User($db); foreach ($object->reminders as $actioncommreminderid => $actioncommreminder) { - print $TRemindTypes[$actioncommreminder->typeremind]; + print $TRemindTypes[$actioncommreminder->typeremind]['label']; if ($actioncommreminder->fk_user > 0) { $tmpuserstatic->fetch($actioncommreminder->fk_user); print ' ('.$tmpuserstatic->getNomUrl(0, '', 0, 0, 16).')'; @@ -2466,14 +2466,14 @@ if ($id > 0) { $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { if ($action != 'edit') { - if ($user->rights->agenda->allactions->create || + if ($user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create)) { print ''; } else { print ''; } - if ($user->rights->agenda->allactions->create || + if ($user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create)) { print ''; } else { diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index bc825ca3992..af98356ab18 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -225,22 +225,22 @@ class ActionComm extends CommonObject public $transparency; /** - * @var int (0 By default) + * @var int (0 By default) */ public $priority; /** - * @var int[] Array of user ids + * @var int[] Array of user ids */ public $userassigned = array(); /** - * @var int Id of user owner = fk_user_action into table + * @var int Id of user owner = fk_user_action into table */ public $userownerid; /** - * @var int Id of user that has done the event. Used only if AGENDA_ENABLE_DONEBY is set. + * @var int Id of user that has done the event. Used only if AGENDA_ENABLE_DONEBY is set. */ public $userdoneid; @@ -429,7 +429,7 @@ class ActionComm extends CommonObject $now = dol_now(); // Check parameters - if (!isset($this->userownerid) || $this->userownerid === '') { // $this->userownerid may be 0 (anonymous event) of > 0 + if (!isset($this->userownerid) || (string) $this->userownerid === '') { // $this->userownerid may be 0 (anonymous event) or > 0 dol_syslog("You tried to create an event but mandatory property ownerid was not defined", LOG_WARNING); $this->errors[] = 'ErrorActionCommPropertyUserowneridNotDefined'; return -1; @@ -477,8 +477,8 @@ class ActionComm extends CommonObject $this->elementtype = 'contract'; } - if (!is_array($this->userassigned) && !empty($this->userassigned)) { // For backward compatibility when userassigned was an int instead fo array - $tmpid = $this->userassigned; + if (!is_array($this->userassigned) && !empty($this->userassigned)) { // For backward compatibility when userassigned was an int instead of an array + $tmpid = (int) $this->userassigned; $this->userassigned = array(); $this->userassigned[$tmpid] = array('id'=>$tmpid, 'transparency'=>$this->transparency); } @@ -742,6 +742,8 @@ class ActionComm extends CommonObject $action = ''; $reshook = $hookmanager->executeHooks('createFrom', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { + $this->errors += $hookmanager->errors; + $this->error = $hookmanager->error; $error++; } } @@ -1433,7 +1435,7 @@ class ActionComm extends CommonObject $response->label = $langs->trans("ActionsToDo"); $response->labelShort = $langs->trans("ActionsToDoShort"); $response->url = DOL_URL_ROOT.'/comm/action/list.php?mode=show_list&actioncode=0&status=todo&mainmenu=agenda'; - if ($user->rights->agenda->allactions->read) { + if ($user->hasRight("agenda", "allactions", "read")) { $response->url .= '&filtert=-1'; } $response->img = img_object('', "action", 'class="inline-block valigntextmiddle"'); @@ -1800,8 +1802,8 @@ class ActionComm extends CommonObject * Adds it to non existing supplied categories. * Existing categories are left untouch. * - * @param int[]|int $categories Category or categories IDs - * @return void + * @param int[]|int $categories Category or categories IDs + * @return int <0 if KO, >0 if OK */ public function setCategories($categories) { @@ -1835,7 +1837,7 @@ class ActionComm extends CommonObject $c->add_type($this, Categorie::TYPE_ACTIONCOMM); } } - return; + return 1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2261,18 +2263,18 @@ class ActionComm extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'actioncomm' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** diff --git a/htdocs/comm/action/class/api_agendaevents.class.php b/htdocs/comm/action/class/api_agendaevents.class.php index 8c13709b250..c0accf82866 100644 --- a/htdocs/comm/action/class/api_agendaevents.class.php +++ b/htdocs/comm/action/class/api_agendaevents.class.php @@ -210,7 +210,7 @@ class AgendaEvents extends DolibarrApi if (!DolibarrApiAccess::$user->rights->agenda->myactions->create) { throw new RestException(401, "Insufficient rights to create your Agenda Event"); } - if (!DolibarrApiAccess::$user->rights->agenda->allactions->create && DolibarrApiAccess::$user->id != $request_data['userownerid']) { + if (!DolibarrApiAccess::$user->hasRight('agenda', 'allactions', 'create') && DolibarrApiAccess::$user->id != $request_data['userownerid']) { throw new RestException(401, "Insufficient rights to create an Agenda Event for owner id ".$request_data['userownerid'].' Your id is '.DolibarrApiAccess::$user->id); } @@ -249,7 +249,7 @@ class AgendaEvents extends DolibarrApi if (!DolibarrApiAccess::$user->rights->agenda->myactions->create) { throw new RestException(401, "Insufficient rights to create your Agenda Event"); } - if (!DolibarrApiAccess::$user->rights->agenda->allactions->create && DolibarrApiAccess::$user->id != $request_data['userownerid']) { + if (!DolibarrApiAccess::$user->hasRight('agenda', 'allactions', 'create') && DolibarrApiAccess::$user->id != $request_data['userownerid']) { throw new RestException(401, "Insufficient rights to create an Agenda Event for owner id ".$request_data['userownerid'].' Your id is '.DolibarrApiAccess::$user->id); } diff --git a/htdocs/comm/action/class/cactioncomm.class.php b/htdocs/comm/action/class/cactioncomm.class.php index 049b70737e8..c7ab296a2a9 100644 --- a/htdocs/comm/action/class/cactioncomm.class.php +++ b/htdocs/comm/action/class/cactioncomm.class.php @@ -217,7 +217,7 @@ class CActionComm $qualified = 1; } // For case module = 'myobject@eventorganization' - $tmparray = preg_split("/@/", $obj->module, -1); + $tmparray = explode("@", $obj->module); if (count($tmparray) > 1 && $tmparray[1] == 'eventorganization' && isModEnabled('eventorganization')) { $qualified = 1; } diff --git a/htdocs/comm/action/class/ical.class.php b/htdocs/comm/action/class/ical.class.php index 7ab09e8d891..26db2cd5e6e 100644 --- a/htdocs/comm/action/class/ical.class.php +++ b/htdocs/comm/action/class/ical.class.php @@ -54,8 +54,8 @@ class ICal /** * Read text file, icalender text file * - * @param string $file File - * @return string + * @param string $file File + * @return string|null Content of remote file read or null if error */ public function read_file($file) { @@ -65,7 +65,7 @@ class ICal $tmpresult = getURLContent($file, 'GET'); if ($tmpresult['http_code'] != 200) { - $file_text = ''; + $file_text = null; $this->error = 'Error: '.$tmpresult['http_code'].' '.$tmpresult['content']; } else { $file_text = preg_replace("/[\r\n]{1,} /", "", $tmpresult['content']); @@ -102,17 +102,40 @@ class ICal /** * Translate Calendar * - * @param string $uri Url + * @param string $uri Url + * @param string $usecachefile Full path of a cache file to use a cache file + * @param string $delaycache Delay in seconds for cache (by default 3600 secondes) * @return array|string */ - public function parse($uri) + public function parse($uri, $usecachefile = '', $delaycache = 3600) { $this->cal = array(); // new empty array $this->event_count = -1; + $this->file_text = null; + + // Save file into a cache + if ($usecachefile) { + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $datefile = dol_filemtime($usecachefile); + $now = dol_now('gmt'); + //print $datefile.' '.$now.' ...'; + if ($datefile && $datefile > ($now - $delaycache)) { + // We reuse the cache file + $this->file_text = file_get_contents($usecachefile); + } + } // read FILE text - $this->file_text = $this->read_file($uri); + if (is_null($this->file_text)) { + $this->file_text = $this->read_file($uri); + + if ($usecachefile && !is_null($this->file_text)) { + // Save the file content into cache file + file_put_contents($usecachefile, $this->file_text, LOCK_EX); + dolChmod($usecachefile); + } + } $this->file_text = preg_split("[\n]", $this->file_text); @@ -402,7 +425,7 @@ class ICal public function get_event_list() { // phpcs:enable - return (empty($this->cal['VEVENT']) ? '' : $this->cal['VEVENT']); + return (empty($this->cal['VEVENT']) ? array() : $this->cal['VEVENT']); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -414,7 +437,7 @@ class ICal public function get_freebusy_list() { // phpcs:enable - return (empty($this->cal['VFREEBUSY']) ? '' : $this->cal['VFREEBUSY']); + return (empty($this->cal['VFREEBUSY']) ? array() : $this->cal['VFREEBUSY']); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps diff --git a/htdocs/comm/action/document.php b/htdocs/comm/action/document.php index 82cc7584c07..0bff7cf5616 100644 --- a/htdocs/comm/action/document.php +++ b/htdocs/comm/action/document.php @@ -92,7 +92,7 @@ if ($user->socid && $socid) { $result = restrictedArea($user, 'societe', $socid); } -$usercancreate = $user->rights->agenda->allactions->create || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create); +$usercancreate = $user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create); $permissiontoadd = $usercancreate; @@ -181,7 +181,7 @@ if ($object->id > 0) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -305,7 +305,7 @@ if ($object->id > 0) { $modulepart = 'actions'; - $permissiontoadd = $user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create; + $permissiontoadd = $user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create'); $param = '&id='.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; } else { diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index a6a39d1eb05..9d84e205f2b 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -49,6 +49,7 @@ if (empty($conf->global->AGENDA_EXT_NB)) { $conf->global->AGENDA_EXT_NB = 5; } $MAXAGENDA = $conf->global->AGENDA_EXT_NB; +$DELAYFORCACHE = 300; // 300 seconds $disabledefaultvalues = GETPOST('disabledefaultvalues', 'int'); @@ -274,7 +275,7 @@ if (empty($conf->global->AGENDA_DISABLE_EXT)) { $color = 'AGENDA_EXT_COLOR'.$i; $default = 'AGENDA_EXT_ACTIVEBYDEFAULT'.$i; $buggedfile = 'AGENDA_EXT_BUGGEDFILE'.$i; - if (!empty($conf->global->$source) && !empty($conf->global->$name)) { + if (getDolGlobalString($source) && getDolGlobalString($name)) { // Note: $conf->global->buggedfile can be empty or 'uselocalandtznodaylight' or 'uselocalandtzdaylight' $listofextcals[] = array( 'src' => getDolGlobalString($source), @@ -299,14 +300,15 @@ if (empty($user->conf->AGENDA_DISABLE_EXT)) { $enabled = 'AGENDA_EXT_ENABLED_'.$user->id.'_'.$i; $default = 'AGENDA_EXT_ACTIVEBYDEFAULT_'.$user->id.'_'.$i; $buggedfile = 'AGENDA_EXT_BUGGEDFILE_'.$user->id.'_'.$i; - if (!empty($user->conf->$source) && !empty($user->conf->$name)) { + + if (getDolUserString($source) && getDolUserString($name)) { // Note: $conf->global->buggedfile can be empty or 'uselocalandtznodaylight' or 'uselocalandtzdaylight' $listofextcals[] = array( - 'src' => $user->conf->$source, - 'name' => dol_string_nohtmltag($user->conf->$name), + 'src' => getDolUserString($source), + 'name' => dol_string_nohtmltag(getDolUserString($name)), 'offsettz' => (int) (empty($user->conf->$offsettz) ? 0 : $user->conf->$offsettz), - 'color' => dol_string_nohtmltag($user->conf->$color), - 'default' => dol_string_nohtmltag($user->conf->$default), + 'color' => dol_string_nohtmltag(getDolUserString($color)), + 'default' => dol_string_nohtmltag(getDolUserString($default)), 'buggedfile' => dol_string_nohtmltag(isset($user->conf->buggedfile) ? $user->conf->buggedfile : '') ); } @@ -427,36 +429,33 @@ if ($mode == 'show_day' || $mode == 'show_week' || $mode == 'show_month') { } // Show navigation bar +$nav = ''; +$nav .= ''; $nav .= $form->selectDate($dateselect, 'dateselect', 0, 0, 1, '', 1, 0); //$nav .= ' '; @@ -495,7 +494,8 @@ print ''; //print_actions_filter($form, $canedit, $status, $year, $month, $day, $showbirthday, 0, $filtert, 0, $pid, $socid, $action, $listofextcals, $actioncode, $usergroup, '', $resourceid); //print dol_get_fiche_end(); -$viewmode = ''; +$viewmode = ''; + $viewmode .= ''; // To add a space before the navigation tools $newcardbutton = ''; $newparam = ''; -if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { +if ($user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')) { $tmpforcreatebutton = dol_getdate(dol_now(), true); $newparam .= '&month='.((int) $month).'&year='.((int) $tmpforcreatebutton['year']).'&mode='.urlencode($mode); @@ -614,7 +616,7 @@ if (!empty($conf->use_javascript_ajax)) { // If javascript on $default = ''; } - $s .= '
 
'; + $s .= '
 
'; } } @@ -1009,9 +1011,13 @@ if ($mode == 'show_day') { // Request only leaves for the current selected day $sql .= " AND '".$db->escape($year)."-".$db->escape($month)."-".$db->escape($day)."' BETWEEN x.date_debut AND x.date_fin"; // date_debut and date_fin are date without time } elseif ($mode == 'show_week') { - // TODO: Add filter to reduce database request + // Restrict on current month (we get more, but we will filter later) + $sql .= " AND date_debut < '".dol_get_last_day($year, $month)."'"; + $sql .= " AND date_fin >= '".dol_get_first_day($year, $month)."'"; } elseif ($mode == 'show_month') { - // TODO: Add filter to reduce database request + // Restrict on current month + $sql .= " AND date_debut <= '".dol_get_last_day($year, $month)."'"; + $sql .= " AND date_fin >= '".dol_get_first_day($year, $month)."'"; } $resql = $db->query($sql); @@ -1082,8 +1088,11 @@ if (count($listofextcals)) { $colorcal = $extcal['color']; $buggedfile = $extcal['buggedfile']; + $pathforcachefile = dol_sanitizePathName($conf->user->dir_temp).'/'.dol_sanitizeFileName('extcal_'.$namecal.'_user'.$user->id).'.cache'; + //var_dump($pathforcachefile);exit; + $ical = new ICal(); - $ical->parse($url); + $ical->parse($url, $pathforcachefile, $DELAYFORCACHE); // After this $ical->cal['VEVENT'] contains array of events, $ical->cal['DAYLIGHT'] contains daylight info, $ical->cal['STANDARD'] contains non daylight info, ... //var_dump($ical->cal); exit; @@ -1287,7 +1296,7 @@ if (count($listofextcals)) { } // Transparency (see https://www.kanzaki.com/docs/ical/transp.html) - if ($icalevent['TRANSP']) { + if (!empty($icalevent['TRANSP'])) { if ($icalevent['TRANSP'] == "TRANSPARENT") { $event->transparency = 0; // 0 = available / free } @@ -1703,7 +1712,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $curtime = dol_mktime(0, 0, 0, $month, $day, $year); $urltoshow = DOL_URL_ROOT.'/comm/action/index.php?mode=show_day&day='.str_pad($day, 2, "0", STR_PAD_LEFT).'&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$year.$newparam; $urltocreate = ''; - if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { + if ($user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')) { $newparam .= '&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$year; $hourminsec = '100000'; $urltocreate = DOL_URL_ROOT.'/comm/action/card.php?action=create&datep='.sprintf("%04d%02d%02d", $year, $month, $day).$hourminsec.'&backtopage='.urlencode($_SERVER["PHP_SELF"].($newparam ? '?'.$newparam : '')); @@ -1722,7 +1731,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa } print '
'; print '
'; - if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { + if ($user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')) { print ''; // Explicit link, usefull for nojs interfaces print img_picto($langs->trans("NewAction"), 'edit_add.png'); print ''; @@ -1849,7 +1858,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $cssclass .= ' movable cursormove'; } } else { - if ($user->rights->agenda->allactions->create || + if ($user->hasRight('agenda', 'allactions', 'create') || (($event->authorid == $user->id || $event->userownerid == $user->id) && $user->rights->agenda->myactions->create)) { $cssclass .= " movable cursormove"; } else { @@ -1936,7 +1945,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa } $listofusertoshow = ''; - $listofusertoshow .= '
'.$cacheusers[$tmpid]->getNomUrl(-1, '', 0, 0, 0, 0, '', 'paddingright valigntextbottom'); + $listofusertoshow .= '
'.$cacheusers[$tmpid]->getNomUrl(-1, '', 0, 0, 0, 0, '', 'paddingright valignmiddle'); print $listofusertoshow; } else { // Other calendar // Picto @@ -2011,7 +2020,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $cacheusers[$tmpid] = $newuser; } - $listofusertoshow .= $cacheusers[$tmpid]->getNomUrl(-3, '', 0, 0, 0, 0, '', 'paddingright valigntextbottom'); + $listofusertoshow .= $cacheusers[$tmpid]->getNomUrl(-3, '', 0, 0, 0, 0, '', 'valignmiddle'); } print $titletoshow; @@ -2039,7 +2048,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa } } if (!empty($contact_id) && $contact_id > 0) { - if (!is_object($cachecontacts[$contact_id])) { + if (empty($cachecontacts[$contact_id]) || !is_object($cachecontacts[$contact_id])) { $contact = new Contact($db); $contact->fetch($contact_id); $cachecontacts[$contact_id] = $contact; @@ -2061,7 +2070,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $linerelatedto .= dolGetElementUrl($event->fk_element, $event->elementtype, 1); } if ($linerelatedto) { - print '
'.$linerelatedto; + print ' '.$linerelatedto; } } diff --git a/htdocs/comm/action/info.php b/htdocs/comm/action/info.php index d4588223b26..816fef8e395 100644 --- a/htdocs/comm/action/info.php +++ b/htdocs/comm/action/info.php @@ -53,7 +53,7 @@ if ($user->socid && $socid) { $result = restrictedArea($user, 'societe', $socid); } -$usercancreate = $user->rights->agenda->allactions->create || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create); +$usercancreate = $user->hasRight('agenda', 'allactions', 'create') || (($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create); /* @@ -109,7 +109,7 @@ if (isModEnabled('project')) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index 5eb538d4e62..a0176ca18b0 100644 --- a/htdocs/comm/action/list.php +++ b/htdocs/comm/action/list.php @@ -33,18 +33,22 @@ 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'; -include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; + // Load translation files required by the page $langs->loadLangs(array("users", "companies", "agenda", "commercial", "other", "orders", "bills")); -$action = GETPOST('action', 'aZ09'); +// Get Parameters +$action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'alpha'); +$toselect = GETPOST('toselect', 'array'); $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'); +$optioncss = GETPOST('optioncss', 'alpha'); + $disabledefaultvalues = GETPOST('disabledefaultvalues', 'int'); @@ -70,6 +74,7 @@ if (GETPOST('search_actioncode', 'array')) { $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 Fields $search_id = GETPOST('search_id', 'alpha'); $search_title = GETPOST('search_title', 'alpha'); $search_note = GETPOST('search_note', 'alpha'); @@ -106,6 +111,7 @@ if (empty($filtert) && empty($conf->global->AGENDA_ALL_CALENDARS)) { $filtert = $user->id; } +// Pagination parameters $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); @@ -600,7 +606,7 @@ $num = $db->num_rows($resql); $arrayofselected = is_array($toselect) ? $toselect : array(); // Local calendar -$newtitle = '
'; +$newtitle = '
'; $newtitle .= ' '.$langs->trans("LocalAgenda").'   '; $newtitle .= '
'; //$newtitle=$langs->trans($title); @@ -700,7 +706,7 @@ $url = DOL_URL_ROOT.'/comm/action/card.php?action=create'; $url .= '&datep='.sprintf("%04d%02d%02d", $tmpforcreatebutton['year'], $tmpforcreatebutton['mon'], $tmpforcreatebutton['mday']).$hourminsec; $url .= '&backtopage='.urlencode($_SERVER["PHP_SELF"].($newparam ? '?'.$newparam : '')); -$newcardbutton = dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', $url, '', $user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create); +$newcardbutton = dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', $url, '', $user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')); $param .= '&mode='.$mode; @@ -795,9 +801,8 @@ if (!empty($arrayfields['a.tms']['checked'])) { print '
'; } if (!empty($arrayfields['a.percent']['checked'])) { - print ''; } // Action column @@ -887,6 +892,7 @@ print "\n"; $now = dol_now(); $delay_warning = $conf->global->MAIN_DELAY_ACTIONS_TODO * 24 * 60 * 60; +$today_start_time = dol_mktime(0, 0, 0, date('m', $now), date('d', $now), date('Y', $now)); require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php'; $caction = new CActionComm($db); @@ -899,6 +905,7 @@ $i = 0; //$savnbfield = $totalarray['nbfield']; //$totalarray['nbfield'] = 0; $imaxinloop = ($limit ? min($num, $limit) : $num); +$cache_user_list = array(); while ($i < $imaxinloop) { $obj = $db->fetch_object($resql); if (empty($obj)) { @@ -933,7 +940,55 @@ while ($i < $imaxinloop) { $actionstatic->fetchResources(); } - print ''; + // cache of user list (owners) + if ($obj->fk_user_action > 0 && !isset($cache_user_list[$obj->fk_user_action])) { + $userstatic = new User($db); + $res = $userstatic->fetch($obj->fk_user_action); + if ($res > 0) { + $cache_user_list[$obj->fk_user_action] = $userstatic; + } + } + + // get event style for user owner + $event_owner_style = ''; + // We decide to choose color of owner of event (event->userownerid is user id of owner, event->userassigned contains all users assigned to event) + if ($cache_user_list[$obj->fk_user_action]->color != '') { + $event_owner_style .= 'border-left: #' . $cache_user_list[$obj->fk_user_action]->color . ' 5px solid;'; + } + + // get event style for start and end date + $event_more_class = ''; + $event_start_date_css = ''; + $event_end_date_css = ''; + $event_start_date_time = $actionstatic->datep; + if ($event_start_date_time > $now) { + // future event + $event_more_class = 'event-future'; + $event_start_date_css = $event_end_date_css = $event_more_class; + } else { + if ($obj->fulldayevent == 1) { + $today_start_date_time = $today_start_time; + } else { + $today_start_date_time = $now; + } + + // check event end date + $event_end_date_time = $db->jdate($obj->dp2); + if ($event_end_date_time != null && $event_end_date_time < $today_start_date_time) { + // past event + $event_more_class = 'event-past'; + } elseif ($event_end_date_time == null && $event_start_date_time < $today_start_date_time) { + // past event + $event_more_class = 'event-past'; + } else { + // current event + $event_more_class = 'event-current'; + } + $event_start_date_css = $event_end_date_css = $event_more_class; + } + $event_start_date_css = $event_end_date_css = $event_more_class; + + print ''; // Action column if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { print ''; } diff --git a/htdocs/comm/action/pertype.php b/htdocs/comm/action/pertype.php index 61092df5665..9d3bd0044e4 100644 --- a/htdocs/comm/action/pertype.php +++ b/htdocs/comm/action/pertype.php @@ -63,23 +63,19 @@ if (empty($filtert) && empty($conf->global->AGENDA_ALL_CALENDARS)) { // 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 @@ -110,14 +106,14 @@ $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'); +$status = GETPOSTISSET("search_status") ? GETPOST("search_status", 'aZ09') : GETPOST("status", 'aZ09'); $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); +if (GETPOST('search_actioncode', 'array:aZ09')) { + $actioncode = GETPOST('search_actioncode', 'array:aZ09', 3); if (!count($actioncode)) { $actioncode = '0'; } @@ -321,7 +317,7 @@ if ($pid) { if ($type) { $param .= "&search_type=".urlencode($type); } -if ($mode == 'show_day' || $mode == 'show_week' || $mode == 'show_month' || $mode != 'show_peruser') { +if ($mode != 'show_pertype') { $param .= '&mode='.urlencode($mode); } if ($begin_h != '') { @@ -356,24 +352,28 @@ $next_year = $year + 1; $next_month = $month; $next_day = $day; -// Define firstdaytoshow and lastdaytoshow (warning: lastdaytoshow is last second to show + 1) +// Define firstdaytoshow and lastdaytoshow. Warning: lastdaytoshow is last second to show + 1 +// $firstdaytoshow and lastdaytoshow become a gmt dates to use to search/compare because first_xxx are in tz idea and we used tzuserrel $firstdaytoshow = dol_mktime(0, 0, 0, $first_month, $first_day, $first_year, 'tzuserrel'); $lastdaytoshow = dol_time_plus_duree($firstdaytoshow, 7, 'd'); //print $firstday.'-'.$first_month.'-'.$first_year; -//print dol_print_date($firstdaytoshow,'dayhour'); -//print dol_print_date($lastdaytoshow,'dayhour'); +//print dol_print_date($firstdaytoshow, 'dayhour', 'gmt'); +//print dol_print_date($lastdaytoshow,'dayhour', 'gmt'); $max_day_in_month = date("t", dol_mktime(0, 0, 0, $month, 1, $year, 'gmt')); $tmpday = $first_day; $picto = 'calendarweek'; -$nav = "".img_previous($langs->trans("Previous"))."\n"; +// Show navigation bar +$nav = ''; $nav .= $form->selectDate($dateselect, 'dateselect', 0, 0, 1, '', 1, 0); $nav .= ' '; @@ -477,9 +477,9 @@ if (empty($reshook)) { $viewmode = $hookmanager->resPrint; } - +$newparam = ''; $newcardbutton = ''; -if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { +if ($user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')) { $tmpforcreatebutton = dol_getdate(dol_now(), true); $newparam .= '&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$tmpforcreatebutton['year']; @@ -592,12 +592,12 @@ if ($filtert > 0 || $usergroup > 0) { if ($mode == 'show_day') { $sql .= " AND ("; $sql .= " (a.datep BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year, 'tzuserrel'))."'"; - $sql .= " AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year))."')"; + $sql .= " AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year, 'tzuserrel'))."')"; $sql .= " OR "; $sql .= " (a.datep2 BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year, 'tzuserrel'))."'"; - $sql .= " AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year))."')"; + $sql .= " AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year, 'tzuserrel'))."')"; $sql .= " OR "; - $sql .= " (a.datep < '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year))."'"; + $sql .= " (a.datep < '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year, 'tzuserrel'))."'"; $sql .= " AND a.datep2 > '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year, 'tzuserrel'))."')"; $sql .= ')'; } else { @@ -619,12 +619,14 @@ if ($type) { if ($status == '0') { $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)"; } @@ -788,8 +790,9 @@ echo ''; //print "begin_d=".$begin_d." end_d=".$end_d; +echo '
'; -echo '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Parameters").''.$langs->trans("Value").'
'; print $form->textwithpicto($langs->trans("INVOICE_ADD_ZATCA_QR_CODE"), $langs->trans("INVOICE_ADD_ZATCA_QR_CODEMore")); @@ -159,11 +163,21 @@ if (isModEnabled('facture')) { } print '
'; - print $form->textwithpicto($langs->trans("INVOICE_SHOW_SHIPPING_ADDRESS"), $langs->trans("INVOICE_SHOW_SHIPPING_ADDRESSMore")); + print $form->textwithpicto($langs->trans("InvoiceOptionCategoryOfOperations"), $langs->trans('InvoiceOptionCategoryOfOperationsHelp'), 1); print ''; + $arrval = array('0'=>$langs->trans("No"), + '1'=>$langs->trans("InvoiceOptionCategoryOfOperationsYes1"), + '2'=>$langs->trans("InvoiceOptionCategoryOfOperationsYes2") + ); + print $form->selectarray("INVOICE_CATEGORY_OF_OPERATION", $arrval, $conf->global->INVOICE_CATEGORY_OF_OPERATION, 0, 0, 0, '', 0, 0, 0, '', 'minwidth75imp'); + print '
'.$langs->trans("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING").''; if ($conf->use_javascript_ajax) { - print ajax_constantonoff('INVOICE_SHOW_SHIPPING_ADDRESS'); + print ajax_constantonoff('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING'); } else { $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); print $form->selectarray("INVOICE_SHOW_SHIPPING_ADDRESS", $arrval, $conf->global->INVOICE_SHOW_SHIPPING_ADDRESS); @@ -181,7 +195,7 @@ if (isModEnabled('reception')) { print '
'; print ''; - print ''; + print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Parameters").''.$langs->trans("Value").'
'; print $langs->trans("RECEPTION_PDF_HIDE_ORDERED"); diff --git a/htdocs/admin/perms.php b/htdocs/admin/perms.php index ef20ab6e205..42c766d1a22 100644 --- a/htdocs/admin/perms.php +++ b/htdocs/admin/perms.php @@ -227,7 +227,7 @@ if ($result) { // Tick if ($obj->bydefault == 1) { print ''; - print ''; + print ''; //print img_edit_remove(); print img_picto('', 'switch_on'); print ''; diff --git a/htdocs/admin/propal.php b/htdocs/admin/propal.php index 7883cc7da20..10044e33b5b 100644 --- a/htdocs/admin/propal.php +++ b/htdocs/admin/propal.php @@ -58,9 +58,9 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; $error = 0; if ($action == 'updateMask') { - $maskconstpropal = GETPOST('maskconstpropal', 'alpha'); + $maskconstpropal = GETPOST('maskconstpropal', 'aZ09'); $maskpropal = GETPOST('maskpropal', 'alpha'); - if ($maskconstpropal) { + if ($maskconstpropal && preg_match('/_MASK$/', $maskconstpropal)) { $res = dolibarr_set_const($db, $maskconstpropal, $maskpropal, 'chaine', 0, '', $conf->entity); } diff --git a/htdocs/admin/reception_setup.php b/htdocs/admin/reception_setup.php index c86db66e464..32f6c5b226e 100644 --- a/htdocs/admin/reception_setup.php +++ b/htdocs/admin/reception_setup.php @@ -65,9 +65,9 @@ if (empty($conf->global->RECEPTION_ADDON_NUMBER)) { include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconst = GETPOST('maskconstreception', 'alpha'); + $maskconst = GETPOST('maskconstreception', 'aZ09'); $maskvalue = GETPOST('maskreception', 'alpha'); - if (!empty($maskconst)) { + if (!empty($maskconst) && preg_match('/_MASK$/', $maskconst)) { $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); } diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php index 063f1668d15..e30e50769bb 100644 --- a/htdocs/admin/security.php +++ b/htdocs/admin/security.php @@ -56,8 +56,8 @@ if ($action == 'activate_encrypt') { $db->begin(); - // On old version a bug created the constant into user entity, so we delete it to be sure, such entry won't exists. We want it in entity 0 or nowhere. - dolibarr_del_const($db, "DATABASE_PWD_ENCRYPTED", "1", 'chaine', 0, '', $conf->entity); + // On old version, a bug created the constant into user entity, so we delete it to be sure such entry won't exists. We want it in entity 0 or nowhere. + dolibarr_del_const($db, "DATABASE_PWD_ENCRYPTED", $conf->entity); // We set entity=0 (all) because DATABASE_PWD_ENCRYPTED is a setup into conf file, so always shared for everybody $entityforall = 0; dolibarr_set_const($db, "DATABASE_PWD_ENCRYPTED", "1", 'chaine', 0, '', $entityforall); @@ -271,8 +271,8 @@ print ''; print ''; -//if($conf->global->MAIN_SECURITY_DISABLEFORGETPASSLINK == 1) -// Patter for Password Perso + +// Pattern for Password Perso if ($conf->global->USER_PASSWORD_GENERATED == "Perso") { print '
'; @@ -320,10 +320,10 @@ if ($conf->global->USER_PASSWORD_GENERATED == "Perso") { print '
'; - print '
'; print '
'; print ''.$langs->trans("Save").''; print '
'; + print '

'; print ' - showOptionals($extrafields, 'view', array('style'=>'class="drag drop oddeven"', 'colspan'=>$coldisplay), '', '', 1, 'line'); -} print "\n"; diff --git a/htdocs/bookcal/admin/about.php b/htdocs/bookcal/admin/about.php deleted file mode 100644 index 85f0efcdebb..00000000000 --- a/htdocs/bookcal/admin/about.php +++ /dev/null @@ -1,105 +0,0 @@ - - * Copyright (C) 2022 Alice Adminson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/** - * \file bookcal/admin/about.php - * \ingroup bookcal - * \brief About page of module BookCal. - */ - -// Load Dolibarr environment -$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"); -} - -// Libraries -require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -require_once '../lib/bookcal.lib.php'; - -// Translations -$langs->loadLangs(array("errors", "admin", "bookcal@bookcal")); - -// Access control -if (!$user->admin) { - accessforbidden(); -} - -// Parameters -$action = GETPOST('action', 'aZ09'); -$backtopage = GETPOST('backtopage', 'alpha'); - - -/* - * Actions - */ - -// None - - -/* - * View - */ - -$form = new Form($db); - -$help_url = ''; -$page_name = "BookCalAbout"; - -llxHeader('', $langs->trans($page_name), $help_url); - -// Subheader -$linkback = ''.$langs->trans("BackToModuleList").''; - -print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); - -// Configuration header -$head = bookcalAdminPrepareHead(); -print dol_get_fiche_head($head, 'about', $langs->trans($page_name), 0, 'bookcal@bookcal'); - -dol_include_once('/bookcal/core/modules/modBookCal.class.php'); -$tmpmodule = new modBookCal($db); -print $tmpmodule->getDescLong(); - -// Page end -print dol_get_fiche_end(); -llxFooter(); -$db->close(); diff --git a/htdocs/bookcal/admin/availabilities_extrafields.php b/htdocs/bookcal/admin/availabilities_extrafields.php index 9d16d7b5395..190a44f339d 100644 --- a/htdocs/bookcal/admin/availabilities_extrafields.php +++ b/htdocs/bookcal/admin/availabilities_extrafields.php @@ -27,38 +27,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) { - die("Include of main fails"); -} +require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once '../lib/bookcal.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('bookcal@bookcal', 'admin')); +$langs->loadLangs(array('agenda', 'admin')); $extrafields = new ExtraFields($db); $form = new Form($db); @@ -105,7 +80,7 @@ print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); $head = bookcalAdminPrepareHead(); -print dol_get_fiche_head($head, 'availabilities_extrafields', $langs->trans($page_name), -1, 'bookcal@bookcal'); +print dol_get_fiche_head($head, 'availabilities_extrafields', $langs->trans($page_name), -1, 'fa-calendar-check'); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; diff --git a/htdocs/bookcal/admin/booking_extrafields.php b/htdocs/bookcal/admin/booking_extrafields.php index 30122d95048..b4029a99338 100644 --- a/htdocs/bookcal/admin/booking_extrafields.php +++ b/htdocs/bookcal/admin/booking_extrafields.php @@ -27,38 +27,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) { - die("Include of main fails"); -} +require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once '../lib/bookcal.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('bookcal@bookcal', 'admin')); +$langs->loadLangs(array('agenda', 'admin')); $extrafields = new ExtraFields($db); $form = new Form($db); @@ -105,7 +80,7 @@ print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); $head = bookcalAdminPrepareHead(); -print dol_get_fiche_head($head, 'booking_extrafields', $langs->trans($page_name), -1, 'bookcal@bookcal'); +print dol_get_fiche_head($head, 'booking_extrafields', $langs->trans($page_name), -1, 'fa-calendar-check'); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; diff --git a/htdocs/bookcal/admin/setup.php b/htdocs/bookcal/admin/setup.php index c4fd74404eb..e3addec83e3 100644 --- a/htdocs/bookcal/admin/setup.php +++ b/htdocs/bookcal/admin/setup.php @@ -23,32 +23,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'; global $langs, $user; @@ -58,7 +33,7 @@ require_once '../lib/bookcal.lib.php'; //require_once "../class/myclass.class.php"; // Translations -$langs->loadLangs(array("admin", "bookcal@bookcal")); +$langs->loadLangs(array("admin", "agenda")); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('bookcalsetup', 'globalsetup')); @@ -178,10 +153,10 @@ if ( versioncompare(explode('.', DOL_VERSION), array(15)) < 0 && $action == 'upd include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconst = GETPOST('maskconst', 'alpha'); + $maskconst = GETPOST('maskconst', 'aZ09'); $maskvalue = GETPOST('maskvalue', 'alpha'); - if ($maskconst) { + if ($maskconst && preg_match('/_MASK$/', $maskconst)) { $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { $error++; @@ -294,7 +269,7 @@ print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup'); // Configuration header $head = bookcalAdminPrepareHead(); -print dol_get_fiche_head($head, 'settings', $langs->trans($page_name), -1, "bookcal@bookcal"); +print dol_get_fiche_head($head, 'settings', $langs->trans($page_name), -1, "fa-calendar-check"); // Setup page goes here echo ''.$langs->trans("BookCalSetupPage").'

'; diff --git a/htdocs/bookcal/availabilities_agenda.php b/htdocs/bookcal/availabilities_agenda.php index c3e66a17257..d97970c3add 100644 --- a/htdocs/bookcal/availabilities_agenda.php +++ b/htdocs/bookcal/availabilities_agenda.php @@ -22,67 +22,18 @@ * \brief Tab of events on Availabilities */ -//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 -//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) -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 '../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('/bookcal/class/availabilities.class.php'); -dol_include_once('/bookcal/lib/bookcal_availabilities.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/availabilities.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_availabilities.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "other")); +$langs->loadLangs(array("agenda", "other")); // Get parameters $id = GETPOST('id', 'int'); @@ -270,7 +221,7 @@ if ($object->id > 0) { if (get_class($objthirdparty) == 'Societe') { $out .= '&socid='.urlencode($objthirdparty->id); } - $out .= (!empty($objcon->id) ? '&contactid='.urlencode($objcon->id) : '').'&percentage=-1'; + $out .= (!empty($objcon->id) ? '&contactid='.urlencode($objcon->id) : ''); //$out.=$langs->trans("AddAnAction").' '; //$out.=img_picto($langs->trans("AddAnAction"),'filenew'); //$out.=""; @@ -280,7 +231,7 @@ if ($object->id > 0) { print '
'; if (isModEnabled('agenda')) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { print ''.$langs->trans("AddAction").''; } else { print ''.$langs->trans("AddAction").''; diff --git a/htdocs/bookcal/availabilities_card.php b/htdocs/bookcal/availabilities_card.php index b9f5277d4ae..f64b5e6f4b6 100644 --- a/htdocs/bookcal/availabilities_card.php +++ b/htdocs/bookcal/availabilities_card.php @@ -22,67 +22,17 @@ * \brief Page to create/edit/view availabilities */ -//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 (! 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 -//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 - // 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 '../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'; -dol_include_once('/bookcal/class/availabilities.class.php'); -dol_include_once('/bookcal/lib/bookcal_availabilities.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/availabilities.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_availabilities.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "other")); +$langs->loadLangs(array("agenda", "other")); // Get parameters $id = GETPOST('id', 'int'); @@ -404,7 +354,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea //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 .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 0, 1, '', 'maxwidth300'); $morehtmlref .= '
'; $morehtmlref .= ''; $morehtmlref .= ''; @@ -412,7 +362,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $morehtmlref .= ''; $morehtmlref .= '
'; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (! empty($object->fk_project)) { diff --git a/htdocs/bookcal/availabilities_contact.php b/htdocs/bookcal/availabilities_contact.php index dd01e8bf046..348602f58a9 100644 --- a/htdocs/bookcal/availabilities_contact.php +++ b/htdocs/bookcal/availabilities_contact.php @@ -23,43 +23,15 @@ */ // 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 '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -dol_include_once('/bookcal/class/availabilities.class.php'); -dol_include_once('/bookcal/lib/bookcal_availabilities.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/availabilities.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_availabilities.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "companies", "other", "mails")); +$langs->loadLangs(array("agenda", "companies", "other", "mails")); $id = (GETPOST('id') ?GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility $ref = GETPOST('ref', 'alpha'); diff --git a/htdocs/bookcal/availabilities_document.php b/htdocs/bookcal/availabilities_document.php index 5bab9356ee1..ed6b2976570 100644 --- a/htdocs/bookcal/availabilities_document.php +++ b/htdocs/bookcal/availabilities_document.php @@ -22,67 +22,18 @@ * \brief Tab for documents linked to Availabilities */ -//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 -//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) -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 '../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('/bookcal/class/availabilities.class.php'); -dol_include_once('/bookcal/lib/bookcal_availabilities.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/availabilities.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_availabilities.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "companies", "other", "mails")); +$langs->loadLangs(array("agenda", "companies", "other", "mails")); $action = GETPOST('action', 'aZ09'); diff --git a/htdocs/bookcal/availabilities_list.php b/htdocs/bookcal/availabilities_list.php index 6c5b4c2ed64..414faf2dc5a 100644 --- a/htdocs/bookcal/availabilities_list.php +++ b/htdocs/bookcal/availabilities_list.php @@ -22,58 +22,8 @@ * \brief List page for availabilities */ -//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 -//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 - // 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 '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -86,7 +36,7 @@ require_once __DIR__.'/class/availabilities.class.php'; //dol_include_once('/othermodule/class/otherobject.class.php'); // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "other")); +$langs->loadLangs(array("agenda", "other")); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); @@ -260,7 +210,7 @@ $now = dol_now(); //$help_url = "EN:Module_Availabilities|FR:Module_Availabilities_FR|ES:Módulo_Availabilities"; $help_url = ''; -$title = $langs->trans("Availabilitiess"); +$title = $langs->trans("Availabilities"); $morejs = array(); $morecss = array(); @@ -520,7 +470,7 @@ if ($search_all) { $fieldstosearchall[$key] = $langs->trans($val); $setupstring .= $key."=".$val.";"; } - print ''."\n"; + print ''."\n"; print '
'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
'."\n"; } diff --git a/htdocs/bookcal/availabilities_note.php b/htdocs/bookcal/availabilities_note.php index faae7a08834..6913491d85e 100644 --- a/htdocs/bookcal/availabilities_note.php +++ b/htdocs/bookcal/availabilities_note.php @@ -22,63 +22,14 @@ * \brief Tab for notes on Availabilities */ -//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 -//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) -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 '../main.inc.php'; -dol_include_once('/bookcal/class/availabilities.class.php'); -dol_include_once('/bookcal/lib/bookcal_availabilities.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/availabilities.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_availabilities.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "companies")); +$langs->loadLangs(array("agenda", "companies")); // Get parameters $id = GETPOST('id', 'int'); diff --git a/htdocs/bookcal/bookcalindex.php b/htdocs/bookcal/bookcalindex.php index 1b4e360e4ce..46281eb048a 100644 --- a/htdocs/bookcal/bookcalindex.php +++ b/htdocs/bookcal/bookcalindex.php @@ -25,40 +25,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 '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal")); +$langs->loadLangs(array("agenda")); $action = GETPOST('action', 'aZ09'); diff --git a/htdocs/bookcal/booking_agenda.php b/htdocs/bookcal/booking_agenda.php index dec1ebee921..fb26fce4fc7 100644 --- a/htdocs/bookcal/booking_agenda.php +++ b/htdocs/bookcal/booking_agenda.php @@ -22,67 +22,18 @@ * \brief Tab of events on Booking */ -//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 -//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) -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 '../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('/bookcal/class/booking.class.php'); -dol_include_once('/bookcal/lib/bookcal_booking.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/booking.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_booking.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "other")); +$langs->loadLangs(array("agenda", "other")); // Get parameters $id = GETPOST('id', 'int'); @@ -270,7 +221,7 @@ if ($object->id > 0) { if (get_class($objthirdparty) == 'Societe') { $out .= '&socid='.urlencode($objthirdparty->id); } - $out .= (!empty($objcon->id) ? '&contactid='.urlencode($objcon->id) : '').'&percentage=-1'; + $out .= (!empty($objcon->id) ? '&contactid='.urlencode($objcon->id) : ''); //$out.=$langs->trans("AddAnAction").' '; //$out.=img_picto($langs->trans("AddAnAction"),'filenew'); //$out.=""; @@ -280,7 +231,7 @@ if ($object->id > 0) { print '
'; if (isModEnabled('agenda')) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { print ''.$langs->trans("AddAction").''; } else { print ''.$langs->trans("AddAction").''; diff --git a/htdocs/bookcal/booking_card.php b/htdocs/bookcal/booking_card.php index 0240ab2dccc..82bd884cd2d 100644 --- a/htdocs/bookcal/booking_card.php +++ b/htdocs/bookcal/booking_card.php @@ -22,67 +22,17 @@ * \brief Page to create/edit/view booking */ -//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 (! 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 -//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 - // 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 '../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'; -dol_include_once('/bookcal/class/booking.class.php'); -dol_include_once('/bookcal/lib/bookcal_booking.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/booking.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_booking.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "other")); +$langs->loadLangs(array("agenda", "other")); // Get parameters $id = GETPOST('id', 'int'); @@ -400,7 +350,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea //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 .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 0, 1, '', 'maxwidth300'); $morehtmlref .= '
'; $morehtmlref .= ''; $morehtmlref .= ''; @@ -408,7 +358,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $morehtmlref .= ''; $morehtmlref .= '
'; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (! empty($object->fk_project)) { diff --git a/htdocs/bookcal/booking_contact.php b/htdocs/bookcal/booking_contact.php index 923976adb47..631f6af8e6c 100644 --- a/htdocs/bookcal/booking_contact.php +++ b/htdocs/bookcal/booking_contact.php @@ -23,43 +23,15 @@ */ // 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 '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -dol_include_once('/bookcal/class/booking.class.php'); -dol_include_once('/bookcal/lib/bookcal_booking.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/booking.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_booking.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "companies", "other", "mails")); +$langs->loadLangs(array("agenda", "companies", "other", "mails")); $id = (GETPOST('id') ?GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility $ref = GETPOST('ref', 'alpha'); diff --git a/htdocs/bookcal/booking_document.php b/htdocs/bookcal/booking_document.php index 81342e1a7b6..fa925759399 100644 --- a/htdocs/bookcal/booking_document.php +++ b/htdocs/bookcal/booking_document.php @@ -22,67 +22,18 @@ * \brief Tab for documents linked to Booking */ -//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 -//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) -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 '../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('/bookcal/class/booking.class.php'); -dol_include_once('/bookcal/lib/bookcal_booking.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/booking.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_booking.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "companies", "other", "mails")); +$langs->loadLangs(array("agenda", "companies", "other", "mails")); $action = GETPOST('action', 'aZ09'); diff --git a/htdocs/bookcal/booking_list.php b/htdocs/bookcal/booking_list.php index f4aac1e5ed8..3c78ffea120 100644 --- a/htdocs/bookcal/booking_list.php +++ b/htdocs/bookcal/booking_list.php @@ -22,58 +22,8 @@ * \brief List page for booking */ -//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 -//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 - // 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 '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -86,7 +36,7 @@ require_once __DIR__.'/class/booking.class.php'; //dol_include_once('/othermodule/class/otherobject.class.php'); // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "other")); +$langs->loadLangs(array("agenda", "other")); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); @@ -520,7 +470,7 @@ if ($search_all) { $fieldstosearchall[$key] = $langs->trans($val); $setupstring .= $key."=".$val.";"; } - print ''."\n"; + print ''."\n"; print '
'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
'."\n"; } diff --git a/htdocs/bookcal/booking_note.php b/htdocs/bookcal/booking_note.php index f68ffcbd72b..809f382cc16 100644 --- a/htdocs/bookcal/booking_note.php +++ b/htdocs/bookcal/booking_note.php @@ -22,63 +22,14 @@ * \brief Tab for notes on Booking */ -//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 -//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) -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 '../main.inc.php'; -dol_include_once('/bookcal/class/booking.class.php'); -dol_include_once('/bookcal/lib/bookcal_booking.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bookcal/class/booking.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bookcal/lib/bookcal_booking.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bookcal@bookcal", "companies")); +$langs->loadLangs(array("agenda", "companies")); // Get parameters $id = GETPOST('id', 'int'); diff --git a/htdocs/bookcal/class/availabilities.class.php b/htdocs/bookcal/class/availabilities.class.php index cfbfc8eed88..6b4502e3364 100644 --- a/htdocs/bookcal/class/availabilities.class.php +++ b/htdocs/bookcal/class/availabilities.class.php @@ -74,7 +74,7 @@ class Availabilities extends CommonObject * 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) @@ -116,10 +116,10 @@ class Availabilities extends CommonObject 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), 'model_pdf' => array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>'1', 'position'=>1010, 'notnull'=>-1, 'visible'=>0,), 'status' => array('type'=>'integer', 'label'=>'Status', 'enabled'=>'1', 'position'=>2000, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Draft', '1'=>'Validated', '9'=>'Canceled'), 'validate'=>'1',), - 'start' => array('type'=>'date', 'label'=>'Start Date', 'enabled'=>'1', 'position'=>40, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'isameasure'=>'1',), - 'end' => array('type'=>'date', 'label'=>'End Date', 'enabled'=>'1', 'position'=>45, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'isameasure'=>'1',), + 'start' => array('type'=>'date', 'label'=>'Start Date', 'enabled'=>'1', 'position'=>40, 'notnull'=>1, 'visible'=>1, 'searchall'=>1), + 'end' => array('type'=>'date', 'label'=>'End Date', 'enabled'=>'1', 'position'=>45, 'notnull'=>1, 'visible'=>1, 'searchall'=>1), 'type' => array('type'=>'integer', 'label'=>'Type', 'enabled'=>'1', 'position'=>49, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Customer', '1'=>'Supplier', '2'=>'Else'),), - 'duration' => array('type'=>'integer', 'label'=>'Duration', 'enabled'=>'1', 'position'=>47, 'notnull'=>1, 'visible'=>1, 'default'=>'30', 'isameasure'=>'1',), + 'duration' => array('type'=>'integer', 'label'=>'Duration', 'enabled'=>'1', 'position'=>47, 'notnull'=>1, 'visible'=>1, 'default'=>'30'), 'startHour' => array('type'=>'integer', 'label'=>'Start Hour', 'enabled'=>'1', 'position'=>46, 'notnull'=>1, 'visible'=>-1,), 'endHour' => array('type'=>'integer', 'label'=>'End Hour', 'enabled'=>'1', 'position'=>46.5, 'notnull'=>1, 'visible'=>-1,), ); @@ -842,7 +842,7 @@ class Availabilities extends CommonObject // phpcs:enable if (empty($this->labelStatus) || empty($this->labelStatusShort)) { global $langs; - //$langs->load("bookcal@bookcal"); + //$langs->load("agenda"); $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Enabled'); $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Disabled'); @@ -944,7 +944,7 @@ class Availabilities extends CommonObject public function getNextNumRef() { global $langs, $conf; - $langs->load("bookcal@bookcal"); + $langs->load("agenda"); if (empty($conf->global->BOOKCAL_AVAILABILITIES_ADDON)) { $conf->global->BOOKCAL_AVAILABILITIES_ADDON = 'mod_availabilities_standard'; @@ -1009,7 +1009,7 @@ class Availabilities extends CommonObject $result = 0; $includedocgeneration = 0; - $langs->load("bookcal@bookcal"); + $langs->load("agenda"); if (!dol_strlen($modele)) { $modele = 'standard_availabilities'; diff --git a/htdocs/bookcal/class/booking.class.php b/htdocs/bookcal/class/booking.class.php index a74cb87a43d..80807d7125f 100644 --- a/htdocs/bookcal/class/booking.class.php +++ b/htdocs/bookcal/class/booking.class.php @@ -74,7 +74,7 @@ class Booking extends CommonObject * 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) @@ -104,7 +104,7 @@ class Booking 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'=>1.2, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'searchall'=>1, 'validate'=>'1', 'comment'=>"Reference of object"), - 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'picto'=>'company', 'enabled'=>'$conf->societe->enabled', 'position'=>50, 'notnull'=>-1, 'visible'=>1, 'index'=>1, 'css'=>'maxwidth500 widthcentpercentminusxx', 'help'=>"LinkToThirparty", 'validate'=>'1',), + 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'picto'=>'company', 'enabled'=>'isModEnabled("societe")', 'position'=>50, 'notnull'=>-1, 'visible'=>1, 'index'=>1, 'css'=>'maxwidth500 widthcentpercentminusxx', 'help'=>"LinkToThirparty", 'validate'=>'1',), 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'picto'=>'project', 'enabled'=>'$conf->project->enabled', 'position'=>52, 'notnull'=>-1, 'visible'=>-1, 'index'=>1, 'css'=>'maxwidth500 widthcentpercentminusxx', 'validate'=>'1',), 'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>3, 'validate'=>'1',), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>61, 'notnull'=>0, 'visible'=>0, 'cssview'=>'wordbreak', 'validate'=>'1',), @@ -842,7 +842,7 @@ class Booking extends CommonObject // phpcs:enable if (empty($this->labelStatus) || empty($this->labelStatusShort)) { global $langs; - //$langs->load("bookcal@bookcal"); + //$langs->load("agenda"); $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Enabled'); $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Disabled'); @@ -944,7 +944,7 @@ class Booking extends CommonObject public function getNextNumRef() { global $langs, $conf; - $langs->load("bookcal@bookcal"); + $langs->load("agenda"); if (empty($conf->global->BOOKCAL_BOOKING_ADDON)) { $conf->global->BOOKCAL_BOOKING_ADDON = 'mod_booking_standard'; @@ -1009,7 +1009,7 @@ class Booking extends CommonObject $result = 0; $includedocgeneration = 0; - $langs->load("bookcal@bookcal"); + $langs->load("agenda"); if (!dol_strlen($modele)) { $modele = 'standard_booking'; diff --git a/htdocs/bookcal/lib/bookcal.lib.php b/htdocs/bookcal/lib/bookcal.lib.php index bc60468fb1d..3f809da08d8 100644 --- a/htdocs/bookcal/lib/bookcal.lib.php +++ b/htdocs/bookcal/lib/bookcal.lib.php @@ -30,7 +30,7 @@ function bookcalAdminPrepareHead() { global $langs, $conf; - $langs->load("bookcal@bookcal"); + $langs->load("agenda"); $h = 0; $head = array(); @@ -47,11 +47,6 @@ function bookcalAdminPrepareHead() $h++; */ - $head[$h][0] = dol_buildpath("/bookcal/admin/about.php", 1); - $head[$h][1] = $langs->trans("About"); - $head[$h][2] = 'about'; - $h++; - // Show more tabs from modules // Entries must be declared in modules descriptor with line //$this->tabs = array( diff --git a/htdocs/bookcal/lib/bookcal_availabilities.lib.php b/htdocs/bookcal/lib/bookcal_availabilities.lib.php index 83d204a2d76..1fb4b2aed75 100644 --- a/htdocs/bookcal/lib/bookcal_availabilities.lib.php +++ b/htdocs/bookcal/lib/bookcal_availabilities.lib.php @@ -31,7 +31,7 @@ function availabilitiesPrepareHead($object) { global $db, $langs, $conf; - $langs->load("bookcal@bookcal"); + $langs->load("agenda"); $showtabofpagecontact = 1; $showtabofpagenote = 1; diff --git a/htdocs/bookcal/lib/bookcal_booking.lib.php b/htdocs/bookcal/lib/bookcal_booking.lib.php index a6cb0e50df6..c0dec7d6d2e 100644 --- a/htdocs/bookcal/lib/bookcal_booking.lib.php +++ b/htdocs/bookcal/lib/bookcal_booking.lib.php @@ -31,7 +31,7 @@ function bookingPrepareHead($object) { global $db, $langs, $conf; - $langs->load("bookcal@bookcal"); + $langs->load("agenda"); $showtabofpagecontact = 1; $showtabofpagenote = 1; diff --git a/htdocs/bookmarks/bookmarks.lib.php b/htdocs/bookmarks/bookmarks.lib.php index d5258ba26f1..88cae3e4293 100644 --- a/htdocs/bookmarks/bookmarks.lib.php +++ b/htdocs/bookmarks/bookmarks.lib.php @@ -52,6 +52,7 @@ function printDropdownBookmarksList() } } } + $tmpurl = ''; // No urlencode, all param $url will be urlencoded later if ($sortfield) { @@ -65,7 +66,13 @@ function printDropdownBookmarksList() 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))); + if (is_array($val)) { + foreach ($val as $tmpsubval) { + $url_param[] = http_build_query(array(dol_escape_htmltag($key).'[]' => dol_escape_htmltag($tmpsubval))); + } + } elseif ($val != '') { + $url_param[$key] = http_build_query(array(dol_escape_htmltag($key) => dol_escape_htmltag($val))); + } } } } @@ -203,11 +210,11 @@ function printDropdownBookmarksList() $html .= ' '."\n"; @@ -1949,7 +1949,7 @@ if ($id > 0) { // related contact print '
'.$langs->trans("ActionOnContact").''; print '
'; - print img_picto('', 'contact', 'class="paddingrightonly"').$form->selectcontacts($object->socid, array_keys($object->socpeopleassigned), 'socpeopleassigned[]', 1, '', '', 1, 'quatrevingtpercent', false, 0, 0, array(), 'multiple', 'contactid'); + print img_picto('', 'contact', 'class="paddingrightonly"').$form->selectcontacts(empty($conf->global->MAIN_ACTIONCOM_CAN_ADD_ANY_CONTACT) ? $object->socid : 0, array_keys($object->socpeopleassigned), 'socpeopleassigned[]', 1, '', '', 1, 'quatrevingtpercent', false, 0, 0, array(), 'multiple', 'contactid'); print '
'; print '
'; - $formactions->form_select_status_action('formaction', $search_status, 1, 'search_status', 1, 2, 'minwidth100imp maxwidth125'); - print ajax_combobox('selectsearch_status'); + print ''; + $formactions->form_select_status_action('formaction', $search_status, 1, 'search_status', 1, 2, 'search_status width100 onrightofpage'); print '
'; @@ -955,10 +1010,16 @@ while ($i < $imaxinloop) { // User owner if (!empty($arrayfields['owner']['checked'])) { - print ''; // With edge and chrome the td overflow is not supported correctly when content is not full text. - if ($obj->fk_user_action > 0) { - $userstatic->fetch($obj->fk_user_action); - print $userstatic->getNomUrl(-1); + print ''; // With edge and chrome the td overflow is not supported correctly when content is not full text. + if ($obj->fk_user_action > 0 && !isset($cache_user_list[$obj->fk_user_action])) { + $userstatic = new User($db); + $res = $userstatic->fetch($obj->fk_user_action); + if ($res > 0) { + $cache_user_list[$obj->fk_user_action] = $userstatic; + } + } + if (isset($cache_user_list[$obj->fk_user_action])) { + print $cache_user_list[$obj->fk_user_action]->getNomUrl(-1); } else { print ' '; } @@ -1006,13 +1067,14 @@ while ($i < $imaxinloop) { // Start date if (!empty($arrayfields['a.datep']['checked'])) { - print ''; + print ''; if (empty($obj->fulldayevent)) { 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 : 'tzuserrel')); } + print ''; $late = 0; if ($actionstatic->hasDelay() && $actionstatic->percentage >= 0 && $actionstatic->percentage < 100 ) { $late = 1; @@ -1025,13 +1087,14 @@ while ($i < $imaxinloop) { // End date if (!empty($arrayfields['a.datep2']['checked'])) { - print ''; + print ''; if (empty($obj->fulldayevent)) { 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 : 'tzuserrel')); } + print ''; print '
'; +echo '
'; echo ''; echo ''; @@ -847,10 +850,11 @@ foreach ($typeofevents as $typeofevent) { // Show days of the current week $curtime = dol_time_plus_duree($firstdaytoshow, $iter_day, 'd'); - $tmparray = dol_getdate($curtime, 'fast'); - $tmpday = $tmparray['mday']; - $tmpmonth = $tmparray['mon']; - $tmpyear = $tmparray['year']; + // $curtime is a gmt time, but we want the day, month, year in user TZ + $tmpday = dol_print_date($curtime, "%d", "tzuserrel"); + $tmpmonth = dol_print_date($curtime, "%m", "tzuserrel"); + $tmpyear = dol_print_date($curtime, "%Y", "tzuserrel"); + //var_dump($curtime.' '.$tmpday.' '.$tmpmonth.' '.$tmpyear); $style = 'cal_current_month'; if ($iter_day == 6) { @@ -875,6 +879,8 @@ foreach ($typeofevents as $typeofevent) { echo "
\n"; echo "
"; +echo '
'; + if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) { $langs->load("commercial"); print '
'.$langs->trans("Legend").':
'; @@ -984,14 +990,14 @@ function show_day_events_pertype($username, $day, $month, $year, $monthshown, $s // We are in a particular day for $username, now we scan all events foreach ($eventarray as $daykey => $notused) { - $annee = dol_print_date($daykey, '%Y'); - $mois = dol_print_date($daykey, '%m'); - $jour = dol_print_date($daykey, '%d'); + $annee = dol_print_date($daykey, '%Y', 'tzuserrel'); + $mois = dol_print_date($daykey, '%m', 'tzuserrel'); + $jour = dol_print_date($daykey, '%d', 'tzuserrel'); - if ($day == $jour && $month == $mois && $year == $annee) { // Is it the day we are looking for when calling function ? + if ($day == $jour && (int) $month == (int) $mois && $year == $annee) { // Is it the day we are looking for when calling function ? // Scan all event for this date foreach ($eventarray[$daykey] as $index => $event) { - //print $daykey.' '.$year.'-'.$month.'-'.$day.' -> '.$event->id.' '.$index.' '.$annee.'-'.$mois.'-'.$jour."
\n"; + //print 'daykey='.$daykey.' '.$year.'-'.$month.'-'.$day.' -> '.$event->id.' '.$index.' '.$annee.'-'.$mois.'-'.$jour."
\n"; //var_dump($event); $keysofuserassigned = array_keys($event->userassigned); @@ -1173,7 +1179,7 @@ function show_day_events_pertype($username, $day, $month, $year, $monthshown, $s } } - // Now output $casesX + // Now output $casesX from start hour to end hour for ($h = $begin_h; $h < $end_h; $h++) { $color1 = ''; $color2 = ''; $style1 = ''; $style2 = ''; @@ -1214,11 +1220,12 @@ function show_day_events_pertype($username, $day, $month, $year, $monthshown, $s } } - $ids1 = ''; $ids2 = ''; - if (count($cases1[$h]) && array_keys($cases1[$h])) { + $ids1 = ''; + $ids2 = ''; + if (!empty($cases1[$h]) && is_array($cases1[$h]) && count($cases1[$h]) && array_keys($cases1[$h])) { $ids1 = join(',', array_keys($cases1[$h])); } - if (count($cases2[$h]) && array_keys($cases2[$h])) { + if (!empty($cases2[$h]) && is_array($cases2[$h]) && count($cases2[$h]) && array_keys($cases2[$h])) { $ids2 = join(',', array_keys($cases2[$h])); } @@ -1227,7 +1234,7 @@ function show_day_events_pertype($username, $day, $month, $year, $monthshown, $s } else { echo ''; } - if (count($cases1[$h]) == 1) { // only 1 event + if (!empty($cases1[$h]) && is_array($cases1[$h]) && count($cases1[$h]) == 1) { // only 1 event $output = array_slice($cases1[$h], 0, 1); $title1 = $langs->trans("Ref").' '.$ids1.($title1 ? ' - '.$title1 : ''); if ($output[0]['string']) { @@ -1236,12 +1243,12 @@ function show_day_events_pertype($username, $day, $month, $year, $monthshown, $s if ($output[0]['color']) { $color1 = $output[0]['color']; } - } elseif (count($cases1[$h]) > 1) { + } elseif (!empty($cases1[$h]) && is_array($cases1[$h]) && count($cases1[$h]) > 1) { $title1 = $langs->trans("Ref").' '.$ids1.($title1 ? ' - '.$title1 : ''); $color1 = '222222'; } - if (count($cases2[$h]) == 1) { // only 1 event + if (!empty($cases2[$h]) && is_array($cases2[$h]) && count($cases2[$h]) == 1) { // only 1 event $output = array_slice($cases2[$h], 0, 1); $title2 = $langs->trans("Ref").' '.$ids2.($title2 ? ' - '.$title2 : ''); if ($output[0]['string']) { @@ -1250,7 +1257,7 @@ function show_day_events_pertype($username, $day, $month, $year, $monthshown, $s if ($output[0]['color']) { $color2 = $output[0]['color']; } - } elseif (count($cases2[$h]) > 1) { + } elseif (!empty($cases2[$h]) && is_array($cases2[$h]) && count($cases2[$h]) > 1) { $title2 = $langs->trans("Ref").' '.$ids2.($title2 ? ' - '.$title2 : ''); $color2 = '222222'; } diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index 5c5ef948c30..340efbf30a8 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -349,27 +349,30 @@ $next_year = $next['year']; $next_month = $next['month']; $next_day = $next['day']; -// Define firstdaytoshow and lastdaytoshow (warning: lastdaytoshow is last second to show + 1) -$firstdaytoshow = dol_mktime(0, 0, 0, $first_month, $first_day, $first_year, 'gmt'); - +// Define firstdaytoshow and lastdaytoshow. Warning: lastdaytoshow is last second to show + 1 +// $firstdaytoshow and lastdaytoshow become a gmt dates to use to search/compare because first_xxx are in tz idea and we used tzuserrel +$firstdaytoshow = dol_mktime(0, 0, 0, $first_month, $first_day, $first_year, 'tzuserrel'); $nb_weeks_to_show = (!empty($conf->global->AGENDA_NB_WEEKS_IN_VIEW_PER_USER)) ? ((int) $conf->global->AGENDA_NB_WEEKS_IN_VIEW_PER_USER * 7) : 7; $lastdaytoshow = dol_time_plus_duree($firstdaytoshow, $nb_weeks_to_show, 'd'); //print $firstday.'-'.$first_month.'-'.$first_year; -//print dol_print_date($firstdaytoshow,'dayhour'); -//print dol_print_date($lastdaytoshow,'dayhour'); +//print dol_print_date($firstdaytoshow, 'dayhour', 'gmt'); +//print dol_print_date($lastdaytoshow,'dayhour', 'gmt'); $max_day_in_month = date("t", dol_mktime(0, 0, 0, $month, 1, $year, 'gmt')); $tmpday = $first_day; $picto = 'calendarweek'; -$nav = "trans("Previous"))."\">   \n"; +// Show navigation bar +$nav = ''; $nav .= $form->selectDate($dateselect, 'dateselect', 0, 0, 1, '', 1, 0); $nav .= ' '; @@ -475,7 +478,7 @@ if (empty($reshook)) { $newparam = ''; $newcardbutton = ''; -if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { +if ($user->rights->agenda->myactions->create || $user->hasRight('agenda', 'allactions', 'create')) { $tmpforcreatebutton = dol_getdate(dol_now(), true); $newparam .= '&month='.urlencode(str_pad($month, 2, "0", STR_PAD_LEFT)).'&year='.urlencode($tmpforcreatebutton['year']); @@ -628,7 +631,7 @@ if ($type) { if ($status == '0') { $sql .= " AND a.percent = 0"; } -if ($status == '-1' || $status == 'na') { +if ($status === 'na') { // Not applicable $sql .= " AND a.percent = -1"; } @@ -655,7 +658,7 @@ if ($filtert > 0 || $usergroup > 0) { } // Sort on date $sql .= ' ORDER BY fk_user_action, datep'; //fk_user_action - +//print $sql; dol_syslog("comm/action/peruser.php", LOG_DEBUG); $resql = $db->query($sql); @@ -665,6 +668,7 @@ if ($resql) { $i = 0; while ($i < $num) { $obj = $db->fetch_object($resql); + //print $obj->fk_user_action.' '.$obj->id."
"; // Discard auto action if option is on if (!empty($conf->global->AGENDA_ALWAYS_HIDE_AUTO) && $obj->code == 'AC_OTH_AUTO') { @@ -675,6 +679,7 @@ if ($resql) { $datep = $db->jdate($obj->datep); $datep2 = $db->jdate($obj->datep2); + // Create a new object action $event = new ActionComm($db); $event->id = $obj->id; @@ -717,13 +722,15 @@ if ($resql) { } } + //print '
'.$i.' - eventid='.$event->id.' '.dol_print_date($event->date_start_in_calendar, 'dayhour').' '.dol_print_date($firstdaytoshow, 'dayhour').' - '.dol_print_date($event->date_end_in_calendar, 'dayhour').' '.dol_print_date($lastdaytoshow, 'dayhour').'
'."\n"; + // Check values if ($event->date_end_in_calendar < $firstdaytoshow || $event->date_start_in_calendar >= $lastdaytoshow) { // This record is out of visible range unset($event); } else { - //print $i.' - '.dol_print_date($this->date_start_in_calendar, 'dayhour').' - '.dol_print_date($this->date_end_in_calendar, 'dayhour').'
'."\n"; + //print $i.' - eventid='.$event->id.' '.dol_print_date($event->date_start_in_calendar, 'dayhour').' - '.dol_print_date($event->date_end_in_calendar, 'dayhour').'
'."\n"; $event->fetch_userassigned(); // This load $event->userassigned if ($event->date_start_in_calendar < $firstdaytoshow) { @@ -744,7 +751,7 @@ if ($resql) { $loop = true; $j = 0; $daykey = dol_mktime(0, 0, 0, $mois, $jour, $annee, 'gmt'); do { - //if ($event->id==408) print 'daykey='.$daykey.' '.$event->datep.' '.$event->datef.'
'; + //print 'Add event into eventarray for daykey='.$daykey.'='.dol_print_date($daykey, 'dayhour', 'gmt').' '.$event->id.' '.$event->datep.' '.$event->datef.'
'; $eventarray[$daykey][] = $event; $j++; @@ -802,6 +809,7 @@ echo ''; $currentdaytoshow = $firstdaytoshow; echo '
'; +//print dol_print_date($currentdaytoshow, 'dayhour', 'gmt'); while ($currentdaytoshow < $lastdaytoshow) { echo ''; @@ -853,9 +861,9 @@ while ($currentdaytoshow < $lastdaytoshow) { echo ''.$langs->trans("Day".(($i + (isset($conf->global->MAIN_START_WEEK) ? $conf->global->MAIN_START_WEEK : 1)) % 7)).''; print "
"; if ($i) { - print dol_print_date(dol_time_plus_duree($currentdaytoshow, $i, 'd'), 'day'); + print dol_print_date(dol_time_plus_duree($currentdaytoshow, $i, 'd'), 'day', 'tzuserrel'); } else { - print dol_print_date($currentdaytoshow, 'day'); + print dol_print_date($currentdaytoshow, 'day', 'tzuserrel'); } echo "\n"; $i++; @@ -940,26 +948,6 @@ while ($currentdaytoshow < $lastdaytoshow) { $usernames[] = $tmpuser; } - /* - if ($filtert > 0) - { - $tmpuser = new User($db); - $tmpuser->fetch($filtert); - $usernames[] = $tmpuser; - } - else if ($usergroup) - { - $tmpgroup = new UserGroup($db); - $tmpgroup->fetch($usergroup); - $usernames = $tmpgroup->listUsersForGroup(); - } - else - { - $tmpgroup = new UserGroup($db); - //$tmpgroup->fetch($usergroup); No fetch, we want all users for all groups - $usernames = $tmpgroup->listUsersForGroup(); - }*/ - // Load array of colors by type $colorsbytype = array(); $labelbytype = array(); @@ -976,6 +964,8 @@ while ($currentdaytoshow < $lastdaytoshow) { $showheader = true; $var = false; foreach ($usernames as $username) { + //if ($username->login != 'admin') continue; + $var = !$var; echo ""; echo ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; - print '
'; - print '
'; @@ -993,10 +983,10 @@ while ($currentdaytoshow < $lastdaytoshow) { // Show days of the current week $curtime = dol_time_plus_duree($currentdaytoshow, $iter_day, 'd'); - $tmparray = dol_getdate($curtime, 'fast'); - $tmpday = $tmparray['mday']; - $tmpmonth = $tmparray['mon']; - $tmpyear = $tmparray['year']; + // $curtime is a gmt time, but we want the day, month, year in user TZ + $tmpday = dol_print_date($curtime, "%d", "tzuserrel"); + $tmpmonth = dol_print_date($curtime, "%m", "tzuserrel"); + $tmpyear = dol_print_date($curtime, "%Y", "tzuserrel"); //var_dump($curtime.' '.$tmpday.' '.$tmpmonth.' '.$tmpyear); $style = 'cal_current_month'; @@ -1134,17 +1124,22 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & //if ($username->id && $day==1) { //var_dump($eventarray); //} + //var_dump("------ username=".$username->login." for day=".$day); // We are in a particular day for $username, now we scan all events foreach ($eventarray as $daykey => $notused) { - $annee = dol_print_date($daykey, '%Y'); - $mois = dol_print_date($daykey, '%m'); - $jour = dol_print_date($daykey, '%d'); + $annee = dol_print_date($daykey, '%Y', 'tzuserrel'); + $mois = dol_print_date($daykey, '%m', 'tzuserrel'); + $jour = dol_print_date($daykey, '%d', 'tzuserrel'); + //var_dump("daykey=$daykey day=$day jour=$jour, month=$month mois=$mois, year=$year annee=$annee"); + + + if ($day == $jour && (int) $month == (int) $mois && $year == $annee) { // Is it the day we are looking for when calling function ? + //var_dump("day=$day jour=$jour month=$month mois=$mois year=$year annee=$annee"); - if ($day == $jour && $month == $mois && $year == $annee) { // Is it the day we are looking for when calling function ? // Scan all event for this date foreach ($eventarray[$daykey] as $index => $event) { - //print $daykey.' '.dol_print_date($daykey, 'dayhour', 'gmt').' '.$year.'-'.$month.'-'.$day.' -> '.$event->id.' '.$index.' '.$annee.'-'.$mois.'-'.$jour."
\n"; + //print 'daykey='.$daykey.'='.dol_print_date($daykey, 'dayhour', 'gmt').' '.$year.'-'.$month.'-'.$day.' -> This event: '.$event->id.' '.$index.' is open for this daykey '.$annee.'-'.$mois.'-'.$jour."
\n"; //var_dump($event); $keysofuserassigned = array_keys($event->userassigned); @@ -1353,7 +1348,7 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & } } - // Now output $casesX + // Now output $casesX from start hour to end hour for ($h = $begin_h; $h < $end_h; $h++) { $color1 = ''; $color2 = ''; $style1 = ''; $style2 = ''; @@ -1435,7 +1430,7 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & $title2 = $langs->trans("Ref").' '.$ids2.($title2 ? ' - '.$title2 : ''); $color2 = '222222'; } - print ''; + print '
'; print '
id > 0) { print "
"; + print '
'; + // Prospection level and status if ($object->client == 2 || $object->client == 3) { - print '
'; - print '
'; print ''; // Level of prospection print ''; } @@ -576,162 +585,179 @@ while ($i < min($num, $limit)) { $chargesociale_static->ref = $obj->rowid; $chargesociale_static->label = $obj->label; $chargesociale_static->type_label = $obj->type_label; + $chargesociale_static->amount = $obj->amount; + $chargesociale_static->paye = $obj->paye; + $chargesociale_static->date_ech = $obj->date_ech; + if (isModEnabled('project')) { $projectstatic->id = $obj->project_id; $projectstatic->ref = $obj->project_ref; $projectstatic->title = $obj->project_label; } - - print ''; - - // Line number - if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; - if (!$i) { - $totalarray['nbfield']++; + $chargesociale_static->fk_project = $projectstatic->getNomUrl(); + print $chargesociale_static->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print ''; + print ''; } - } + } else { + print ''; - // Label - if (!empty($arrayfields['cs.libelle']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Type - if (!empty($arrayfields['cs.fk_type']['checked'])) { - $typelabeltoshow = $obj->type_label; - $typelabelpopup = $obj->type_label; - if (isModEnabled('accounting')) { - $typelabelpopup .= ' - '.$langs->trans("AccountancyCode").': '.$obj->type_accountancy_code; - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date - if (!empty($arrayfields['cs.date_ech']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date end period - if (!empty($arrayfields['cs.periode']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Project ref - if (!empty($arrayfields['p.ref']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['cs.fk_user']['checked'])) { - // Employee - print ''; + if (!$i) { + $totalarray['nbfield']++; } - print $ustatic->getNomUrl(-1); } - print "\n"; + + // Ref + if (!empty($arrayfields['cs.rowid']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Label + if (!empty($arrayfields['cs.libelle']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Type + if (!empty($arrayfields['cs.fk_type']['checked'])) { + $typelabeltoshow = $obj->type_label; + $typelabelpopup = $obj->type_label; + if (isModEnabled('accounting')) { + $typelabelpopup .= ' - '.$langs->trans("AccountancyCode").': '.$obj->type_accountancy_code; + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date + if (!empty($arrayfields['cs.date_ech']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date end period + if (!empty($arrayfields['cs.periode']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project ref + if (!empty($arrayfields['p.ref']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + if (!empty($arrayfields['cs.fk_user']['checked'])) { + // Employee + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Type + if (!empty($arrayfields['cs.fk_mode_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Account + if (!empty($arrayfields['cs.fk_account']['checked'])) { + print ''; + if (!$i) $totalarray['nbfield']++; + } + + // Amount + if (!empty($arrayfields['cs.amount']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'totalttcfield'; + } + $totalarray['val']['totalttcfield'] += $obj->amount; + } + + // Status + if (!empty($arrayfields['cs.paye']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Buttons + print ''; if (!$i) { $totalarray['nbfield']++; } + + print ''."\n"; } - - // Type - if (!empty($arrayfields['cs.fk_mode_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Account - if (!empty($arrayfields['cs.fk_account']['checked'])) { - print ''; - if (!$i) $totalarray['nbfield']++; - } - - // Amount - if (!empty($arrayfields['cs.amount']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'totalttcfield'; - } - $totalarray['val']['totalttcfield'] += $obj->amount; - } - - // Status - if (!empty($arrayfields['cs.paye']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Buttons - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - - print ''."\n"; - $i++; } diff --git a/htdocs/compta/stats/byratecountry.php b/htdocs/compta/stats/byratecountry.php index fb8ad4de1a5..b9dd6c7429d 100644 --- a/htdocs/compta/stats/byratecountry.php +++ b/htdocs/compta/stats/byratecountry.php @@ -461,9 +461,9 @@ if ($modecompta == 'CREANCES-DETTES') { $j -= 12; } $monthj = 'month'.str_pad($j, 2, '0', STR_PAD_LEFT); - print ''; + print ''; } - print ''; + print ''; print ''; } else { print $db->lasterror(); // Show last sql error diff --git a/htdocs/compta/stats/cabyprodserv.php b/htdocs/compta/stats/cabyprodserv.php index dc0fa94030c..e747c4380a4 100644 --- a/htdocs/compta/stats/cabyprodserv.php +++ b/htdocs/compta/stats/cabyprodserv.php @@ -324,7 +324,7 @@ if ($modecompta == 'CREANCES-DETTES') { } if ($selected_cat === -2) { // Without any category $sql .= " AND cp.fk_product is null"; - } elseif ($selected_cat) { // Into a specific category + } elseif ($selected_cat > 0) { // Into a specific category if ($subcat) { $TListOfCats = $categorie->get_full_arbo('product', $selected_cat, 1); diff --git a/htdocs/compta/stats/cabyuser.php b/htdocs/compta/stats/cabyuser.php index b880420d4fc..130d41d1d66 100644 --- a/htdocs/compta/stats/cabyuser.php +++ b/htdocs/compta/stats/cabyuser.php @@ -295,11 +295,13 @@ if ($result) { $num = $db->num_rows($result); $i = 0; while ($i < $num) { - $obj = $db->fetch_object($result); - $amount_ht[$obj->rowid] = $obj->amount; + $obj = $db->fetch_object($result); + + $amount_ht[$obj->rowid] = (empty($obj->amount) ? 0 : $obj->amount); $amount[$obj->rowid] = $obj->amount_ttc; $name[$obj->rowid] = $obj->name.' '.$obj->firstname; - $catotal_ht += $obj->amount; + + $catotal_ht += (empty($obj->amount) ? 0 : $obj->amount); $catotal += $obj->amount_ttc; $i++; } diff --git a/htdocs/compta/stats/casoc.php b/htdocs/compta/stats/casoc.php index 870cfbd56c6..b499ca17c71 100644 --- a/htdocs/compta/stats/casoc.php +++ b/htdocs/compta/stats/casoc.php @@ -360,19 +360,23 @@ if ($result) { $i = 0; while ($i < $num) { $obj = $db->fetch_object($result); - $amount_ht[$obj->socid] = $obj->amount; - $amount[$obj->socid] = $obj->amount_ttc; - $fullname = $obj->name; + + $amount_ht[$obj->socid] = (empty($obj->amount) ? 0 : $obj->amount); + $amount[$obj->socid] = $obj->amount_ttc; + $fullname = $obj->name; if (!empty($obj->name_alias)) { $fullname .= ' ('.$obj->name_alias.')'; } - $name[$obj->socid] = $fullname; - $address_zip[$obj->socid] = $obj->zip; - $address_town[$obj->socid] = $obj->town; - $address_pays[$obj->socid] = getCountry($obj->fk_pays); - $catotal_ht += $obj->amount; - $catotal += $obj->amount_ttc; - $i++; + $name[$obj->socid] = $fullname; + + $address_zip[$obj->socid] = $obj->zip; + $address_town[$obj->socid] = $obj->town; + $address_pays[$obj->socid] = getCountry($obj->fk_pays); + + $catotal_ht += (empty($obj->amount) ? 0 : $obj->amount); + $catotal += $obj->amount_ttc; + + $i++; } } else { dol_print_error($db); @@ -401,12 +405,20 @@ if ($modecompta == "RECETTES-DEPENSES") { $i = 0; while ($i < $num) { $obj = $db->fetch_object($result); - $amount[$obj->rowid] += $obj->amount_ttc; - $name[$obj->rowid] = $obj->name; - $address_zip[$obj->rowid] = $obj->zip; - $address_town[$obj->rowid] = $obj->town; - $address_pays[$obj->rowid] = getCountry($obj->fk_pays); + + if (empty($amount[$obj->socid])) { + $amount[$obj->socid] = $obj->amount_ttc; + } else { + $amount[$obj->socid] += $obj->amount_ttc; + } + + $name[$obj->socid] = $obj->name; + $address_zip[$obj->socid] = ''; + $address_town[$obj->socid] = ''; + $address_pays[$obj->socid] = 0; + $catotal += $obj->amount_ttc; + $i++; } } else { diff --git a/htdocs/compta/stats/index.php b/htdocs/compta/stats/index.php index 4d65c201ffd..7d70bc10527 100644 --- a/htdocs/compta/stats/index.php +++ b/htdocs/compta/stats/index.php @@ -431,7 +431,7 @@ for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) { // Value turnover of month print ''; print '-'; } - if (isset($cum[$caseprev]) && !$cum[$caseprev] && !$cum[$case]) { + if (isset($cum[$caseprev]) && empty($cum[$caseprev]) && empty($cum[$case])) { print '+0%'; } - if (!isset($cum[$caseprev]) && !$cum[$case]) { + if (!isset($cum[$caseprev]) && empty($cum[$case])) { print '-'; } } else { @@ -489,8 +489,16 @@ for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) { } if ($annee < $year_end || ($annee == $year_end && $mois <= $month_end)) { - $total_ht[$annee] += ((!empty($cum_ht[$case])) ? $cum_ht[$case] : 0); - $total[$annee] += $cum[$case]; + if (empty($total_ht[$annee])) { + $total_ht[$annee] = (empty($cum_ht[$case]) ? 0 : $cum_ht[$case]); + } else { + $total_ht[$annee] += (empty($cum_ht[$case]) ? 0 : $cum_ht[$case]); + } + if (empty($total[$annee])) { + $total[$annee] = empty($cum[$case]) ? 0 : $cum[$case]; + } else { + $total[$annee] += empty($cum[$case]) ? 0 : $cum[$case]; + } } } @@ -569,7 +577,7 @@ for ($annee = $year_start; $annee <= $year_end; $annee++) { // Montant total HT if ($total_ht[$annee] || ($annee >= $minyear && $annee <= max($nowyear, $maxyear))) { print '"; } else { print ''; @@ -577,9 +585,9 @@ for ($annee = $year_start; $annee <= $year_end; $annee++) { } // Total amount - if ($total[$annee] || ($annee >= $minyear && $annee <= max($nowyear, $maxyear))) { + if (!empty($total[$annee]) || ($annee >= $minyear && $annee <= max($nowyear, $maxyear))) { print '"; } else { print ''; @@ -587,24 +595,24 @@ for ($annee = $year_start; $annee <= $year_end; $annee++) { // Pourcentage total if ($annee > $minyear && $annee <= max($nowyear, $maxyear)) { - if ($total[$annee - 1] && $total[$annee]) { + if (!empty($total[$annee - 1]) && !empty($total[$annee])) { $percent = (round(($total[$annee] - $total[$annee - 1]) / $total[$annee - 1], 4) * 100); print ''; } - if ($total[$annee - 1] && !$total[$annee]) { + if (!empty($total[$annee - 1]) && empty($total[$annee])) { print ''; } - if (!$total[$annee - 1] && $total[$annee]) { + if (empty($total[$annee - 1]) && !empty($total[$annee])) { print ''; } - if (!$total[$annee - 1] && !$total[$annee]) { + if (empty($total[$annee - 1]) && empty($total[$annee])) { print ''; } } else { print ''; } - if ($cum[$caseprev] && !$cum[$case]) { + if (!empty($cum[$caseprev]) && empty($cum[$case])) { print ''; } - if (!$cum[$caseprev] && $cum[$case]) { + if (empty($cum[$caseprev]) && !empty($cum[$case])) { //print ''; print ''; } - if (isset($cum[$caseprev]) && !$cum[$caseprev] && !$cum[$case]) { + if (isset($cum[$caseprev]) && empty($cum[$caseprev]) && empty($cum[$case])) { print ''; } - if (!isset($cum[$caseprev]) && !$cum[$case]) { + if (!isset($cum[$caseprev]) && empty($cum[$case])) { print ''; } } else { @@ -415,8 +418,16 @@ for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) { } } - $total_ht[$annee] += ((!empty($cum_ht[$case])) ? $cum_ht[$case] : 0); - $total[$annee] += $cum[$case]; + if (empty($total_ht[$annee])) { + $total_ht[$annee] = ((!empty($cum_ht[$case])) ? $cum_ht[$case] : 0); + } else { + $total_ht[$annee] += ((!empty($cum_ht[$case])) ? $cum_ht[$case] : 0); + } + if (empty($total[$annee])) { + $total[$annee] = (empty($cum[$case]) ? 0 : $cum[$case]); + } else { + $total[$annee] += (empty($cum[$case]) ? 0 : $cum[$case]); + } } print ''; diff --git a/htdocs/compta/stats/supplier_turnover_by_prodserv.php b/htdocs/compta/stats/supplier_turnover_by_prodserv.php index 611de00b50f..d641a513e54 100644 --- a/htdocs/compta/stats/supplier_turnover_by_prodserv.php +++ b/htdocs/compta/stats/supplier_turnover_by_prodserv.php @@ -188,6 +188,7 @@ $allparams = array_merge($commonparams, $headerparams, $tableparams); $headerparams = array_merge($commonparams, $headerparams); $tableparams = array_merge($commonparams, $tableparams); +$paramslink = ''; foreach ($allparams as $key => $value) { $paramslink .= '&'.$key.'='.$value; } @@ -251,7 +252,9 @@ if ($date_end == dol_time_plus_duree($date_start, 1, 'y') - 1) { $periodlink = ''; } -report_header($name, $namelink, $period, $periodlink, $description, $builddate, $exportlink, $tableparams, $calcmode); +$exportlink = ''; + +report_header($name, '', $period, $periodlink, $description, $builddate, $exportlink, $tableparams, $calcmode); if (isModEnabled('accounting') && $modecompta != 'BOOKKEEPING') { print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1); @@ -309,20 +312,23 @@ if ($modecompta == 'CREANCES-DETTES') { $sql .= $db->order($sortfield, $sortorder); dol_syslog("supplier_turnover_by_prodserv", 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) { - $obj = $db->fetch_object($result); + $obj = $db->fetch_object($resql); + $amount_ht[$obj->rowid] = $obj->amount; $amount[$obj->rowid] = $obj->amount_ttc; $qty[$obj->rowid] = $obj->qty; $name[$obj->rowid] = $obj->ref.' - '.$obj->label; $type[$obj->rowid] = $obj->product_type; + $catotal_ht += $obj->amount; $catotal += $obj->amount_ttc; $qtytotal += $obj->qty; + $i++; } } else { @@ -407,7 +413,7 @@ if ($modecompta == 'CREANCES-DETTES') { $_SERVER["PHP_SELF"], "amount", "", - $classslink, + $paramslink, 'class="right"', $sortfield, $sortorder diff --git a/htdocs/compta/stats/supplier_turnover_by_thirdparty.php b/htdocs/compta/stats/supplier_turnover_by_thirdparty.php index 494ad591766..2b590e05fd9 100644 --- a/htdocs/compta/stats/supplier_turnover_by_thirdparty.php +++ b/htdocs/compta/stats/supplier_turnover_by_thirdparty.php @@ -153,7 +153,6 @@ $headerparams['date_startday'] = $date_startday; $headerparams['date_endyear'] = $date_endyear; $headerparams['date_endmonth'] = $date_endmonth; $headerparams['date_endday'] = $date_endday; -$headerparams['q'] = $q; $tableparams = array(); $tableparams['search_categ'] = $selected_cat; @@ -168,6 +167,7 @@ $allparams = array_merge($commonparams, $headerparams, $tableparams); $headerparams = array_merge($commonparams, $headerparams); $tableparams = array_merge($commonparams, $tableparams); +$paramslink = ''; foreach ($allparams as $key => $value) { $paramslink .= '&'.$key.'='.$value; } @@ -230,6 +230,8 @@ if ($date_end == dol_time_plus_duree($date_start, 1, 'y') - 1) { $periodlink = ''; } +$exportlink = ''; + report_header($name, '', $period, $periodlink, $description, $builddate, $exportlink, $tableparams, $calcmode); if (isModEnabled('accounting') && $modecompta != 'BOOKKEEPING') { @@ -315,22 +317,29 @@ $sql .= " GROUP BY s.rowid, s.nom, s.zip, s.town, s.fk_pays"; $sql .= " ORDER BY s.rowid"; //echo $sql; +$catotal_ht = 0; +$catotal = 0; + dol_syslog("supplier_turnover_by_thirdparty", 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) { - $obj = $db->fetch_object($result); - $amount_ht[$obj->socid] = $obj->amount; - $amount[$obj->socid] = $obj->amount_ttc; - $name[$obj->socid] = $obj->name.' '.$obj->firstname; - $address_zip[$obj->socid] = $obj->zip; - $address_town[$obj->socid] = $obj->town; - $address_pays[$obj->socid] = getCountry($obj->fk_pays); - $catotal_ht += $obj->amount; - $catotal += $obj->amount_ttc; - $i++; + $obj = $db->fetch_object($resql); + + $amount_ht[$obj->socid] = (empty($obj->amount) ? 0 : $obj->amount); + $amount[$obj->socid] = $obj->amount_ttc; + //$name[$obj->socid] = $obj->name.' '.$obj->firstname; + + $address_zip[$obj->socid] = $obj->zip; + $address_town[$obj->socid] = $obj->town; + $address_pays[$obj->socid] = getCountry($obj->fk_pays); + + $catotal_ht += (empty($obj->amount) ? 0 : $obj->amount); + $catotal += $obj->amount_ttc; + + $i++; } } else { dol_print_error($db); diff --git a/htdocs/compta/tva/card.php b/htdocs/compta/tva/card.php index e7c7678b818..c78b41ba274 100644 --- a/htdocs/compta/tva/card.php +++ b/htdocs/compta/tva/card.php @@ -333,6 +333,10 @@ if ($action == 'confirm_clone' && $confirm == 'yes' && ($user->rights->tax->char $object->id = $object->ref = null; $object->paye = 0; + if (GETPOST('amount', 'alphanohtml')) { + $object->amount = price2num(GETPOST('amount', 'alphanohtml'), 'MT', 2); + } + if (GETPOST('clone_label', 'alphanohtml')) { $object->label = GETPOST('clone_label', 'alphanohtml'); } else { @@ -405,7 +409,7 @@ if ($action == 'create') { $("#label_type_payment").removeClass("fieldrequired"); $(".hide_if_no_auto_create_payment").hide(); } - }; + } $("#radiopayment").click(function() { $("#label").val($(this).data("label")); }); @@ -540,6 +544,7 @@ if ($id > 0) { //$formquestion[] = array('type' => 'date', 'name' => 'clone_date_ech', 'label' => $langs->trans("Date"), 'value' => -1); $formquestion[] = array('type' => 'date', 'name' => 'clone_period', 'label' => $langs->trans("PeriodEndDate"), 'value' => -1); + $formquestion[] = array('type' => 'text', 'name' => 'amount', 'label' => $langs->trans("Amount"), 'value' => price($object->amount), 'morecss' => 'width100'); print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneVAT', $object->ref), 'confirm_clone', $formquestion, 'yes', 1, 240); } diff --git a/htdocs/compta/tva/class/paymentvat.class.php b/htdocs/compta/tva/class/paymentvat.class.php index ec951d8d72d..fcc241c728d 100644 --- a/htdocs/compta/tva/class/paymentvat.class.php +++ b/htdocs/compta/tva/class/paymentvat.class.php @@ -366,27 +366,22 @@ class PaymentVAT extends CommonObject $this->fk_user_modif = (int) $this->fk_user_modif; } - - // Check parameters // Put here code to add control on parameters values // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."payment_vat SET"; - - $sql .= " fk_tva=".(isset($this->fk_tva) ? $this->fk_tva : "null").","; + $sql .= " fk_tva=".(isset($this->fk_tva) ? ((int) $this->fk_tva) : "null").","; $sql .= " datec=".(dol_strlen($this->datec) != 0 ? "'".$this->db->idate($this->datec)."'" : 'null').","; $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null').","; $sql .= " datep=".(dol_strlen($this->datep) != 0 ? "'".$this->db->idate($this->datep)."'" : 'null').","; - $sql .= " amount=".(isset($this->amount) ? $this->amount : "null").","; - $sql .= " fk_typepaiement=".(isset($this->fk_typepaiement) ? $this->fk_typepaiement : "null").","; - $sql .= " num_paiement=".(isset($this->num_paiement) ? "'".$this->db->escape($this->num_paiement)."'" : "null").","; + $sql .= " amount=".(isset($this->amount) ? (float) price2num($this->amount) : "null").","; + $sql .= " fk_typepaiement=".(isset($this->fk_typepaiement) ? ((int) $this->fk_typepaiement) : "null").","; + $sql .= " num_paiement=".(isset($this->num_payment) ? "'".$this->db->escape($this->num_payment)."'" : "null").","; $sql .= " note=".(isset($this->note) ? "'".$this->db->escape($this->note)."'" : "null").","; - $sql .= " fk_bank=".(isset($this->fk_bank) ? $this->fk_bank : "null").","; - $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? $this->fk_user_creat : "null").","; - $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null").""; - - + $sql .= " fk_bank=".(isset($this->fk_bank) ? ((int) $this->fk_bank) : "null").","; + $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? ((int) $this->fk_user_creat) : "null").","; + $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? ((int) $this->fk_user_modif) : "null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); diff --git a/htdocs/compta/tva/class/tva.class.php b/htdocs/compta/tva/class/tva.class.php index d6efb35ef2f..2ec1199dd29 100644 --- a/htdocs/compta/tva/class/tva.class.php +++ b/htdocs/compta/tva/class/tva.class.php @@ -226,7 +226,7 @@ class Tva extends CommonObject $sql .= " label='".$this->db->escape($this->label)."',"; $sql .= " note='".$this->db->escape($this->note)."',"; $sql .= " fk_user_creat=".((int) $this->fk_user_creat).","; - $sql .= " fk_user_modif=".($this->fk_user_modif > 0 ? $this->fk_user_modif : $user->id).""; + $sql .= " fk_user_modif=".((int) ($this->fk_user_modif > 0 ? $this->fk_user_modif : $user->id)); $sql .= " WHERE rowid=".((int) $this->id); dol_syslog(get_class($this)."::update", LOG_DEBUG); @@ -906,4 +906,40 @@ class Tva extends CommonObject return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status], '', $statusType, $mode); } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + //$return .= ''; // Can be image + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + if (property_exists($this, 'amount')) { + $return .= ' | '.$langs->trans("Amount").' : '.price($this->amount).''; + } + if (property_exists($this, 'type_payment')) { + $return .= '
'.$langs->trans("Payement").' : '.$this->type_payment.''; + } + if (property_exists($this, 'datev')) { + $return .= '
'.$langs->trans("DateEnd").' : '.dol_print_date($this->datev).''; + } + if (method_exists($this, 'LibStatut')) { + $return .= '
'.$this->LibStatut($this->paiementtype, 5, $this->alreadypaid).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/compta/tva/index.php b/htdocs/compta/tva/index.php index f0efe305d8c..37e7f75b306 100644 --- a/htdocs/compta/tva/index.php +++ b/htdocs/compta/tva/index.php @@ -229,6 +229,9 @@ llxHeader('', $name); //$textnextyear=" ".img_next($langs->trans("Next"), 'class="valignbottom"').""; //print load_fiche_titre($langs->transcountry("VAT", $mysoc->country_code), $textprevyear." ".$langs->trans("Year")." ".$year_start." ".$textnextyear, 'bill'); +$periodlink = ''; +$exportlink = ''; + report_header($name, '', $period, $periodlink, $description, $builddate, $exportlink, array(), $calcmode); //report_header($name,'',$textprevyear.$langs->trans("Year")." ".$year_start.$textnextyear,'',$description,$builddate,$exportlink,array(),$calcmode); @@ -242,7 +245,7 @@ if ($refresh === true) { print '
'; - print ''; - // Year NP - print ''; @@ -335,72 +335,97 @@ if ($modecompta == 'CREANCES-DETTES') { // Previous Fiscal year (N-1) foreach ($sommes as $code => $det) { - $vars[$code] = $det['NP']; + $vars[$code] = empty($det['NP']) ? 0 : $det['NP']; } $result = strtr($formula, $vars); + $result = str_replace('--', '+', $result); - //var_dump($result); - //$r = $AccCat->calculate($result); - $r = dol_eval($result, 1, 1, '1'); - //var_dump($r); + if (preg_match('/[a-z]/i', $result)) { + $r = 'Error bad formula: '.$result; + $rshort = 'Err'; + print ''; + } else { + //var_dump($result); + //$r = $AccCat->calculate($result); + $r = dol_eval($result, 1, 1, '1'); - print ''; + print ''; + } // Year N $code = $cat['code']; // code of categorie ('VTE', 'MAR', ...) - $sommes[$code]['NP'] += $r; + if (empty($sommes[$code]['NP'])) { + $sommes[$code]['NP'] = $r; + } else { + $sommes[$code]['NP'] += $r; + } // Current fiscal year (N) if (is_array($sommes) && !empty($sommes)) { foreach ($sommes as $code => $det) { - $vars[$code] = $det['N']; + $vars[$code] = empty($det['N']) ? 0 : $det['N']; } } $result = strtr($formula, $vars); + $result = str_replace('--', '+', $result); //$r = $AccCat->calculate($result); - $r = dol_eval($result, 1, 1, 1); + $r = dol_eval($result, 1, 1, '1'); - print ''; - $sommes[$code]['N'] += $r; + print ''; + if (empty($sommes[$code]['N'])) { + $sommes[$code]['N'] = $r; + } else { + $sommes[$code]['N'] += $r; + } // Detail by month foreach ($months as $k => $v) { if (($k + 1) >= $date_startmonth) { foreach ($sommes as $code => $det) { - $vars[$code] = $det['M'][$k]; + $vars[$code] = empty($det['M'][$k]) ? 0 : $det['M'][$k]; } $result = strtr($formula, $vars); + $result = str_replace('--', '+', $result); //$r = $AccCat->calculate($result); - $r = dol_eval($result, 1, 1, 1); + $r = dol_eval($result, 1, 1, '1'); print ''; - $sommes[$code]['M'][$k] += $r; + if (empty($sommes[$code]['M'][$k])) { + $sommes[$code]['M'][$k] = $r; + } else { + $sommes[$code]['M'][$k] += $r; + } } } + foreach ($months as $k => $v) { if (($k + 1) < $date_startmonth) { foreach ($sommes as $code => $det) { - $vars[$code] = $det['M'][$k]; + $vars[$code] = empty($det['M'][$k]) ? 0 : $det['M'][$k]; } $result = strtr($formula, $vars); + $result = str_replace('--', '+', $result); //$r = $AccCat->calculate($result); - $r = dol_eval($result, 1, 1, 1); + $r = dol_eval($result, 1, 1, '1'); print ''; - $sommes[$code]['M'][$k] += $r; + if (empty($sommes[$code]['M'][$k])) { + $sommes[$code]['M'][$k] = $r; + } else { + $sommes[$code]['M'][$k] += $r; + } } } print "\n"; //var_dump($sommes); - } else // normal category - { + } else { // normal category $code = $cat['code']; // Category code we process $totCat = array(); @@ -414,27 +439,37 @@ if ($modecompta == 'CREANCES-DETTES') { // Set $cpts with array of accounts in the category/group $cpts = $AccCat->getCptsCat($cat['rowid']); // We should loop over empty $cpts array, else the category _code_ is used in the formula, which leads to wrong result if the code is a number. - if (empty($cpts)) $cpts[] = array(); - + if (empty($cpts)) { + $cpts[] = array(); + } $arrayofaccountforfilter = array(); foreach ($cpts as $i => $cpt) { // Loop on each account. - $arrayofaccountforfilter[] = $cpt['account_number']; + if (isset($cpt['account_number'])) { + $arrayofaccountforfilter[] = $cpt['account_number']; + } } // N-1 if (!empty($arrayofaccountforfilter)) { - $return = $AccCat->getSumDebitCredit($arrayofaccountforfilter, $date_start_previous, $date_end_previous, $cat['dc'] ? $cat['dc'] : 0); - + $return = $AccCat->getSumDebitCredit($arrayofaccountforfilter, $date_start_previous, $date_end_previous, empty($cat['dc']) ? 0 : $cat['dc']); if ($return < 0) { setEventMessages(null, $AccCat->errors, 'errors'); $resultNP = 0; } else { - foreach ($cpts as $i => $cpt) { // Loop on each account. + foreach ($cpts as $i => $cpt) { // Loop on each account found $resultNP = empty($AccCat->sdcperaccount[$cpt['account_number']]) ? 0 : $AccCat->sdcperaccount[$cpt['account_number']]; - $totCat['NP'] += $resultNP; - $sommes[$code]['NP'] += $resultNP; + if (empty($totCat['NP'])) { + $totCat['NP'] = $resultNP; + } else { + $totCat['NP'] += $resultNP; + } + if (empty($sommes[$code]['NP'])) { + $sommes[$code]['NP'] = $resultNP; + } else { + $sommes[$code]['NP'] += $resultNP; + } $totPerAccount[$cpt['account_number']]['NP'] = $resultNP; } } @@ -456,63 +491,88 @@ if ($modecompta == 'CREANCES-DETTES') { } //var_dump($monthtoprocess.'_'.$yeartoprocess); - $return = $AccCat->getSumDebitCredit($cpt['account_number'], $date_start, $date_end, $cat['dc'] ? $cat['dc'] : 0, 'nofilter', $monthtoprocess, $yeartoprocess); - if ($return < 0) { - setEventMessages(null, $AccCat->errors, 'errors'); - $resultM = 0; + if (isset($cpt['account_number'])) { + $return = $AccCat->getSumDebitCredit($cpt['account_number'], $date_start, $date_end, empty($cat['dc']) ? 0 : $cat['dc'], 'nofilter', $monthtoprocess, $yeartoprocess); + if ($return < 0) { + setEventMessages(null, $AccCat->errors, 'errors'); + $resultM = 0; + } else { + $resultM = $AccCat->sdc; + } } else { - $resultM = $AccCat->sdc; + $resultM = 0; + } + if (empty($totCat['M'][$k])) { + $totCat['M'][$k] = $resultM; + } else { + $totCat['M'][$k] += $resultM; + } + if (empty($sommes[$code]['M'][$k])) { + $sommes[$code]['M'][$k] = $resultM; + } else { + $sommes[$code]['M'][$k] += $resultM; + } + if (isset($cpt['account_number'])) { + $totPerAccount[$cpt['account_number']]['M'][$k] = $resultM; } - $totCat['M'][$k] += $resultM; - $sommes[$code]['M'][$k] += $resultM; - $totPerAccount[$cpt['account_number']]['M'][$k] = $resultM; $resultN += $resultM; } - $totCat['N'] += $resultN; - $sommes[$code]['N'] += $resultN; - $totPerAccount[$cpt['account_number']]['N'] = $resultN; + if (empty($totCat)) { + $totCat['N'] = $resultN; + } else { + $totCat['N'] += $resultN; + } + if (empty($sommes[$code]['N'])) { + $sommes[$code]['N'] = $resultN; + } else { + $sommes[$code]['N'] += $resultN; + } + if (isset($cpt['account_number'])) { + $totPerAccount[$cpt['account_number']]['N'] = $resultN; + } } // Now output columns for row $code ('VTE', 'MAR', ...) - print ""; + print ''; // Column group - print ''; // Label of group - print ''; print ''; - print ''; + print ''; // Each month foreach ($totCat['M'] as $k => $v) { @@ -531,30 +591,48 @@ if ($modecompta == 'CREANCES-DETTES') { // Loop on detail of all accounts to output the detail if ($showaccountdetail != 'no') { foreach ($cpts as $i => $cpt) { - $resultNP = $totPerAccount[$cpt['account_number']]['NP']; - $resultN = $totPerAccount[$cpt['account_number']]['N']; + if (isset($cpt['account_number'])) { + $resultNP = $totPerAccount[$cpt['account_number']]['NP']; + $resultN = $totPerAccount[$cpt['account_number']]['N']; + } else { + $resultNP = 0; + $resultN = 0; + } if ($showaccountdetail == 'all' || $resultN != 0) { print ''; print ''; - print ''; print ''; - print ''; + print ''; // Make one call for each month foreach ($months as $k => $v) { if (($k + 1) >= $date_startmonth) { - $resultM = $totPerAccount[$cpt['account_number']]['M'][$k]; + if (isset($cpt['account_number'])) { + $resultM = $totPerAccount[$cpt['account_number']]['M'][$k]; + } else { + $resultM = 0; + } print ''; } } foreach ($months as $k => $v) { if (($k + 1) < $date_startmonth) { - $resultM = $totPerAccount[$cpt['account_number']]['M'][$k]; + if (isset($cpt['account_number'])) { + $resultM = empty($totPerAccount[$cpt['account_number']]['M'][$k]) ? 0 : $totPerAccount[$cpt['account_number']]['M'][$k]; + } else { + $resultM = 0; + } print ''; } } diff --git a/htdocs/compta/sociales/card.php b/htdocs/compta/sociales/card.php index 7c644c63e38..adb525c7d5e 100644 --- a/htdocs/compta/sociales/card.php +++ b/htdocs/compta/sociales/card.php @@ -557,7 +557,7 @@ if ($id > 0) { $morehtmlref .= ''; $morehtmlref .= ''; } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, 0, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, 0, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { @@ -632,7 +632,7 @@ if ($id > 0) { print '
'; + print ''; print "
'; print $langs->trans('ProspectLevel'); print ''; if ($action != 'editlevel' && $user->rights->societe->creer) { @@ -683,10 +683,11 @@ if ($object->id > 0) { } print '
"; - } - print '
'; - print '
'; + print '
'; + } else { + print '

'; + } $boxstat = ''; @@ -695,7 +696,7 @@ if ($object->id > 0) { // Lien recap $boxstat .= '
'; - $boxstat .= ''; + $boxstat .= '
'; $boxstat .= ''; + if ($mode == 'kanban') { + if ($i == 0) { + print '\n"; + print $bon->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print ''; + print ''; + } + } else { + print ''; - print ''; + print '\n"; - print ''; + + print '\n"; + print ''; + print ''; + + print '\n"; + + + print '\n"; + + print '\n"; + + print '\n"; + + print ''; + + print "\n"; } - print ''; - print img_object($langs->trans($link_title), $link_picto); - print ' '.$obj->invoiceref."\n"; - print ''; - print ''; - - print '\n"; - - - print '\n"; - - print '\n"; - - print '\n"; - - print ''; - - print "\n"; $i++; } } else { diff --git a/htdocs/compta/prelevement/orders_list.php b/htdocs/compta/prelevement/orders_list.php index 01ef33eea9d..bead580ab31 100644 --- a/htdocs/compta/prelevement/orders_list.php +++ b/htdocs/compta/prelevement/orders_list.php @@ -54,6 +54,8 @@ if (!$sortfield) { } $optioncss = GETPOST('optioncss', 'alpha'); +$mode = GETPOST('mode', 'alpha'); + // Get supervariables $statut = GETPOST('statut', 'int'); @@ -147,6 +149,9 @@ if ($result) { $i = 0; $param = ''; + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -161,6 +166,8 @@ if ($result) { $selectedfields = ''; $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')); if ($usercancreate) { $newcardbutton .= dolGetButtonTitle($langs->trans('NewStandingOrder'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/compta/prelevement/create.php?type='.urlencode($type)); } @@ -176,6 +183,8 @@ if ($result) { print ''; print ''; print ''; + print ''; + if ($type != '') { print ''; } @@ -220,27 +229,41 @@ if ($result) { $directdebitorder->id = $obj->rowid; $directdebitorder->ref = $obj->ref; - $directdebitorder->datec = $obj->datec; - $directdebitorder->amount = $obj->amount; + $directdebitorder->date_echeance = $obj->datec; + $directdebitorder->total = $obj->amount; $directdebitorder->statut = $obj->statut; - print ''; + if ($mode == 'kanban') { + if ($i == 0) { + print '\n"; + print $directdebitorder->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print ''; + print ''; + } + } else { + print ''; - print '\n"; + print '\n"; - print '\n"; + print '\n"; - print ''; + print '\n"; - print ''."\n"; + print ''; - print "\n"; + print ''."\n"; + + print "\n"; + } $i++; } } else { diff --git a/htdocs/compta/resultat/clientfourn.php b/htdocs/compta/resultat/clientfourn.php index 5fdf7220662..54f242edb7c 100644 --- a/htdocs/compta/resultat/clientfourn.php +++ b/htdocs/compta/resultat/clientfourn.php @@ -321,7 +321,7 @@ if ($modecompta == 'BOOKKEEPING') { if ($showaccountdetail == 'no') { if ($objp->pcg_type != $oldpcgtype) { - print ''; + print ''; $oldpcgtype = $objp->pcg_type; } } @@ -330,17 +330,17 @@ if ($modecompta == 'BOOKKEEPING') { print ''; print ''; print '\n"; - print '\n"; + print '\n"; print "\n"; } else { print ''; print '\n"; - print '\n"; + print '\n"; print "\n"; } @@ -367,7 +367,7 @@ if ($modecompta == 'BOOKKEEPING') { $cpts = $AccCat->getCptsCat(0, $tmppredefinedgroupwhere); foreach ($cpts as $j => $cpt) { - $return = $AccCat->getSumDebitCredit($cpt['account_number'], $date_start, $date_end, $cpt['dc']); + $return = $AccCat->getSumDebitCredit($cpt['account_number'], $date_start, $date_end, (empty($cpt['dc']) ? 0 : $cpt['dc'])); if ($return < 0) { setEventMessages(null, $AccCat->errors, 'errors'); $resultN = 0; @@ -380,7 +380,7 @@ if ($modecompta == 'BOOKKEEPING') { print ''; print ''; print ''; - print ''; + print ''; print "\n"; } } @@ -1539,27 +1539,27 @@ print ''; print ''; if ($modecompta == 'CREANCES-DETTES') { - print ''; + print ''; } elseif ($modecompta == 'RECETTES-DEPENSES') { print ''; } -print ''; +print ''; print ''; print ''; if ($modecompta == 'CREANCES-DETTES') { - print ''; + print ''; } elseif ($modecompta == 'RECETTES-DEPENSES') { print ''; } -print ''; +print ''; print ''; print ''; if ($modecompta == 'CREANCES-DETTES') { - print ''; + print ''; } elseif ($modecompta == 'RECETTES-DEPENSES') { print ''; } -print ''; +print ''; print ''; print "
'; if (isModEnabled("propal") && $user->rights->propal->lire) { @@ -1418,7 +1419,7 @@ if ($object->id > 0) { $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 .= ', f.datef as df, f.date_lim_reglement as dl, 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'; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f"; @@ -1426,7 +1427,7 @@ if ($object->id > 0) { $sql .= " WHERE f.fk_soc = s.rowid AND s.rowid = ".((int) $object->id); $sql .= " AND f.entity IN (".getEntity('invoice').")"; $sql .= ' GROUP BY f.rowid, f.ref, f.type, f.total_ht, f.total_tva, f.total_ttc,'; - $sql .= ' f.entity, f.datef, f.datec, f.paye, f.fk_statut,'; + $sql .= ' f.entity, f.datef, f.date_lim_reglement, f.datec, f.paye, f.fk_statut,'; $sql .= ' s.nom, s.rowid'; $sql .= " ORDER BY f.datef DESC, f.datec DESC"; @@ -1440,7 +1441,7 @@ if ($object->id > 0) { print ''; print ''; - print ''; - echo ''; + echo ''; echo ''; echo ''; echo ''; } // Bordereau diff --git a/htdocs/compta/bank/card.php b/htdocs/compta/bank/card.php index a923f3a0829..15cb5123e0f 100644 --- a/htdocs/compta/bank/card.php +++ b/htdocs/compta/bank/card.php @@ -515,6 +515,7 @@ if ($action == 'create') { // Show fields of bank account $sizecss = ''; foreach ($object->getFieldsToShow() as $val) { + $content = ''; if ($val == 'BankCode') { $name = 'code_banque'; $sizecss = 'minwidth100'; @@ -534,7 +535,7 @@ if ($action == 'create') { } print ''; - print ''; + print ''; print ''; } $ibankey = FormBank::getIBANLabel($object); @@ -545,10 +546,10 @@ if ($action == 'create') { // IBAN print ''; - print ''; + print ''; print ''; - print ''; + print ''; if (isModEnabled('paymentbybanktransfer')) { print ''; @@ -559,7 +560,7 @@ if ($action == 'create') { print '"; print ''; @@ -730,6 +731,7 @@ if ($action == 'create') { // Show fields of bank account foreach ($object->getFieldsToShow() as $val) { + $content = ''; if ($val == 'BankCode') { $content = $object->code_banque; } elseif ($val == 'DeskCode') { @@ -1034,31 +1036,32 @@ if ($action == 'create') { // If bank account print ''; - print ''; + print ''; print ''; // Show fields of bank account foreach ($object->getFieldsToShow() as $val) { + $content = ''; if ($val == 'BankCode') { $name = 'code_banque'; - $size = 8; + $css = 'with100'; $content = $object->code_banque; } elseif ($val == 'DeskCode') { $name = 'code_guichet'; - $size = 8; + $css = 'with100'; $content = $object->code_guichet; } elseif ($val == 'BankAccountNumber') { $name = 'number'; - $size = 18; + $css = 'with200'; $content = $object->number; } elseif ($val == 'BankAccountNumberKey') { $name = 'cle_rib'; - $size = 3; + $css = 'with50'; $content = $object->cle_rib; } print ''; - print ''; + print ''; print ''; } diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index a73fd2b5f2c..e144677832f 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -1060,8 +1060,8 @@ class Account extends CommonObject * Adds it to non existing supplied categories. * Existing categories are left untouch. * - * @param int[]|int $categories Category or categories IDs - * @return void + * @param int[]|int $categories Category or categories IDs + * @return int <0 if KO, >0 if OK */ public function setCategories($categories) { @@ -1077,8 +1077,6 @@ class Account extends CommonObject */ public function delete(User $user = null) { - global $conf; - $error = 0; $this->db->begin(); @@ -1096,8 +1094,8 @@ class Account extends CommonObject } if (!$error) { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_account"; - $sql .= " WHERE rowid = ".((int) $this->rowid); + $sql = "DELETE FROM ".MAIN_DB_PREFIX.$this->table_element; + $sql .= " WHERE rowid = ".((int) $this->id); dol_syslog(get_class($this)."::delete", LOG_DEBUG); $result = $this->db->query($sql); @@ -1748,6 +1746,40 @@ class Account extends CommonObject return false; } } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).''; + + if (property_exists($this, 'type_lib')) { + $return .= '
'.substr($this->type_lib[$this->type], 0, 24).'...'; + } + if (method_exists($this, 'solde')) { + $return .= '
'; + $return .= ''.$langs->trans("Balance").' : '.price($this->solde(1), 0, $langs, 1, -1, -1, $this->currency_code).''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/compta/bank/class/api_bankaccounts.class.php b/htdocs/compta/bank/class/api_bankaccounts.class.php index c9886a176f0..537c7c9acb6 100644 --- a/htdocs/compta/bank/class/api_bankaccounts.class.php +++ b/htdocs/compta/bank/class/api_bankaccounts.class.php @@ -122,8 +122,8 @@ class BankAccounts extends DolibarrApi /** * Get account by ID. * - * @param int $id ID of account - * @return array Account object + * @param int $id ID of account + * @return Object Object with cleaned properties * * @throws RestException */ @@ -313,9 +313,9 @@ class BankAccounts extends DolibarrApi /** * Update account * - * @param int $id ID of account - * @param array $request_data data - * @return int + * @param int $id ID of account + * @param array $request_data data + * @return Object Object with cleaned properties */ public function put($id, $request_data = null) { diff --git a/htdocs/compta/bank/class/bankcateg.class.php b/htdocs/compta/bank/class/bankcateg.class.php index 1795704d4ff..581bc5fd1da 100644 --- a/htdocs/compta/bank/class/bankcateg.class.php +++ b/htdocs/compta/bank/class/bankcateg.class.php @@ -80,7 +80,7 @@ class BankCateg // extends CommonObject $sql .= "label"; $sql .= ", entity"; $sql .= ") VALUES ("; - $sql .= " ".(!isset($this->label) ? 'NULL' : "'".$this->db->escape($this->label)."'").""; + $sql .= " ".(!isset($this->label) ? 'NULL' : "'".$this->db->escape($this->label)."'"); $sql .= ", ".((int) $conf->entity); $sql .= ")"; @@ -169,7 +169,7 @@ class BankCateg // extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."bank_categ SET"; - $sql .= " label=".(isset($this->label) ? "'".$this->db->escape($this->label)."'" : "null").""; + $sql .= " label=".(isset($this->label) ? "'".$this->db->escape($this->label)."'" : "null"); $sql .= " WHERE rowid=".((int) $this->id); $sql .= " AND entity = ".$conf->entity; diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php index 3d07c280559..d5888e0e7a1 100644 --- a/htdocs/compta/bank/class/paymentvarious.class.php +++ b/htdocs/compta/bank/class/paymentvarious.class.php @@ -768,4 +768,42 @@ class PaymentVarious extends CommonObject } return 0; } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + if (property_exists($this, 'fk_bank')) { + $return .= ' | '.$this->fk_bank.''; + } + if (property_exists($this, 'datep')) { + $return .= '
'.$langs->trans("Date").' : '.dol_print_date($this->db->jdate($this->datep), 'day').''; + } + if (property_exists($this, 'type_payment') && !empty($this->type_payment)) { + $return .= '
'.$langs->trans("Payment", $this->type_payment).' : '.$this->type_payment.''; + } + if (property_exists($this, 'accountancy_code')) { + $return .= '
'.$langs->trans("Account").' : '.$this->accountancy_code.''; + } + if (property_exists($this, 'amount')) { + $return .= '
'.$langs->trans("Debit").' : '.price($this->amount).''; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/compta/bank/graph.php b/htdocs/compta/bank/graph.php index c11e13f1e71..490107e4893 100644 --- a/htdocs/compta/bank/graph.php +++ b/htdocs/compta/bank/graph.php @@ -458,7 +458,7 @@ if ($result < 0) { if ($day > ($max + 86400)) { $datas[$i] = ''; // Valeur speciale permettant de ne pas tracer le graph } else { - $datas[$i] = 0 + $solde + $subtotal; + $datas[$i] = $solde + $subtotal; } $datamin[$i] = $object->min_desired; $dataall[$i] = $object->min_allowed; diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index 0014245ee48..2a0995af009 100644 --- a/htdocs/compta/bank/list.php +++ b/htdocs/compta/bank/list.php @@ -52,6 +52,7 @@ $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'bankaccountlist'; // To manage different context of search +$mode = GETPOST('mode', 'alpha'); $search_ref = GETPOST('search_ref', 'alpha'); $search_label = GETPOST('search_label', 'alpha'); @@ -305,6 +306,9 @@ llxHeader('', $title, $help_url); $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); } @@ -365,8 +369,13 @@ print ''; print ''; print ''; +print ''; -$newcardbutton = dolGetButtonTitle($langs->trans('NewFinancialAccount'), '', 'fa fa-plus-circle', 'card.php?action=create', '', $user->rights->banque->configurer); + +$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('NewFinancialAccount'), '', 'fa fa-plus-circle', 'card.php?action=create', '', $user->rights->banque->configurer); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'bank_account', 0, $newcardbutton, '', $limit, 1); @@ -483,12 +492,12 @@ if (!empty($arrayfields['b.tms']['checked'])) { } // Status if (!empty($arrayfields['b.clos']['checked'])) { - print '
'; } // Balance @@ -584,224 +593,236 @@ foreach ($accounts as $key => $type) { $lastcurrencycode = $objecttmp->currency_code; } - print ''; - // Action column - if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; + } + } else { + print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; } - print ''; - } - // Ref - if (!empty($arrayfields['b.ref']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Label - if (!empty($arrayfields['b.label']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Account type - if (!empty($arrayfields['accountype']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Number - if (!empty($arrayfields['b.number']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Account number - if (!empty($arrayfields['b.account_number']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Accountancy journal - if (!empty($arrayfields['b.fk_accountancy_journal']['checked'])) { - print ''; + if (!$i) { + $totalarray['nbfield']++; } - } else { - print ''; - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Currency - if (!empty($arrayfields['b.currency_code']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Transactions to reconcile - if (!empty($arrayfields['toreconcile']['checked'])) { - $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 (!$i) { + $totalarray['nbfield']++; + } + } + + // Account type + if (!empty($arrayfields['accountype']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Number + if (!empty($arrayfields['b.number']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Account number + if (!empty($arrayfields['b.account_number']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Accountancy journal + if (!empty($arrayfields['b.fk_accountancy_journal']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Currency + if (!empty($arrayfields['b.currency_code']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Transactions to reconcile + if (!empty($arrayfields['toreconcile']['checked'])) { + $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 (!$i) { - $totalarray['nbfield']++; - } - } - - // Extra fields - if (is_array($objecttmp->array_options)) { - $obj = new stdClass(); - foreach ($objecttmp->array_options as $k => $v) { - $obj->$k = $v; - } - } - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $objecttmp, $action); // Note that $action and $objecttmpect may have been modified by hook - print $hookmanager->resPrint; - // Date creation - if (!empty($arrayfields['b.datec']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date modification - if (!empty($arrayfields['b.tms']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Status - if (!empty($arrayfields['b.clos']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Balance - if (!empty($arrayfields['balance']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'balance'; - } - $totalarray['val']['balance'] += $solde; - } - - // Action column - if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; + if (!$i) { + $totalarray['nbfield']++; } - print ''; } - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - print ''; + // Extra fields + if (is_array($objecttmp->array_options)) { + $obj = new stdClass(); + foreach ($objecttmp->array_options as $k => $v) { + $obj->$k = $v; + } + } + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $objecttmp, $action); // Note that $action and $objecttmpect may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (!empty($arrayfields['b.datec']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date modification + if (!empty($arrayfields['b.tms']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } - if (empty($total[$objecttmp->currency_code])) { - $total[$objecttmp->currency_code] = $solde; - } else { - $total[$objecttmp->currency_code] += $solde; + // Status + if (!empty($arrayfields['b.clos']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Balance + if (!empty($arrayfields['balance']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'balance'; + } + $totalarray['val']['balance'] += $solde; + } + + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print ''; + + if (empty($total[$objecttmp->currency_code])) { + $total[$objecttmp->currency_code] = $solde; + } else { + $total[$objecttmp->currency_code] += $solde; + } } - $i++; } diff --git a/htdocs/compta/bank/treso.php b/htdocs/compta/bank/treso.php index d3e573f21bf..e75402ba429 100644 --- a/htdocs/compta/bank/treso.php +++ b/htdocs/compta/bank/treso.php @@ -353,10 +353,10 @@ if (GETPOST("account") || GETPOST("ref")) { print ""; if ($tmpobj->total_ttc < 0) { print '"; - }; + } if ($tmpobj->total_ttc >= 0) { print '"; - }; + } print ''; print ""; } diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php index 79f338cef85..f94eb38f27d 100644 --- a/htdocs/compta/bank/various_payment/card.php +++ b/htdocs/compta/bank/various_payment/card.php @@ -574,7 +574,7 @@ if ($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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/compta/bank/various_payment/document.php b/htdocs/compta/bank/various_payment/document.php index 611d516613b..43259727917 100644 --- a/htdocs/compta/bank/various_payment/document.php +++ b/htdocs/compta/bank/various_payment/document.php @@ -114,7 +114,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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/compta/bank/various_payment/info.php b/htdocs/compta/bank/various_payment/info.php index 7cca5c7b4ec..ca31915d2f4 100644 --- a/htdocs/compta/bank/various_payment/info.php +++ b/htdocs/compta/bank/various_payment/info.php @@ -74,7 +74,7 @@ if (isModEnabled('project')) { $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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/compta/bank/various_payment/list.php b/htdocs/compta/bank/various_payment/list.php index c1d6e9f3ec4..70abe873cba 100644 --- a/htdocs/compta/bank/various_payment/list.php +++ b/htdocs/compta/bank/various_payment/list.php @@ -29,6 +29,7 @@ require '../../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; @@ -45,6 +46,7 @@ if ($user->socid) { } $optioncss = GETPOST('optioncss', 'alpha'); +$mode = GETPOST('mode', 'alpha'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $search_ref = GETPOST('search_ref', 'int'); @@ -312,6 +314,9 @@ if ($resql) { $total = 0; $param = ''; + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -362,7 +367,10 @@ if ($resql) { if (!empty($socid)) { $url .= '&socid='.urlencode($socid); } - $newcardbutton = dolGetButtonTitle($langs->trans('MenuNewVariousPayment'), '', 'fa fa-plus-circle', $url, '', $user->rights->banque->modifier); + $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('MenuNewVariousPayment'), '', 'fa fa-plus-circle', $url, '', $user->rights->banque->modifier); print '
'; @@ -375,6 +383,8 @@ if ($resql) { print ''; print ''; print ''; + print ''; + print_barre_liste($langs->trans("MenuVariousPayment"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'object_payment', 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -466,7 +476,7 @@ if ($resql) { } // Accounting account - if ($arrayfields['account']['checked']) { + if (!empty($arrayfields['account']['checked'])) { print '
'; @@ -535,10 +545,10 @@ if ($resql) { if ($arrayfields['entry']['checked']) { print_liste_field_titre($arrayfields['entry']['label'], $_SERVER["PHP_SELF"], 'ba.label', '', $param, '', $sortfield, $sortorder); } - if ($arrayfields['account']['checked']) { + if (!empty($arrayfields['account']['checked'])) { print_liste_field_titre($arrayfields['account']['label'], $_SERVER["PHP_SELF"], 'v.accountancy_code', '', $param, '', $sortfield, $sortorder, 'left '); } - if ($arrayfields['subledger']['checked']) { + if (!empty($arrayfields['subledger']['checked'])) { print_liste_field_titre($arrayfields['subledger']['label'], $_SERVER["PHP_SELF"], 'v.subledger_account', '', $param, '', $sortfield, $sortorder, 'left '); } if ($arrayfields['debit']['checked']) { @@ -568,166 +578,187 @@ if ($resql) { $variousstatic->id = $obj->rowid; $variousstatic->ref = $obj->rowid; $variousstatic->label = $obj->label; + $variousstatic->datep = $obj->datep; + $variousstatic->type_payment = $obj->payment_code; + $bankline->fetch($obj->fk_bank); + $variousstatic->fk_bank = $bankline->getNomUrl(1); + $variousstatic->amount = $obj->amount; - print ''; + $accountingaccount->fetch('', $obj->accountancy_code, 1); + $variousstatic->accountancy_code = $accountingaccount->getNomUrl(0, 0, 1, $obj->accountingaccount, 1); - // No - if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { - print ''; - } - - // Ref - if ($arrayfields['ref']['checked']) { - print '"; - if (!$i) { - $totalarray['nbfield']++; + if ($mode == 'kanban') { + if ($i == 0) { + print '"; - if (!$i) { - $totalarray['nbfield']++; + print $variousstatic->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print ''; + print ''; } - } + } else { + print ''; - // Date payment - if ($arrayfields['datep']['checked']) { - print '"; - if (!$i) { - $totalarray['nbfield']++; + // No + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { + print ''; } - } - - // Date value - if ($arrayfields['datev']['checked']) { - print '"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Type - if ($arrayfields['type']['checked']) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Project - if ($arrayfields['project']['checked']) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Bank account - if ($arrayfields['bank']['checked']) { - print '"; + if (!$i) { + $totalarray['nbfield']++; } - - $accountstatic->label = $obj->blabel; - print $accountstatic->getNomUrl(1); - } else { - print ' '; } - print ''; + + // Label payment + if ($arrayfields['label']['checked']) { + print '"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date payment + if ($arrayfields['datep']['checked']) { + print '"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + + // Date value + if ($arrayfields['datev']['checked']) { + print '"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Type + if ($arrayfields['type']['checked']) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project + if ($arrayfields['project']['checked']) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Bank account + if ($arrayfields['bank']['checked']) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Bank entry + if ($arrayfields['entry']['checked']) { + $bankline->fetch($obj->fk_bank); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Accounting account + if (!empty($arrayfields['account']['checked'])) { + $accountingaccount->fetch('', $obj->accountancy_code, 1); + + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Accounting subledger account + if (!empty($arrayfields['subledger']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Debit + if ($arrayfields['debit']['checked']) { + print ''; + } + + // Credit + if ($arrayfields['credit']['checked']) { + print ''; + } + + print ''; + if (!$i) { $totalarray['nbfield']++; } + + print ''."\n"; } - - // Bank entry - if ($arrayfields['entry']['checked']) { - $bankline->fetch($obj->fk_bank); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Accounting account - if ($arrayfields['account']['checked']) { - $accountingaccount->fetch('', $obj->accountancy_code, 1); - - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Accounting subledger account - if ($arrayfields['subledger']['checked']) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Debit - if ($arrayfields['debit']['checked']) { - print ''; - } - - // Credit - if ($arrayfields['credit']['checked']) { - print ''; - } - - print ''; - - if (!$i) { - $totalarray['nbfield']++; - } - - print ''."\n"; - $i++; } diff --git a/htdocs/compta/cashcontrol/cashcontrol_list.php b/htdocs/compta/cashcontrol/cashcontrol_list.php index 5b764cfb730..05612f54166 100644 --- a/htdocs/compta/cashcontrol/cashcontrol_list.php +++ b/htdocs/compta/cashcontrol/cashcontrol_list.php @@ -17,7 +17,7 @@ */ /** - * \file cashcontrol_list.php + * \file htdocs/compta/cashcontrol/cashcontrol_list.php * \ingroup cashdesk|takepos * \brief List page for cashcontrol */ @@ -41,7 +41,7 @@ $toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'cashcontrol'; // 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', 'alpha'); // for mode view result $id = GETPOST('id', 'int'); // Load variable for pagination @@ -50,8 +50,9 @@ $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { + // If $page is not defined, or '' or -1 or if we click on clear filters $page = 0; -} // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action +} $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; @@ -105,11 +106,11 @@ $arrayfields = array(); foreach ($object->fields as $key => $val) { // If $val['visible']==0, then we never show the field if (!empty($val['visible'])) { - $visible = (int) dol_eval($val['visible'], 1, 1, '1'); + $visible = (int) dol_eval($val['visible'], 1); $arrayfields['t.'.$key] = array( 'label'=>$val['label'], 'checked'=>(($visible < 0) ? 0 : 1), - 'enabled'=>($visible != 3 && dol_eval($val['enabled'], 1, 1, '1')), + 'enabled'=>(abs($visible) != 3 && dol_eval($val['enabled'], 1)), 'position'=>$val['position'], 'help'=> isset($val['help']) ? $val['help'] : '' ); @@ -194,7 +195,8 @@ $now = dol_now(); //$help_url="EN:Module_pos_cash_fence|FR:Module_pos_cash_fence_FR|ES:Módulo_pos_cash_fence"; $help_url = ''; $title = $langs->trans('CashControl'); - +$morejs = array(); +$morecss = array(); // Build and execute select // -------------------------------------------------------------------- @@ -211,6 +213,9 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= preg_replace('/^,/', '', $hookmanager->resPrint); $sql = preg_replace('/,\s*$/', '', $sql); + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; @@ -237,17 +242,17 @@ foreach ($search as $key => $val) { $mode_search = 2; } if ($search[$key] != '') { - $sql .= natural_search($key, $search[$key], (($key == 'status') ? 2 : $mode_search)); + $sql .= natural_search("t.".$db->escape($key), $search[$key], (($key == 'status') ? 2 : $mode_search)); } } else { if (preg_match('/(_dtstart|_dtend)$/', $key) && $search[$key] != '') { $columnName=preg_replace('/(_dtstart|_dtend)$/', '', $key); if (preg_match('/^(date|timestamp|datetime)/', $object->fields[$columnName]['type'])) { if (preg_match('/_dtstart$/', $key)) { - $sql .= " AND t." . $columnName . " >= '" . $db->idate($search[$key]) . "'"; + $sql .= " AND t.".$db->escape($columnName)." >= '".$db->idate($search[$key])."'"; } if (preg_match('/_dtend$/', $key)) { - $sql .= " AND t." . $columnName . " <= '" . $db->idate($search[$key]) . "'"; + $sql .= " AND t.".$db->escape($columnName)." <= '".$db->idate($search[$key])."'"; } } } @@ -267,11 +272,13 @@ $sql .= $hookmanager->resPrint; /* If a group by is required $sql.= " GROUP BY "; foreach($object->fields as $key => $val) { - $sql .= "t.".$key.", "; + $sql .= "t.".$db->escape($key).", "; } // Add fields from extrafields if (!empty($extrafields->attributes[$object->table_element]['label'])) { - foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); + 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(); @@ -280,35 +287,43 @@ $sql.=$hookmanager->resPrint; $sql=preg_replace('/,\s*$/','', $sql); */ -$sql .= $db->order($sortfield, $sortorder); // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $resql = $db->query($sql); - $nbtotalofrecords = $db->num_rows($resql); - if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. -if (is_numeric($nbtotalofrecords) && ($limit > $nbtotalofrecords || empty($limit))) { - $num = $nbtotalofrecords; -} else { - if ($limit) { - $sql .= $db->plimit($limit + 1, $offset); - } - $resql = $db->query($sql); - if (!$resql) { - dol_print_error($db); - exit; - } - - $num = $db->num_rows($resql); +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); } +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} + +$num = $db->num_rows($resql); + + // Direct jump if only one record found if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all && !$page) { $obj = $db->fetch_object($resql); @@ -326,6 +341,9 @@ llxHeader('', $title, $help_url, '', 0, 0, '', '', '', 'classforhorizontalscroll $arrayofselected = is_array($toselect) ? $toselect : array(); $param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -333,11 +351,17 @@ if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.urlencode($limit); } foreach ($search as $key => $val) { - if (is_array($search[$key]) && count($search[$key])) { + if (is_array($search[$key])) { foreach ($search[$key] as $skey) { - $param .= '&search_'.$key.'[]='.urlencode($skey); + if ($skey != '') { + $param .= '&search_'.$key.'[]='.urlencode($skey); + } } - } else { + } elseif (preg_match('/(_dtstart|_dtend)$/', $key) && !empty($val)) { + $param .= '&search_'.$key.'month='.((int) GETPOST('search_'.$key.'month', 'int')); + $param .= '&search_'.$key.'day='.((int) GETPOST('search_'.$key.'day', 'int')); + $param .= '&search_'.$key.'year='.((int) GETPOST('search_'.$key.'year', 'int')); + } elseif ($search[$key] != '') { $param .= '&search_'.$key.'='.urlencode($search[$key]); } } @@ -373,11 +397,16 @@ print ''; print ''; print ''; +print ''; print ''; +print ''; $permforcashfence = 1; -$newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $permforcashfence); +$newcardbutton = ''; +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $permforcashfence); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'cash-register', 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -389,10 +418,13 @@ $trackid = 'cashfence'.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; if ($search_all) { + $setupstring = ''; foreach ($fieldstosearchall as $key => $val) { $fieldstosearchall[$key] = $langs->trans($val); + $setupstring .= $key."=".$val.";"; } - print '
'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
'; + print ''."\n"; + print '
'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
'."\n"; } $moreforfilter = ''; @@ -433,13 +465,13 @@ foreach ($object->fields as $key => $val) { $cssforfield .= ($cssforfield ? ' ' : '').'center'; } elseif (in_array($val['type'], array('timestamp'))) { $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; - } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { $cssforfield .= ($cssforfield ? ' ' : '').'right'; } if (!empty($arrayfields['t.'.$key]['checked'])) { print '
'; - 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'; + // show kanban result + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + } + } else { + // Show here line of result + $j = 0; + print ''; + foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); + if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif ($key == 'status') { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; } - print ''; - if (!$i) { - $totalarray['nbfield']++; + + if (in_array($val['type'], array('timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } elseif ($key == 'ref') { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; } - if (!empty($val['isameasure']) && $val['isameasure'] == 1) { + + 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['pos'][$totalarray['nbfield']] = 't.'.$key; + $totalarray['nbfield']++; } - if (!isset($totalarray['val'])) { - $totalarray['val'] = array(); + if (!empty($val['isameasure']) && $val['isameasure'] == 1) { + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; + } + if (!isset($totalarray['val'])) { + $totalarray['val'] = array(); + } + if (!isset($totalarray['val']['t.'.$key])) { + $totalarray['val']['t.'.$key] = 0; + } + $totalarray['val']['t.'.$key] += $object->$key; } - if (!isset($totalarray['val']['t.'.$key])) { - $totalarray['val']['t.'.$key] = 0; - } - $totalarray['val']['t.'.$key] += $object->$key; } } - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Action column - print ''; + if (!$i) { + $totalarray['nbfield']++; } - print ''; - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - - print ''."\n"; + print ''."\n"; + } $i++; } @@ -609,13 +666,13 @@ if ($num == 0) { $colspan++; } } - print ''; + print ''; } $db->free($resql); $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); -$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; print '
'; + print ''; print ''; @@ -1457,6 +1458,8 @@ if ($object->id > 0) { $facturestatic->total_tva = $objp->total_tva; $facturestatic->total_ttc = $objp->total_ttc; $facturestatic->statut = $objp->status; + $facturestatic->date = $db->jdate($objp->df); + $facturestatic->date_lim_reglement = $db->jdate($objp->dl); print ''; print ''; if ($objp->df > 0) { - print ''; + print ''; } else { - print ''; + print ''; + } + if ($objp->dl > 0) { + print ''; + } else { + print ''; } print ''; // Status of recipient sending email (Warning != status of emailing) diff --git a/htdocs/comm/mailing/class/mailing.class.php b/htdocs/comm/mailing/class/mailing.class.php index 4ea794bfbd4..75cf669d3c8 100644 --- a/htdocs/comm/mailing/class/mailing.class.php +++ b/htdocs/comm/mailing/class/mailing.class.php @@ -217,9 +217,10 @@ class Mailing extends CommonObject * Create an EMailing * * @param User $user Object of user making creation - * @return int -1 if error, Id of created object if OK + * @param int $notrigger Disable triggers + * @return int <0 if KO, Id of created object if OK */ - public function create($user) + public function create($user, $notrigger = 0) { global $conf, $langs; @@ -229,8 +230,6 @@ class Mailing extends CommonObject return -1; } - $this->db->begin(); - $this->title = trim($this->title); $this->email_from = trim($this->email_from); @@ -239,7 +238,9 @@ class Mailing extends CommonObject return -1; } + $error = 0; $now = dol_now(); + $this->db->begin(); $sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing"; $sql .= " (date_creat, fk_user_creat, entity)"; @@ -249,20 +250,33 @@ class Mailing extends CommonObject $this->title = $langs->trans("NoTitle"); } - dol_syslog("Mailing::Create", LOG_DEBUG); - $result = $this->db->query($sql); - if ($result) { + dol_syslog(__METHOD__, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."mailing"); - if ($this->update($user) > 0) { - $this->db->commit(); - } else { - $this->error = $this->db->lasterror(); - $this->db->rollback(); - return -1; + $result = $this->update($user, 1); + if ($result < 0) { + $error++; } - return $this->id; + if (!$error && !$notrigger) { + // Call trigger + $result = $this->call_trigger('MAILING_CREATE', $user); + if ($result < 0) { + $error++; + } + // End call triggers + } + + if (!$error) { + $this->db->commit(); + return $this->id; + } else { + $this->db->rollback(); + dol_syslog(__METHOD__ . ' ' . $this->error, LOG_ERR); + return -2; + } } else { $this->error = $this->db->lasterror(); $this->db->rollback(); @@ -274,9 +288,10 @@ class Mailing extends CommonObject * Update emailing record * * @param User $user Object of user making change + * @param int $notrigger Disable triggers * @return int < 0 if KO, > 0 if OK */ - public function update($user) + public function update($user, $notrigger = 0) { // Check properties if ($this->body === 'InvalidHTMLString') { @@ -284,6 +299,9 @@ class Mailing extends CommonObject return -1; } + $error = 0; + $this->db->begin(); + $sql = "UPDATE ".MAIN_DB_PREFIX."mailing "; $sql .= " SET titre = '".$this->db->escape($this->title)."'"; $sql .= ", sujet = '".$this->db->escape($this->sujet)."'"; @@ -295,12 +313,30 @@ class Mailing extends CommonObject $sql .= ", bgimage = '".($this->bgimage ? $this->db->escape($this->bgimage) : null)."'"; $sql .= " WHERE rowid = ".(int) $this->id; - dol_syslog("Mailing::Update", LOG_DEBUG); - $result = $this->db->query($sql); - if ($result) { - return 1; + dol_syslog(__METHOD__, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) { + if (!$error && !$notrigger) { + // Call trigger + $result = $this->call_trigger('MAILING_MODIFY', $user); + if ($result < 0) { + $error++; + } + // End call triggers + } + + if (!$error) { + dol_syslog(__METHOD__ . ' success'); + $this->db->commit(); + return 1; + } else { + $this->db->rollback(); + dol_syslog(__METHOD__ . ' ' . $this->error, LOG_ERR); + return -2; + } } else { $this->error = $this->db->lasterror(); + $this->db->rollback(); return -1; } } @@ -528,36 +564,46 @@ class Mailing extends CommonObject { global $user; + $error = 0; $this->db->begin(); - $sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing"; - $sql .= " WHERE rowid = ".((int) $rowid); + if (!$notrigger) { + $result = $this->call_trigger('MAILING_DELETE', $user); + if ($result < 0) { + $error++; + } + } - dol_syslog("Mailing::delete", LOG_DEBUG); - $resql = $this->db->query($sql); - if ($resql) { - $res = $this->delete_targets(); - if ($res <= 0) { + if (!$error) { + $sql = "DELETE FROM " . MAIN_DB_PREFIX . "mailing"; + $sql .= " WHERE rowid = " . ((int) $rowid); + + dol_syslog(__METHOD__, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) { + $res = $this->delete_targets(); + if ($res <= 0) { + $error++; + } + + if (!$error) { + dol_syslog(__METHOD__ . ' success'); + $this->db->commit(); + return 1; + } else { + $this->db->rollback(); + dol_syslog(__METHOD__ . ' ' . $this->error, LOG_ERR); + return -2; + } + } else { $this->db->rollback(); $this->error = $this->db->lasterror(); return -1; } } else { $this->db->rollback(); - $this->error = $this->db->lasterror(); return -1; } - - if (!$notrigger) { - $result = $this->call_trigger('MAILING_DELETE', $user); - if ($result < 0) { - $this->db->rollback(); - return -1; - } - } - - $this->db->commit(); - return 1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps diff --git a/htdocs/comm/mailing/index.php b/htdocs/comm/mailing/index.php index d3ebc379b55..cf3d18adbac 100644 --- a/htdocs/comm/mailing/index.php +++ b/htdocs/comm/mailing/index.php @@ -101,7 +101,7 @@ if (is_resource($handle)) { $qualified = 1; foreach ($mailmodule->require_module as $key) { - if (!$conf->$key->enabled || (!$user->admin && $mailmodule->require_admin)) { + if (empty($conf->$key->enabled) || (!$user->admin && $mailmodule->require_admin)) { $qualified = 0; //print "Les pr�requis d'activation du module mailing ne sont pas respect�s. Il ne sera pas actif"; break; @@ -176,7 +176,7 @@ if ($result) { print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; diff --git a/htdocs/comm/mailing/list.php b/htdocs/comm/mailing/list.php index 13a7e63d364..501de4c11cf 100644 --- a/htdocs/comm/mailing/list.php +++ b/htdocs/comm/mailing/list.php @@ -27,19 +27,24 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/mailing/class/mailing.class.php'; // Load translation files required by the page -$langs->load("mails"); +$langs->load('mails'); -$sortfield = GETPOST('sortfield', 'aZ09comma'); -$sortorder = GETPOST('sortorder', 'aZ09comma'); -$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; -$optioncss = GETPOST('optioncss', 'alpha'); -$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +// Get Parameters +$massaction = GETPOST('massaction', 'alpha'); +$optioncss = GETPOST('optioncss', 'alpha'); + +// 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 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; + if (!$sortorder) { $sortorder = "DESC"; } @@ -47,10 +52,12 @@ if (!$sortfield) { $sortfield = "m.date_creat"; } +// Search Fields $search_all = trim((GETPOST('search_all', 'alphanohtml') != '') ?GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); $search_ref = GETPOST("search_ref", "alpha") ? GETPOST("search_ref", "alpha") : GETPOST("sref", "alpha"); $filteremail = GETPOST('filteremail', 'alpha'); +// Initialize objects $object = new Mailing($db); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context @@ -127,7 +134,9 @@ if (empty($reshook)) { * View */ -llxHeader('', $langs->trans("Mailing"), 'EN:Module_EMailing|FR:Module_Mailing|ES:Módulo_Mailing'); +// Page Header +$help_url = 'EN:Module_EMailing|FR:Module_Mailing|ES:Módulo_Mailing'; +llxHeader('', $langs->trans("Mailing"), $help_url); $form = new Form($db); @@ -187,7 +196,7 @@ $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); - $title = $langs->trans("ListOfEMailings"); + $title = $langs->trans("EMailings"); if ($filteremail) { $title .= ' ('.$langs->trans("SentTo", $filteremail).')'; } diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 07729fd55de..3f74c4a860f 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -15,6 +15,7 @@ * Copyright (C) 2018-2021 Frédéric France * Copyright (C) 2020 Nicolas ZABOURI * Copyright (C) 2022 Gauthier VERDOL + * Copyright (C) 2023 Lenin Rivas * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -606,6 +607,7 @@ if (empty($reshook)) { $reshook = $hookmanager->executeHooks('createFrom', $parameters, $object, $action); // Note that $action and $object may have been // modified by hook if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); $error++; } } else { @@ -938,12 +940,12 @@ if (empty($reshook)) { $prod_entry_mode = GETPOST('prod_entry_mode', 'aZ09'); if ($prod_entry_mode == 'free') { $idprod = 0; - $tva_tx = (GETPOST('tva_tx', 'alpha') ? price2num(preg_replace('/\s*\(.*\)/', '', GETPOST('tva_tx', 'alpha'))) : 0); } else { $idprod = GETPOST('idprod', 'int'); - $tva_tx = ''; } + $tva_tx = GETPOST('tva_tx', 'alpha'); + $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)) { @@ -992,6 +994,8 @@ if (empty($reshook)) { if (!$error && ($qty >= 0) && (!empty($product_desc) || (!empty($idprod) && $idprod > 0))) { $pu_ht = 0; $pu_ttc = 0; + $pu_ht_devise = 0; + $pu_ttc_devise = 0; $price_min = 0; $price_min_ttc = 0; $price_base_type = (GETPOST('price_base_type', 'alpha') ? GETPOST('price_base_type', 'alpha') : 'HT'); @@ -1002,7 +1006,6 @@ if (empty($reshook)) { // Ecrase $pu par celui du produit // Ecrase $desc par celui du produit - // Ecrase $tva_tx par celui du produit // Replaces $fk_unit with the product unit if (!empty($idprod) && $idprod > 0) { $prod = new Product($db); @@ -1011,11 +1014,11 @@ if (empty($reshook)) { $label = ((GETPOST('product_label') && GETPOST('product_label') != $prod->label) ? GETPOST('product_label') : ''); // Update if prices fields are defined - $tva_tx = get_default_tva($mysoc, $object->thirdparty, $prod->id); + /*$tva_tx = get_default_tva($mysoc, $object->thirdparty, $prod->id); $tva_npr = get_default_npr($mysoc, $object->thirdparty, $prod->id); if (empty($tva_tx)) { $tva_npr = 0; - } + }*/ // Price unique per product $pu_ht = $prod->price; @@ -1056,14 +1059,14 @@ if (empty($reshook)) { $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); + /*$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)) { $tva_tx .= ' ('.$prodcustprice->lines[0]->default_vat_code.')'; } $tva_npr = $prodcustprice->lines[0]->recuperableonly; if (empty($tva_tx)) { $tva_npr = 0; - } + }*/ } } } elseif (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) { @@ -1114,12 +1117,12 @@ if (empty($reshook)) { $tmpprodvat = price2num(preg_replace('/\s*\(.*\)/', '', $prod->tva_tx)); // Set unit price to use - if (!empty($price_ht) || $price_ht === '0') { + if (!empty($price_ht) || (string) $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($pu_ht * (1 + ((float) $tmpvat / 100)), 'MU'); + } elseif (!empty($price_ttc) || (string) $price_ttc === '0') { $pu_ttc = price2num($price_ttc, 'MU'); - $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); + $pu_ht = price2num($pu_ttc / (1 + ((float) $tmpvat / 100)), 'MU'); } elseif ($tmpvat != $tmpprodvat) { // Is this still used ? if ($price_base_type != 'HT') { @@ -1233,6 +1236,20 @@ if (empty($reshook)) { $date_start = dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start'.$predef.'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year')); $date_end = dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end'.$predef.'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year')); + // Prepare a price equivalent for minimum price check + $pu_equivalent = $pu_ht; + $pu_equivalent_ttc = $pu_ttc; + $currency_tx = $object->multicurrency_tx; + + // Check if we have a foreing currency + // If so, we update the pu_equiv as the equivalent price in base currency + if ($pu_ht == '' && $pu_ht_devise != '' && $currency_tx != '') { + $pu_equivalent = $pu_ht_devise * $currency_tx; + } + if ($pu_ttc == '' && $pu_ttc_devise != '' && $currency_tx != '') { + $pu_equivalent_ttc = $pu_ttc_devise * $currency_tx; + } + // Local Taxes $localtax1_tx = get_localtax($tva_tx, 1, $object->thirdparty, $tva_npr); $localtax2_tx = get_localtax($tva_tx, 2, $object->thirdparty, $tva_npr); @@ -1246,11 +1263,11 @@ if (empty($reshook)) { //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))) { + if ($pu_equivalent && $price_min && ((price2num($pu_equivalent) * (1 - $remise_percent / 100)) < price2num($price_min))) { $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); setEventMessages($mesg, null, 'errors'); $error++; - } elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { + } elseif ($pu_equivalent_ttc && $price_min_ttc && ((price2num($pu_equivalent_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); setEventMessages($mesg, null, 'errors'); $error++; @@ -1349,6 +1366,20 @@ if (empty($reshook)) { $remise_percent = price2num(GETPOST('remise_percent'), '', 2); + // Prepare a price equivalent for minimum price check + $pu_equivalent = $pu_ht; + $pu_equivalent_ttc = $pu_ttc; + $currency_tx = $object->multicurrency_tx; + + // Check if we have a foreing currency + // If so, we update the pu_equiv as the equivalent price in base currency + if ($pu_ht == '' && $pu_ht_devise != '' && $currency_tx != '') { + $pu_equivalent = $pu_ht_devise * $currency_tx; + } + if ($pu_ttc == '' && $pu_ttc_devise != '' && $currency_tx != '') { + $pu_equivalent_ttc = $pu_ttc_devise * $currency_tx; + } + // Extrafields $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); $array_options = $extrafields->getOptionalsFromPost($object->table_element_line); @@ -1388,12 +1419,12 @@ if (empty($reshook)) { //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))) { + if ($pu_equivalent && $price_min && ((price2num($pu_equivalent) * (1 - (float) $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))) { + } elseif ($pu_equivalent_ttc && $price_min_ttc && ((price2num($pu_equivalent_ttc) * (1 - (float) $remise_percent / 100)) < price2num($price_min_ttc))) { $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); setEventMessages($mesg, null, 'errors'); $error++; @@ -1830,7 +1861,7 @@ if ($action == 'create') { } print ''; } @@ -1900,7 +1931,7 @@ if ($action == 'create') { print ''; print ''; print ''; } if (!empty($arrayfields['sale_representative']['checked'])) { @@ -1431,8 +1456,8 @@ if ($resql) { } // Status if (!empty($arrayfields['p.fk_statut']['checked'])) { - print ''; } // Action column @@ -1690,574 +1715,590 @@ if ($resql) { $total_margin += $marginInfo['total_margin']; } - print ''; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + } + } else { + print ''; - // Action column - if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['p.ref']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['p.ref_client']['checked'])) { - // Customer ref - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['pr.ref']['checked'])) { - // Project ref - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['pr.title']['checked'])) { - // Project label - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // 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']++; - } - } - - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type ent - if (!empty($arrayfields['typent.code']['checked'])) { - if (!is_array($typenArray) || empty($typenArray)) { - $typenArray = $formcompany->typent_array(1); - } - - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date proposal - if (!empty($arrayfields['p.date']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date end validity - if (!empty($arrayfields['p.fin_validite']['checked'])) { - if ($obj->dfv) { - print ''; - } else { - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date delivery - if (!empty($arrayfields['p.date_livraison']['checked'])) { - if ($obj->ddelivery) { - print ''; - } else { - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date Signature - if (!empty($arrayfields['p.date_signature']['checked'])) { - if ($obj->dsignature) { - print ''; - } else { - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - } - // Availability - if (!empty($arrayfields['ava.rowid']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Shipping Method - if (!empty($arrayfields['p.fk_shipping_method']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Source - input reason - if (!empty($arrayfields['p.fk_input_reason']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Payment terms - if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Payment mode - if (!empty($arrayfields['p.fk_mode_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount HT - if (!empty($arrayfields['p.total_ht']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'p.total_ht'; - } - if (empty($totalarray['val']['p.total_ht'])) { - $totalarray['val']['p.total_ht'] = $obj->total_ht; - } else { - $totalarray['val']['p.total_ht'] += $obj->total_ht; - } - } - // Amount VAT - if (!empty($arrayfields['p.total_tva']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'p.total_tva'; - } - if (empty($totalarray['val']['p.total_tva'])) { - $totalarray['val']['p.total_tva'] = $obj->total_tva; - } else { - $totalarray['val']['p.total_tva'] += $obj->total_tva; - } - } - // Amount TTC - if (!empty($arrayfields['p.total_ttc']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'p.total_ttc'; - } - if (empty($totalarray['val']['p.total_ttc'])) { - $totalarray['val']['p.total_ttc'] = $obj->total_ttc; - } else { - $totalarray['val']['p.total_ttc'] += $obj->total_ttc; - } - } - // Amount invoiced HT - if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'p.total_ht_invoiced'; - } - if (empty($totalarray['val']['p.total_ht_invoiced'])) { - $totalarray['val']['p.total_ht_invoiced'] = $totalInvoicedHT; - } else { - $totalarray['val']['p.total_ht_invoiced'] += $totalInvoicedHT; - } - } - // Amount invoiced TTC - if (!empty($arrayfields['p.total_invoiced']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'p.total_invoiced'; - } - if (empty($totalarray['val']['p.total_invoiced'])) { - $totalarray['val']['p.total_invoiced'] = $totalInvoicedTTC; - } else { - $totalarray['val']['p.total_invoiced'] += $totalInvoicedTTC; - } - } - // Currency - if (!empty($arrayfields['p.multicurrency_code']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Currency rate - if (!empty($arrayfields['p.multicurrency_tx']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount HT - if (!empty($arrayfields['p.multicurrency_total_ht']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount VAT - if (!empty($arrayfields['p.multicurrency_total_tva']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount TTC - if (!empty($arrayfields['p.multicurrency_total_ttc']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount invoiced - if (!empty($arrayfields['p.multicurrency_total_ht_invoiced']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount invoiced - if (!empty($arrayfields['p.multicurrency_total_invoiced']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - $userstatic->id = $obj->fk_user_author; - $userstatic->login = $obj->login; - $userstatic->lastname = $obj->lastname; - $userstatic->firstname = $obj->firstname; - $userstatic->email = $obj->user_email; - $userstatic->statut = $obj->user_statut; - $userstatic->entity = $obj->user_entity; - $userstatic->photo = $obj->photo; - $userstatic->office_phone = $obj->office_phone; - $userstatic->office_fax = $obj->office_fax; - $userstatic->user_mobile = $obj->user_mobile; - $userstatic->job = $obj->job; - $userstatic->gender = $obj->gender; - - // Author - if (!empty($arrayfields['u.login']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['sale_representative']['checked'])) { - // Sales representatives - print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + if (!empty($arrayfields['p.ref_client']['checked'])) { + // Customer ref + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + if (!empty($arrayfields['pr.ref']['checked'])) { + // Project ref + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + if (!empty($arrayfields['pr.title']['checked'])) { + // Project label + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // 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']++; + } + } + + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + if (!is_array($typenArray) || empty($typenArray)) { + $typenArray = $formcompany->typent_array(1); + } + + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date proposal + if (!empty($arrayfields['p.date']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date end validity + if (!empty($arrayfields['p.fin_validite']['checked'])) { + if ($obj->dfv) { + print ''; + } else { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date delivery + if (!empty($arrayfields['p.date_livraison']['checked'])) { + if ($obj->ddelivery) { + print ''; + } else { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date Signature + if (!empty($arrayfields['p.date_signature']['checked'])) { + if ($obj->dsignature) { + print ''; + } else { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + } + // Availability + if (!empty($arrayfields['ava.rowid']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Shipping Method + if (!empty($arrayfields['p.fk_shipping_method']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Source - input reason + if (!empty($arrayfields['p.fk_input_reason']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Payment terms + if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Payment mode + if (!empty($arrayfields['p.fk_mode_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['p.total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'p.total_ht'; + } + if (empty($totalarray['val']['p.total_ht'])) { + $totalarray['val']['p.total_ht'] = $obj->total_ht; + } else { + $totalarray['val']['p.total_ht'] += $obj->total_ht; + } + } + // Amount VAT + if (!empty($arrayfields['p.total_tva']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'p.total_tva'; + } + if (empty($totalarray['val']['p.total_tva'])) { + $totalarray['val']['p.total_tva'] = $obj->total_tva; + } else { + $totalarray['val']['p.total_tva'] += $obj->total_tva; + } + } + // Amount TTC + if (!empty($arrayfields['p.total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'p.total_ttc'; + } + if (empty($totalarray['val']['p.total_ttc'])) { + $totalarray['val']['p.total_ttc'] = $obj->total_ttc; + } else { + $totalarray['val']['p.total_ttc'] += $obj->total_ttc; + } + } + // Amount invoiced HT + if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'p.total_ht_invoiced'; + } + if (empty($totalarray['val']['p.total_ht_invoiced'])) { + $totalarray['val']['p.total_ht_invoiced'] = $totalInvoicedHT; + } else { + $totalarray['val']['p.total_ht_invoiced'] += $totalInvoicedHT; + } + } + // Amount invoiced TTC + if (!empty($arrayfields['p.total_invoiced']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'p.total_invoiced'; + } + if (empty($totalarray['val']['p.total_invoiced'])) { + $totalarray['val']['p.total_invoiced'] = $totalInvoicedTTC; + } else { + $totalarray['val']['p.total_invoiced'] += $totalInvoicedTTC; + } + } + // Currency + if (!empty($arrayfields['p.multicurrency_code']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Currency rate + if (!empty($arrayfields['p.multicurrency_tx']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['p.multicurrency_total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount VAT + if (!empty($arrayfields['p.multicurrency_total_tva']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount TTC + if (!empty($arrayfields['p.multicurrency_total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount invoiced + if (!empty($arrayfields['p.multicurrency_total_ht_invoiced']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount invoiced + if (!empty($arrayfields['p.multicurrency_total_invoiced']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + $userstatic->id = $obj->fk_user_author; + $userstatic->login = $obj->login; + $userstatic->lastname = $obj->lastname; + $userstatic->firstname = $obj->firstname; + $userstatic->email = $obj->user_email; + $userstatic->statut = $obj->user_statut; + $userstatic->entity = $obj->user_entity; + $userstatic->photo = $obj->photo; + $userstatic->office_phone = $obj->office_phone; + $userstatic->office_fax = $obj->office_fax; + $userstatic->user_mobile = $obj->user_mobile; + $userstatic->job = $obj->job; + $userstatic->gender = $obj->gender; + + // Author + if (!empty($arrayfields['u.login']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + if (!empty($arrayfields['sale_representative']['checked'])) { + // Sales representatives + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Total buying or cost price + if (!empty($arrayfields['total_pa']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Total margin + if (!empty($arrayfields['total_margin']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_margin'; + } + $totalarray['val']['total_margin'] = $total_margin; + } + // Total margin rate + if (!empty($arrayfields['total_margin_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Total mark rate + if (!empty($arrayfields['total_mark_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; + } + if ($i >= $imaxinloop - 1) { + if (!empty($total_ht)) { + $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); + } else { + $totalarray['val']['total_mark_rate'] = ''; } } - //else print $langs->trans("NoSalesRepresentativeAffected"); - } else { - print ' '; } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Total buying or cost price - if (!empty($arrayfields['total_pa']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Total margin - if (!empty($arrayfields['total_margin']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'total_margin'; - } - $totalarray['val']['total_margin'] = $total_margin; - } - // Total margin rate - if (!empty($arrayfields['total_margin_rate']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Total mark rate - if (!empty($arrayfields['total_mark_rate']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; - } - if ($i >= $imaxinloop - 1) { - if (!empty($total_ht)) { - $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); - } else { - $totalarray['val']['total_mark_rate'] = ''; + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (!empty($arrayfields['p.datec']['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, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Date creation - if (!empty($arrayfields['p.datec']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date modification - if (!empty($arrayfields['p.tms']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date cloture - if (!empty($arrayfields['p.date_cloture']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Note public - if (!empty($arrayfields['p.note_public']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Note private - if (!empty($arrayfields['p.note_private']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['p.fk_statut']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Action column - if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { - print ''; + if (!$i) { + $totalarray['nbfield']++; } - print ''; } - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Date cloture + if (!empty($arrayfields['p.date_cloture']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } + // Note public + if (!empty($arrayfields['p.note_public']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Note private + if (!empty($arrayfields['p.note_private']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['p.fk_statut']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + + print ''."\n"; } - - print ''."\n"; - $i++; } diff --git a/htdocs/comm/propal/note.php b/htdocs/comm/propal/note.php index fe4895ad2f8..4a772dae1d2 100644 --- a/htdocs/comm/propal/note.php +++ b/htdocs/comm/propal/note.php @@ -119,7 +119,7 @@ if ($object->id > 0) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php index 37c0f8d5e58..8aa72d9c43f 100644 --- a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php +++ b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php @@ -52,13 +52,13 @@ foreach ($linkedObjectBlock as $key => $objectlink) { $trclass .= ' liste_sub_total'; } print ''; - print ''; - print ''; + print ''; print ''; print ''; print ''; } @@ -1868,7 +1898,7 @@ if ($action == 'create' && $usercancreate) { // Incoterms if (isModEnabled('incoterm')) { print ''; - print ''; + print ''; print ''; + print ''; } // Zip if (!empty($arrayfields['s.zip']['checked'])) { - print ''; + print ''; } // State if (!empty($arrayfields['state.nom']['checked'])) { print ''; } // Country @@ -1705,18 +1723,18 @@ if ($resql) { } // Status billed if (!empty($arrayfields['c.facture']['checked'])) { - print ''; } // Import key if (!empty($arrayfields['c.import_key']['checked'])) { - print ''; } // Status if (!empty($arrayfields['c.fk_statut']['checked'])) { - print ''; } // Action column @@ -1889,7 +1907,7 @@ if ($resql) { print_liste_field_titre($arrayfields['c.import_key']['label'], $_SERVER["PHP_SELF"], "c.import_key", "", $param, '', $sortfield, $sortorder, 'center '); } if (!empty($arrayfields['c.fk_statut']['checked'])) { - print_liste_field_titre($arrayfields['c.fk_statut']['label'], $_SERVER["PHP_SELF"], "c.fk_statut", "", $param, '', $sortfield, $sortorder, 'center '); + print_liste_field_titre($arrayfields['c.fk_statut']['label'], $_SERVER["PHP_SELF"], "c.fk_statut", "", $param, '', $sortfield, $sortorder, 'right '); } if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch center '); @@ -1962,6 +1980,9 @@ if ($resql) { $generic_commande->note_public = $obj->note_public; $generic_commande->note_private = $obj->note_private; + $generic_commande->thirdparty = $companystatic; + + $projectstatic->id = $obj->project_id; $projectstatic->ref = $obj->project_ref; $projectstatic->title = $obj->project_label; @@ -1974,655 +1995,669 @@ if ($resql) { $total_margin += $marginInfo['total_margin']; } - print ''; - - // Action column - if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { - print ''; } - print ''; - } + } else { + print ''; - // Ref - if (!empty($arrayfields['c.ref']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Ref customer - if (!empty($arrayfields['c.ref_client']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Project ref - if (!empty($arrayfields['p.ref']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Project label - if (!empty($arrayfields['p.title']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Third party - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; + } + + // Ref + if (!empty($arrayfields['c.ref']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; } } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Alias name - if (!empty($arrayfields['s.name_alias']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Parent company - if (!empty($arrayfields['s2.nom']['checked'])) { - print ''; + if (!$i) { + $totalarray['nbfield']++; } } - print ""; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Type ent - if (!empty($arrayfields['typent.code']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Order date - if (!empty($arrayfields['c.date_commande']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Plannned date of delivery - if (!empty($arrayfields['c.date_delivery']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Shipping Method - if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Payment terms - if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Payment mode - if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Channel - if (!empty($arrayfields['c.fk_input_reason']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Amount HT/net - if (!empty($arrayfields['c.total_ht']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'c.total_ht'; - } - if (isset($totalarray['val']['c.total_ht'])) { - $totalarray['val']['c.total_ht'] += $obj->total_ht; - } else { - $totalarray['val']['c.total_ht'] = $obj->total_ht; - } - } - - // Amount VAT - if (!empty($arrayfields['c.total_vat']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'c.total_tva'; - } - if (isset($totalarray['val']['c.total_tva'])) { - $totalarray['val']['c.total_tva'] += $obj->total_tva; - } else { - $totalarray['val']['c.total_tva'] = $obj->total_tva; - } - } - - // Amount TTC / gross - if (!empty($arrayfields['c.total_ttc']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'c.total_ttc'; - } - if (isset($totalarray['val']['c.total_ttc'])) { - $totalarray['val']['c.total_ttc'] += $obj->total_ttc; - } else { - $totalarray['val']['c.total_ttc'] = $obj->total_ttc; - } - } - - // Currency - if (!empty($arrayfields['c.multicurrency_code']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Currency rate - if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Amount HT/net in foreign currency - if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount VAT in foreign currency - if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount TTC / gross in foreign currency - if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - $userstatic->id = $obj->fk_user_author; - $userstatic->login = $obj->login; - $userstatic->lastname = $obj->lastname; - $userstatic->firstname = $obj->firstname; - $userstatic->email = $obj->user_email; - $userstatic->statut = $obj->user_statut; - $userstatic->entity = $obj->entity; - $userstatic->photo = $obj->photo; - $userstatic->office_phone = $obj->office_phone; - $userstatic->office_fax = $obj->office_fax; - $userstatic->user_mobile = $obj->user_mobile; - $userstatic->job = $obj->job; - $userstatic->gender = $obj->gender; - - // Author - if (!empty($arrayfields['u.login']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Sales representatives - if (!empty($arrayfields['sale_representative']['checked'])) { - print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project label + if (!empty($arrayfields['p.title']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Third party + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Total buying or cost price - if (!empty($arrayfields['total_pa']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Alias name + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Total margin - if (!empty($arrayfields['total_margin']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Parent company + if (!empty($arrayfields['s2.nom']['checked'])) { + print '"; + if (!$i) { + $totalarray['nbfield']++; + } } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'total_margin'; - } - $totalarray['val']['total_margin'] += $marginInfo['total_margin']; - } - // Total margin rate - if (!empty($arrayfields['total_margin_rate']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Total mark rate - if (!empty($arrayfields['total_mark_rate']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; + + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } } - if ($i >= $imaxinloop - 1) { - if (!empty($total_ht)) { - $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); + + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Order date + if (!empty($arrayfields['c.date_commande']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Plannned date of delivery + if (!empty($arrayfields['c.date_delivery']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Shipping Method + if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Payment terms + if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Payment mode + if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Channel + if (!empty($arrayfields['c.fk_input_reason']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Amount HT/net + if (!empty($arrayfields['c.total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'c.total_ht'; + } + if (isset($totalarray['val']['c.total_ht'])) { + $totalarray['val']['c.total_ht'] += $obj->total_ht; } else { - $totalarray['val']['total_mark_rate'] = ''; + $totalarray['val']['c.total_ht'] = $obj->total_ht; } } - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - // Date creation - if (!empty($arrayfields['c.datec']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Amount VAT + if (!empty($arrayfields['c.total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'c.total_tva'; + } + if (isset($totalarray['val']['c.total_tva'])) { + $totalarray['val']['c.total_tva'] += $obj->total_tva; + } else { + $totalarray['val']['c.total_tva'] = $obj->total_tva; + } } - } - // Date modification - if (!empty($arrayfields['c.tms']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Amount TTC / gross + if (!empty($arrayfields['c.total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'c.total_ttc'; + } + if (isset($totalarray['val']['c.total_ttc'])) { + $totalarray['val']['c.total_ttc'] += $obj->total_ttc; + } else { + $totalarray['val']['c.total_ttc'] = $obj->total_ttc; + } } - } - // Date cloture - if (!empty($arrayfields['c.date_cloture']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Currency + if (!empty($arrayfields['c.multicurrency_code']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Note public - if (!empty($arrayfields['c.note_public']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Currency rate + if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Note private - if (!empty($arrayfields['c.note_private']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Amount HT/net in foreign currency + if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount VAT in foreign currency + if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount TTC / gross in foreign currency + if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Show shippable Icon (this creates subloops, so may be slow) - if (!empty($arrayfields['shippable']['checked'])) { - print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Sales representatives + if (!empty($arrayfields['sale_representative']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } - // Get local and virtual stock and store it into cache - if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product])) { - $generic_product->load_stock('nobatch,warehouseopen'); // ->load_virtual_stock() is already included into load_stock() - $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_reel; - $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; + // Total buying or cost price + if (!empty($arrayfields['total_pa']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Total margin + if (!empty($arrayfields['total_margin']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_margin'; + } + $totalarray['val']['total_margin'] += $marginInfo['total_margin']; + } + + // Total margin rate + if (!empty($arrayfields['total_margin_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Total mark rate + if (!empty($arrayfields['total_mark_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; + } + if ($i >= $imaxinloop - 1) { + if (!empty($total_ht)) { + $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); + } else { + $totalarray['val']['total_mark_rate'] = ''; + } + } + } + + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + // Date creation + if (!empty($arrayfields['c.datec']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date modification + if (!empty($arrayfields['c.tms']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date cloture + if (!empty($arrayfields['c.date_cloture']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Note public + if (!empty($arrayfields['c.note_public']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Note private + if (!empty($arrayfields['c.note_private']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Show shippable Icon (this creates subloops, so may be slow) + if (!empty($arrayfields['shippable']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; } } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Billed - if (!empty($arrayfields['c.facture']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Import key - if (!empty($arrayfields['c.import_key']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Status - if (!empty($arrayfields['c.fk_statut']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Action column - if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { - print ''; + if (!$i) { + $totalarray['nbfield']++; } - print ''; } - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Import key + if (!empty($arrayfields['c.import_key']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } + + // Status + if (!empty($arrayfields['c.fk_statut']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + print "\n"; + + $total += $obj->total_ht; + $subtotal += $obj->total_ht; } - - print "\n"; - - $total += $obj->total_ht; - $subtotal += $obj->total_ht; $i++; } diff --git a/htdocs/commande/list_det.php b/htdocs/commande/list_det.php new file mode 100644 index 00000000000..d5b0336b95a --- /dev/null +++ b/htdocs/commande/list_det.php @@ -0,0 +1,2190 @@ + + * Copyright (C) 2004-2019 Laurent Destailleur + * Copyright (C) 2005 Marc Barilley / Ocebo + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2013 Christophe Battarel + * Copyright (C) 2013 Cédric Salvador + * Copyright (C) 2015-2018 Frédéric France + * Copyright (C) 2015 Marcos García + * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2016-2021 Ferran Marcet + * Copyright (C) 2018 Charlene Benke + * Copyright (C) 2021-2022 Anthony Berton + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/commande/list.php + * \ingroup commande + * \brief Page to list orders + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +if (!empty($conf->margin->enabled)) { + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmargin.class.php'; +} +require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array("orders", 'sendings', 'deliveries', 'companies', 'compta', 'bills', 'stocks', 'products')); + +$action = GETPOST('action', 'aZ09'); +$massaction = GETPOST('massaction', 'alpha'); +$show_files = GETPOST('show_files', 'int'); +$confirm = GETPOST('confirm', 'alpha'); +$toselect = GETPOST('toselect', 'array'); +$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'orderlistdet'; +$productobuy = GETPOST('productobuy', 'alpha'); +$productonly = GETPOST('productonly', 'alpha'); +$disablelinefree = GETPOST('disablelinefree', 'alpha'); + +$search_datecloture_start = GETPOST('search_datecloture_start', 'int'); +if (empty($search_datecloture_start)) { + $search_datecloture_start = dol_mktime(0, 0, 0, GETPOST('search_datecloture_startmonth', 'int'), GETPOST('search_datecloture_startday', 'int'), GETPOST('search_datecloture_startyear', 'int')); +} +$search_datecloture_end = GETPOST('search_datecloture_end', 'int'); +if (empty($search_datecloture_end)) { + $search_datecloture_end = dol_mktime(23, 59, 59, GETPOST('search_datecloture_endmonth', 'int'), GETPOST('search_datecloture_endday', 'int'), GETPOST('search_datecloture_endyear', 'int')); +} +$search_dateorder_start = dol_mktime(0, 0, 0, GETPOST('search_dateorder_start_month', 'int'), GETPOST('search_dateorder_start_day', 'int'), GETPOST('search_dateorder_start_year', 'int')); +$search_dateorder_end = dol_mktime(23, 59, 59, GETPOST('search_dateorder_end_month', 'int'), GETPOST('search_dateorder_end_day', 'int'), GETPOST('search_dateorder_end_year', 'int')); +$search_datedelivery_start = dol_mktime(0, 0, 0, GETPOST('search_datedelivery_start_month', 'int'), GETPOST('search_datedelivery_start_day', 'int'), GETPOST('search_datedelivery_start_year', 'int')); +$search_datedelivery_end = dol_mktime(23, 59, 59, GETPOST('search_datedelivery_end_month', 'int'), GETPOST('search_datedelivery_end_day', 'int'), GETPOST('search_datedelivery_end_year', 'int')); +$search_product_category = GETPOST('search_product_category', 'int'); + +// Détail commande +$search_refProduct = GETPOST('search_refProduct', 'alpha'); +$search_descProduct = GETPOST('search_descProduct', 'alpha'); + +$search_ref = GETPOST('search_ref', 'alpha') != '' ?GETPOST('search_ref', 'alpha') : GETPOST('sref', 'alpha'); +$search_ref_customer = GETPOST('search_ref_customer', 'alpha'); +$search_company = GETPOST('search_company', 'alpha'); +$search_company_alias = GETPOST('search_company_alias', 'alpha'); +$search_town = GETPOST('search_town', 'alpha'); +$search_zip = GETPOST('search_zip', 'alpha'); +$search_state = GETPOST("search_state", 'alpha'); +$search_country = GETPOST("search_country", 'int'); +$search_type_thirdparty = GETPOST("search_type_thirdparty", 'int'); +$sall = trim((GETPOST('search_all', 'alphanohtml') != '') ? GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); +$socid = GETPOST('socid', 'int'); +$search_user = GETPOST('search_user', 'int'); +$search_sale = GETPOST('search_sale', 'int'); +$search_total_ht = GETPOST('search_total_ht', 'alpha'); +$search_total_vat = GETPOST('search_total_vat', 'alpha'); +$search_total_ttc = GETPOST('search_total_ttc', 'alpha'); +$search_warehouse = GETPOST('search_warehouse', 'int'); +$search_multicurrency_code = GETPOST('search_multicurrency_code', 'alpha'); +$search_multicurrency_tx = GETPOST('search_multicurrency_tx', 'alpha'); +$search_multicurrency_montant_ht = GETPOST('search_multicurrency_montant_ht', 'alpha'); +$search_multicurrency_montant_vat = GETPOST('search_multicurrency_montant_vat', 'alpha'); +$search_multicurrency_montant_ttc = GETPOST('search_multicurrency_montant_ttc', 'alpha'); +$search_login = GETPOST('search_login', 'alpha'); +$search_categ_cus = GETPOST("search_categ_cus", 'int'); +$optioncss = GETPOST('optioncss', 'alpha'); +$search_billed = GETPOSTISSET('search_billed') ? GETPOST('search_billed', 'int') : GETPOST('billed', 'int'); +$search_status = GETPOST('search_status', 'int'); +$search_btn = GETPOST('button_search', 'alpha'); +$search_remove_btn = GETPOST('button_removefilter', 'alpha'); +$search_project_ref = GETPOST('search_project_ref', 'alpha'); +$search_project = GETPOST('search_project', 'alpha'); +$search_shippable = GETPOST('search_shippable', 'aZ09'); +$search_fk_cond_reglement = GETPOST("search_fk_cond_reglement", 'int'); +$search_fk_shipping_method = GETPOST("search_fk_shipping_method", 'int'); +$search_fk_mode_reglement = GETPOST("search_fk_mode_reglement", 'int'); +$search_fk_input_reason = GETPOST("search_fk_input_reason", 'int'); + +// Security check +$id = (GETPOST('orderid') ?GETPOST('orderid', 'int') : GETPOST('id', 'int')); +if ($user->socid) { + $socid = $user->socid; +} +$result = restrictedArea($user, 'commande', $id, ''); + +$diroutputmassaction = $conf->commande->multidir_output[$conf->entity].'/temp/massgeneration/'.$user->id; + +// Load variable for pagination +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { + $page = 0; +} // If $page is not defined, or '' or -1 or if we click on clear filters +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (!$sortfield) { + $sortfield = 'pr.ref'; +} +if (!$sortorder) { + $sortorder = 'ASC'; +} + +$show_shippable_command = GETPOST('show_shippable_command', 'aZ09'); + +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$object = new Commande($db); +$hookmanager->initHooks(array('orderlistdetail')); +$extrafields = new ExtraFields($db); + +// fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); + +// List of fields to search into when doing a "search in all" +$fieldstosearchall = array( + 'c.ref'=>'Ref', + 'c.ref_client'=>'RefCustomerOrder', + 'pd.description'=>'Description', + 's.nom'=>"ThirdParty", + 's.name_alias'=>"AliasNameShort", + 's.zip'=>"Zip", + 's.town'=>"Town", + 'c.note_public'=>'NotePublic', +); +if (empty($user->socid)) { + $fieldstosearchall["c.note_private"] = "NotePrivate"; +} + +$checkedtypetiers = 0; +$arrayfields = array( + // Détail commande + 'pr.ref'=> array('label'=>'ProductRef', 'checked'=>1, 'position'=>1), + 'pr.desc'=> array('label'=>'ProductDescription', 'checked'=>1, 'position'=>1), + 'cdet.qty'=> array('label'=>'QtyOrdered', 'checked'=>1, 'position'=>1), + 'c.ref'=>array('label'=>"Ref", 'checked'=>1, 'position'=>5), + 'c.ref_client'=>array('label'=>"RefCustomerOrder", 'checked'=>-1, 'position'=>10), + 'p.ref'=>array('label'=>"ProjectRef", 'checked'=>-1, 'enabled'=>(empty($conf->project->enabled) ? 0 : 1), 'position'=>20), + 'p.title'=>array('label'=>"ProjectLabel", 'checked'=>0, 'enabled'=>(empty($conf->project->enabled) ? 0 : 1), 'position'=>25), + 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1, 'position'=>30), + 's.name_alias'=>array('label'=>"AliasNameShort", 'checked'=>-1, 'position'=>31), + 's.town'=>array('label'=>"Town", 'checked'=>-1, 'position'=>35), + 's.zip'=>array('label'=>"Zip", 'checked'=>-1, 'position'=>40), + 'state.nom'=>array('label'=>"StateShort", 'checked'=>0, 'position'=>45), + 'country.code_iso'=>array('label'=>"Country", 'checked'=>0, 'position'=>50), + 'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers, 'position'=>55), + 'c.date_commande'=>array('label'=>"OrderDateShort", 'checked'=>1, 'position'=>60), + 'c.date_delivery'=>array('label'=>"DateDeliveryPlanned", 'checked'=>1, 'enabled'=>empty($conf->global->ORDER_DISABLE_DELIVERY_DATE), 'position'=>65), + 'c.fk_shipping_method'=>array('label'=>"SendingMethod", 'checked'=>-1, 'position'=>66 , 'enabled'=>!empty($conf->expedition->enabled)), + 'c.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>-1, 'position'=>67), + 'c.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>-1, 'position'=>68), + 'c.fk_input_reason'=>array('label'=>"Channel", 'checked'=>-1, 'position'=>69), + 'cdet.total_ht'=>array('label'=>"AmountHT", 'checked'=>1, 'position'=>75), + 'c.total_vat'=>array('label'=>"AmountVAT", 'checked'=>0, 'position'=>80), + 'cdet.total_ttc'=>array('label'=>"AmountTTC", 'checked'=>0, 'position'=>85), + 'c.multicurrency_code'=>array('label'=>'Currency', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>90), + 'c.multicurrency_tx'=>array('label'=>'CurrencyRate', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>95), + 'c.multicurrency_total_ht'=>array('label'=>'MulticurrencyAmountHT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>100), + 'c.multicurrency_total_vat'=>array('label'=>'MulticurrencyAmountVAT', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>105), + 'c.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(empty($conf->multicurrency->enabled) ? 0 : 1), 'position'=>110), + 'c.fk_warehouse'=>array('label'=>'Warehouse', 'checked'=>0, 'enabled'=>(empty($conf->stock->enabled) && empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER) ? 0 : 1), 'position'=>110), + 'u.login'=>array('label'=>"Author", 'checked'=>1, 'position'=>115), + 'sale_representative'=>array('label'=>"SaleRepresentativesOfThirdParty", 'checked'=>0, 'position'=>116), + 'total_pa' => array('label' => (getDolGlobalString('MARGIN_TYPE') == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 1)), + 'total_margin' => array('label' => 'Margin', 'checked' => 0, 'position' => 301, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 1)), + 'total_margin_rate' => array('label' => 'MarginRate', 'checked' => 0, 'position' => 302, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARGIN_RATES) ? 0 : 1)), + 'total_mark_rate' => array('label' => 'MarkRate', 'checked' => 0, 'position' => 303, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARK_RATES) ? 0 : 1)), + 'c.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>120), + 'c.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>125), + 'c.date_cloture'=>array('label'=>"DateClosing", 'checked'=>0, 'position'=>130), + 'c.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PUBLIC_NOTES)), 'position'=>135), + 'c.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PRIVATE_NOTES)), 'position'=>140), + 'shippable'=>array('label'=>"Shippable", 'checked'=>1,'enabled'=>(!empty($conf->expedition->enabled)), 'position'=>990), + 'c.facture'=>array('label'=>"Billed", 'checked'=>1, 'enabled'=>(empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)), 'position'=>995), + 'c.import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>999), + 'c.fk_statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000) +); + +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; + +$object->fields = dol_sort_array($object->fields, 'position'); +$arrayfields = dol_sort_array($arrayfields, 'position'); + + + +/* + * Actions + */ + +if (GETPOST('cancel', 'alpha')) { + $action = 'list'; $massaction = ''; +} +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { + $massaction = ''; +} + +$parameters = array('socid'=>$socid); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +if (empty($reshook)) { + // Selection of new fields + include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; + + // Purge search criteria + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers + $productobuy = ''; + $productonly = ''; + $disablelinefree = ''; + $search_categ = ''; + $search_user = ''; + $search_sale = ''; + $search_product_category = ''; + $search_refProduct = ''; + $search_descProduct = ''; + $search_ref = ''; + $search_ref_customer = ''; + $search_company = ''; + $search_company_alias = ''; + $search_town = ''; + $search_zip = ""; + $search_state = ""; + $search_type = ''; + $search_country = ''; + $search_type_thirdparty = ''; + $search_total_ht = ''; + $search_total_vat = ''; + $search_total_ttc = ''; + $search_warehouse = ''; + $search_multicurrency_code = ''; + $search_multicurrency_tx = ''; + $search_multicurrency_montant_ht = ''; + $search_multicurrency_montant_vat = ''; + $search_multicurrency_montant_ttc = ''; + $search_login = ''; + $search_dateorder_start = ''; + $search_dateorder_end = ''; + $search_datedelivery_start = ''; + $search_datedelivery_end = ''; + $search_project_ref = ''; + $search_project = ''; + $search_status = ''; + $search_billed = ''; + $toselect = array(); + $search_array_options = array(); + $search_categ_cus = 0; + $search_datecloture_start = ''; + $search_datecloture_end = ''; + $search_fk_cond_reglement = ''; + $search_fk_shipping_method = ''; + $search_fk_mode_reglement = ''; + $search_fk_input_reason = ''; + } + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') + || GETPOST('button_search_x', 'alpha') || GETPOST('button_search.x', 'alpha') || GETPOST('button_search', 'alpha')) { + $massaction = ''; // Protection to avoid mass action if we force a new search during a mass action confirmation + } + + // Mass actions + $objectclass = 'Commande'; + $objectlabel = 'Orders'; + $permissiontoread = $user->rights->commande->lire; + $permissiontoadd = $user->rights->commande->creer; + $permissiontodelete = $user->rights->commande->supprimer; + if (!empty($conf->global->MAIN_USE_ADVANCED_PERMS)) { + $permissiontovalidate = $user->rights->commande->order_advance->validate; + $permissiontoclose = $user->rights->commande->order_advance->close; + $permissiontocancel = $user->rights->commande->order_advance->annuler; + $permissiontosendbymail = $user->rights->commande->order_advance->send; + } else { + $permissiontovalidate = $user->rights->commande->creer; + $permissiontoclose = $user->rights->commande->creer; + $permissiontocancel = $user->rights->commande->creer; + $permissiontosendbymail = $user->rights->commande->creer; + } + $uploaddir = $conf->commande->multidir_output[$conf->entity]; + $triggersendname = 'ORDER_SENTBYMAIL'; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; +} + +// Closed records +// if (!$error && $massaction === 'setbilled' && $permissiontoclose) { + +// } + +/* + * View + */ + +$now = dol_now(); + +$form = new Form($db); +$formother = new FormOther($db); +$formfile = new FormFile($db); +$formmargin = null; +if (!empty($conf->margin->enabled)) { + $formmargin = new FormMargin($db); +} +$companystatic = new Societe($db); +$formcompany = new FormCompany($db); +$projectstatic = new Project($db); + +$title = $langs->trans("Orders"); +$help_url = "EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes"; +// llxHeader('',$title,$help_url); + +$sql = 'SELECT'; +if ($sall || $search_product_category > 0 || $search_user > 0) { + $sql = 'SELECT DISTINCT'; +} +$sql .= ' s.rowid as socid, s.nom as name, s.name_alias as alias, s.email, s.phone, s.fax, s.address, s.town, s.zip, s.fk_pays, s.client, s.code_client,'; +$sql .= " typent.code as typent_code,"; +$sql .= " state.code_departement as state_code, state.nom as state_name,"; +$sql .= " country.code as country_code,"; +$sql .= ' c.rowid as c_rowid, c.ref, c.ref_client, c.fk_user_author,'; +$sql .= ' c.fk_multicurrency, c.multicurrency_code, c.multicurrency_tx, c.multicurrency_total_ht, c.multicurrency_total_tva as multicurrency_total_vat, c.multicurrency_total_ttc,'; +$sql .= ' c.total_ht as c_total_ht, c.total_tva as c_total_tva, c.total_ttc as c_total_ttc, c.fk_warehouse as warehouse,'; +$sql .= ' c.date_valid, c.date_commande, c.note_public, c.note_private, c.date_livraison as date_delivery, c.fk_statut, c.facture as billed,'; +$sql .= ' c.date_creation as date_creation, c.tms as date_update, c.date_cloture as date_cloture,'; +$sql .= ' p.rowid as project_id, p.ref as project_ref, p.title as project_label,'; +$sql .= ' u.login, u.lastname, u.firstname, u.email as user_email, u.statut as user_statut, u.entity, u.photo, u.office_phone, u.office_fax, u.user_mobile, u.job, u.gender,'; +$sql .= ' c.fk_cond_reglement,c.deposit_percent,c.fk_mode_reglement,c.fk_shipping_method,'; +$sql .= ' c.fk_input_reason, c.import_key'; + +// Détail commande +$sql .= ', cdet.rowid, cdet.description, cdet.qty, cdet.product_type, cdet.fk_product, cdet.total_ht, cdet.total_tva, cdet.total_ttc, '; +$sql .= ' pr.rowid as product_rowid, pr.ref as product_ref, pr.label as product_label, pr.barcode as product_barcode, pr.tobatch as product_batch, pr.tosell as product_status, pr.tobuy as product_status_buy'; + +if (($search_categ_cus > 0) || ($search_categ_cus == -2)) { + $sql .= ", cc.fk_categorie, cc.fk_soc"; +} +// Add fields from extrafields +if (!empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { + $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key." as options_".$key : ''); + } +} +// Add fields from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; +$sql .= ' FROM '.MAIN_DB_PREFIX.'societe as s'; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; +if (($search_categ_cus > 0) || ($search_categ_cus == -2)) { + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cc ON s.rowid = cc.fk_soc"; // We'll need this table joined to the select in order to filter by categ +} + +// Détail commande +$sql .= ', '.MAIN_DB_PREFIX.'commandedet as cdet'; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'commande as c ON cdet.fk_commande=c.rowid'; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as pr ON pr.rowid=cdet.fk_product'; + +if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."commande_extrafields as ef on (c.rowid = ef.fk_object)"; +} +if ($sall || $search_product_category > 0) { + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'commandedet as pd ON c.rowid=pd.fk_commande'; +} +if ($search_product_category > 0) { + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; +} +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = c.fk_projet"; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user as u ON c.fk_user_author = u.rowid'; + +// We'll need this table joined to the select in order to filter by sale +if ($search_sale > 0 || (empty($user->rights->societe->client->voir) && !$socid)) { + $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; +} +if ($search_user > 0) { + $sql .= ", ".MAIN_DB_PREFIX."element_contact as ec"; + $sql .= ", ".MAIN_DB_PREFIX."c_type_contact as tc"; +} + +// Add table from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; + +$sql .= ' WHERE c.fk_soc = s.rowid'; +$sql .= ' AND c.entity IN ('.getEntity('commande').')'; +$sql .= ' AND cdet.product_type <> 9'; + +if (!empty($productobuy)) { + $sql .= " AND pr.tobuy = 1"; +} +if (!empty($productonly)) { + $sql .= " AND (cdet.product_type = 0 OR cdet.product_type = 1)"; +} +if (!empty($disablelinefree)) { + $sql .= " AND cdet.fk_product IS NOT NULL"; +} +if ($search_product_category > 0) { + $sql .= " AND cp.fk_categorie = ".((int) $search_product_category); +} +if ($socid > 0) { + $sql .= ' AND s.rowid = '.((int) $socid); +} +if (empty($user->rights->societe->client->voir) && !$socid) { + $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id); +} +if ($search_refProduct) { + $sql .= natural_search('pr.ref', $search_refProduct); +} +if ($search_descProduct) { + $sql .= natural_search('pr.label', $search_descProduct); + $sql .= natural_search('cdet.description', $search_descProduct); +} +if ($search_ref) { + $sql .= natural_search('c.ref', $search_ref); +} +if ($search_ref_customer) { + $sql .= natural_search('c.ref_client', $search_ref_customer); +} +if ($sall) { + $sql .= natural_search(array_keys($fieldstosearchall), $sall); +} +if ($search_billed != '' && $search_billed >= 0) { + $sql .= ' AND c.facture = '.((int) $search_billed); +} +if ($search_status <> '') { + if ($search_status <= 3 && $search_status >= -1) { // status from -1 to 3 are real status (other are virtual combination) + if ($search_status == 1 && empty($conf->expedition->enabled)) { + $sql .= ' AND c.fk_statut IN (1,2)'; // If module expedition disabled, we include order with status 'sending in process' into 'validated' + } else { + $sql .= ' AND c.fk_statut = '.((int) $search_status); // brouillon, validee, en cours, annulee + } + } + if ($search_status == -2) { // To process + //$sql.= ' AND c.fk_statut IN (1,2,3) AND c.facture = 0'; + $sql .= " AND ((c.fk_statut IN (1,2)) OR (c.fk_statut = 3 AND c.facture = 0))"; // If status is 2 and facture=1, it must be selected + } + if ($search_status == -3) { // To bill + //$sql.= ' AND c.fk_statut in (1,2,3)'; + //$sql.= ' AND c.facture = 0'; // invoice not created + $sql .= ' AND ((c.fk_statut IN (1,2)) OR (c.fk_statut = 3 AND c.facture = 0))'; // validated, in process or closed but not billed + } + if ($search_status == -4) { // "validate and in progress" + $sql .= ' AND (c.fk_statut IN (1,2))'; // validated, in process + } +} + +if ($search_datecloture_start) { + $sql .= " AND c.date_cloture >= '".$db->idate($search_datecloture_start)."'"; +} +if ($search_datecloture_end) { + $sql .= " AND c.date_cloture <= '".$db->idate($search_datecloture_end)."'"; +} +if ($search_dateorder_start) { + $sql .= " AND c.date_commande >= '".$db->idate($search_dateorder_start)."'"; +} +if ($search_dateorder_end) { + $sql .= " AND c.date_commande <= '".$db->idate($search_dateorder_end)."'"; +} +if ($search_datedelivery_start) { + $sql .= " AND c.date_livraison >= '".$db->idate($search_datedelivery_start)."'"; +} +if ($search_datedelivery_end) { + $sql .= " AND c.date_livraison <= '".$db->idate($search_datedelivery_end)."'"; +} +if ($search_town) { + $sql .= natural_search('s.town', $search_town); +} +if ($search_zip) { + $sql .= natural_search("s.zip", $search_zip); +} +if ($search_state) { + $sql .= natural_search("state.nom", $search_state); +} +if ($search_country) { + $sql .= " AND s.fk_pays IN (".$db->sanitize($search_country).')'; +} +if ($search_type_thirdparty && $search_type_thirdparty != '-1') { + $sql .= " AND s.fk_typent IN (".$db->sanitize($search_type_thirdparty).')'; +} +if ($search_company) { + $sql .= natural_search('s.nom', $search_company); +} +if ($search_company_alias) { + $sql .= natural_search('s.name_alias', $search_company_alias); +} +if ($search_sale > 0) { + $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $search_sale); +} +if ($search_user > 0) { + $sql .= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='commande' AND tc.source='internal' AND ec.element_id = c.rowid AND ec.fk_socpeople = ".((int) $search_user); +} +if ($search_total_ht != '') { + $sql .= natural_search('cdet.total_ht', $search_total_ht, 1); +} +if ($search_total_vat != '') { + $sql .= natural_search('cdet.total_tva', $search_total_vat, 1); +} +if ($search_total_ttc != '') { + $sql .= natural_search('cdet.total_ttc', $search_total_ttc, 1); +} +if ($search_warehouse != '' && $search_warehouse > 0) { + $sql .= natural_search('c.fk_warehouse', $search_warehouse, 1); +} +if ($search_multicurrency_code != '') { + $sql .= " AND c.multicurrency_code = '".$db->escape($search_multicurrency_code)."'"; +} +if ($search_multicurrency_tx != '') { + $sql .= natural_search('c.multicurrency_tx', $search_multicurrency_tx, 1); +} +if ($search_multicurrency_montant_ht != '') { + $sql .= natural_search('c.multicurrency_total_ht', $search_multicurrency_montant_ht, 1); +} +if ($search_multicurrency_montant_vat != '') { + $sql .= natural_search('c.multicurrency_total_tva', $search_multicurrency_montant_vat, 1); +} +if ($search_multicurrency_montant_ttc != '') { + $sql .= natural_search('c.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1); +} +if ($search_login) { + $sql .= natural_search(array("u.login", "u.firstname", "u.lastname"), $search_login); +} +if ($search_project_ref != '') { + $sql .= natural_search("p.ref", $search_project_ref); +} +if ($search_project != '') { + $sql .= natural_search("p.title", $search_project); +} +if ($search_categ_cus > 0) { + $sql .= " AND cc.fk_categorie = ".((int) $search_categ_cus); +} +if ($search_categ_cus == -2) { + $sql .= " AND cc.fk_categorie IS NULL"; +} +if ($search_fk_cond_reglement > 0) { + $sql .= " AND c.fk_cond_reglement = ".((int) $search_fk_cond_reglement); +} +if ($search_fk_shipping_method > 0) { + $sql .= " AND c.fk_shipping_method = ".((int) $search_fk_shipping_method); +} +if ($search_fk_mode_reglement > 0) { + $sql .= " AND c.fk_mode_reglement = ".((int) $search_fk_mode_reglement); +} +if ($search_fk_input_reason > 0) { + $sql .= " AND c.fk_input_reason = ".((int) $search_fk_input_reason); +} + +// Add where from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; +// Add where from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; + +// Add HAVING from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListHaving', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql .= empty($hookmanager->resPrint) ? "" : " HAVING 1=1 ".$hookmanager->resPrint; + +$sql .= $db->order($sortfield, $sortorder); + +// Count total nb of records +$nbtotalofrecords = ''; +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { + $result = $db->query($sql); + $nbtotalofrecords = $db->num_rows($result); + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 + $page = 0; + $offset = 0; + } +} + +$sql .= $db->plimit($limit + 1, $offset); +//print $sql; + +$resql = $db->query($sql); +if ($resql) { + if ($socid > 0) { + $soc = new Societe($db); + $soc->fetch($socid); + $title = $langs->trans('ListOrderLigne').' - '.$soc->name; + if (empty($search_company)) { + $search_company = $soc->name; + } + } else { + $title = $langs->trans('ListOrderLigne'); + } + if (strval($search_status) == '0') { + $title .= ' - '.$langs->trans('StatusOrderDraftShort'); + } + if ($search_status == 1) { + $title .= ' - '.$langs->trans('StatusOrderValidatedShort'); + } + if ($search_status == 2) { + $title .= ' - '.$langs->trans('StatusOrderSentShort'); + } + if ($search_status == 3) { + $title .= ' - '.$langs->trans('StatusOrderToBillShort'); + } + if ($search_status == -1) { + $title .= ' - '.$langs->trans('StatusOrderCanceledShort'); + } + if ($search_status == -2) { + $title .= ' - '.$langs->trans('StatusOrderToProcessShort'); + } + if ($search_status == -3) { + $title .= ' - '.$langs->trans('StatusOrderValidated').', '.(empty($conf->expedition->enabled) ? '' : $langs->trans("StatusOrderSent").', ').$langs->trans('StatusOrderToBill'); + } + if ($search_status == -4) { + $title .= ' - '.$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort"); + } + + $num = $db->num_rows($resql); + + $arrayofselected = is_array($toselect) ? $toselect : array(); + + if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall) { + $obj = $db->fetch_object($resql); + $id = $obj->rowid; + header("Location: ".DOL_URL_ROOT.'/commande/card.php?id='.$id); + exit; + } + + llxHeader('', $title, $help_url); + + $param = ''; + + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.urlencode($contextpage); + } + if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); + } + if ($sall) { + $param .= '&sall='.urlencode($sall); + } + if ($socid > 0) { + $param .= '&socid='.urlencode($socid); + } + if ($search_status != '') { + $param .= '&search_status='.urlencode($search_status); + } + if ($search_datecloture_start) { + $param .= '&search_datecloture_startday='.dol_print_date($search_datecloture_start, '%d').'&search_datecloture_startmonth='.dol_print_date($search_datecloture_start, '%m').'&search_datecloture_startyear='.dol_print_date($search_datecloture_start, '%Y'); + } + if ($search_datecloture_end) { + $param .= '&search_datecloture_endday='.dol_print_date($search_datecloture_end, '%d').'&search_datecloture_endmonth='.dol_print_date($search_datecloture_end, '%m').'&search_datecloture_endyear='.dol_print_date($search_datecloture_end, '%Y'); + } + if ($search_dateorder_start) { + $param .= '&search_dateorder_start_day='.dol_print_date($search_dateorder_start, '%d').'&search_dateorder_start_month='.dol_print_date($search_dateorder_start, '%m').'&search_dateorder_start_year='.dol_print_date($search_dateorder_start, '%Y'); + } + if ($search_dateorder_end) { + $param .= '&search_dateorder_end_day='.dol_print_date($search_dateorder_end, '%d').'&search_dateorder_end_month='.dol_print_date($search_dateorder_end, '%m').'&search_dateorder_end_year='.dol_print_date($search_dateorder_end, '%Y'); + } + if ($search_datedelivery_start) { + $param .= '&search_datedelivery_start_day='.dol_print_date($search_datedelivery_start, '%d').'&search_datedelivery_start_month='.dol_print_date($search_datedelivery_start, '%m').'&search_datedelivery_start_year='.dol_print_date($search_datedelivery_start, '%Y'); + } + if ($search_datedelivery_end) { + $param .= '&search_datedelivery_end_day='.dol_print_date($search_datedelivery_end, '%d').'&search_datedelivery_end_month='.dol_print_date($search_datedelivery_end, '%m').'&search_datedelivery_end_year='.dol_print_date($search_datedelivery_end, '%Y'); + } + if ($search_ref) { + $param .= '&search_ref='.urlencode($search_ref); + } + if ($search_company) { + $param .= '&search_company='.urlencode($search_company); + } + if ($search_company_alias) { + $param .= '&search_company_alias='.urlencode($search_company_alias); + } + if ($search_ref_customer) { + $param .= '&search_ref_customer='.urlencode($search_ref_customer); + } + if ($search_user > 0) { + $param .= '&search_user='.urlencode($search_user); + } + if ($search_sale > 0) { + $param .= '&search_sale='.urlencode($search_sale); + } + if ($search_total_ht != '') { + $param .= '&search_total_ht='.urlencode($search_total_ht); + } + if ($search_total_vat != '') { + $param .= '&search_total_vat='.urlencode($search_total_vat); + } + if ($search_total_ttc != '') { + $param .= '&search_total_ttc='.urlencode($search_total_ttc); + } + if ($search_warehouse != '') { + $param .= '&search_warehouse='.urlencode($search_warehouse); + } + if ($search_login) { + $param .= '&search_login='.urlencode($search_login); + } + if ($search_multicurrency_code != '') { + $param .= '&search_multicurrency_code='.urlencode($search_multicurrency_code); + } + if ($search_multicurrency_tx != '') { + $param .= '&search_multicurrency_tx='.urlencode($search_multicurrency_tx); + } + if ($search_multicurrency_montant_ht != '') { + $param .= '&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht); + } + if ($search_multicurrency_montant_vat != '') { + $param .= '&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat); + } + if ($search_multicurrency_montant_ttc != '') { + $param .= '&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc); + } + if ($search_project_ref >= 0) { + $param .= "&search_project_ref=".urlencode($search_project_ref); + } + if ($search_town != '') { + $param .= '&search_town='.urlencode($search_town); + } + if ($search_zip != '') { + $param .= '&search_zip='.urlencode($search_zip); + } + if ($search_state != '') { + $param .= '&search_state='.urlencode($search_state); + } + if ($search_country != '') { + $param .= '&search_country='.urlencode($search_country); + } + if ($search_type_thirdparty && $search_type_thirdparty != '-1') { + $param .= '&search_type_thirdparty='.urlencode($search_type_thirdparty); + } + if ($search_product_category != '') { + $param .= '&search_product_category='.urlencode($search_product_category); + } + if (($search_categ_cus > 0) || ($search_categ_cus == -2)) { + $param .= '&search_categ_cus='.urlencode($search_categ_cus); + } + if ($show_files) { + $param .= '&show_files='.urlencode($show_files); + } + if ($optioncss != '') { + $param .= '&optioncss='.urlencode($optioncss); + } + if ($search_billed != '') { + $param .= '&search_billed='.urlencode($search_billed); + } + if ($search_fk_cond_reglement > 0) { + $param .= '&search_fk_cond_reglement='.urlencode($search_fk_cond_reglement); + } + if ($search_fk_shipping_method > 0) { + $param .= '&search_fk_shipping_method='.urlencode($search_fk_shipping_method); + } + if ($search_fk_mode_reglement > 0) { + $param .= '&search_fk_mode_reglement='.urlencode($search_fk_mode_reglement); + } + if ($search_fk_input_reason > 0) { + $param .= '&search_fk_input_reason='.urlencode($search_fk_input_reason); + } + if (!empty($productobuy)) { + $param .= '&productobuy='.urlencode($productobuy); + } + if (!empty($productonly)) { + $param .= '&productonly='.urlencode($productonly); + } + if (!empty($disablelinefree)) { + $param .= '&disablelinefree='.urlencode($disablelinefree); + } + + // Add $param from extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; + + // Add $param from hooks + $parameters = array(); + $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook + $param .= $hookmanager->resPrint; + + // List of mass actions available + $arrayofmassactions = array( + 'GenerateOrdersSuppliers'=>img_picto('', 'doc', 'class="pictofixedwidth"').$langs->trans("GenerateOrdersSupplie"), + ); + $massactionbutton = $form->selectMassAction('', $arrayofmassactions); + + $url = DOL_URL_ROOT.'/commande/card.php?action=create'; + if (!empty($socid)) { + $url .= '&socid='.$socid; + } + $newcardbutton = '';//dolGetButtonTitle($langs->trans('NewOrder'), '', 'fa fa-plus-circle', $url, '', $contextpage == 'orderlistdet' && $permissiontoadd); + + // Lines of title fields + print ''; + if ($optioncss != '') { + print ''; + } + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'order', 0, $newcardbutton, '', $limit, 0, 0, 1); + + $topicmail = "SendOrderRef"; + $modelmail = "order_send"; + $objecttmp = new Commande($db); + $trackid = 'ord'.$object->id; + include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; + + if ($sall) { + foreach ($fieldstosearchall as $key => $val) { + $fieldstosearchall[$key] = $langs->trans($val); + } + print '
'.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'
'; + } + + $moreforfilter = ''; + + $moreforfilter .= ''; + $moreforfilter .= ''; + $moreforfilter .= ''; + $moreforfilter .= '
'; + + // If the user can view prospects other than his' + if ($user->rights->user->user->lire) { + $langs->load("commercial"); + $moreforfilter .= '
'; + $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); + $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250 widthcentpercentminusx'); + $moreforfilter .= '
'; + } + // If the user can view other users + if ($user->rights->user->user->lire) { + $moreforfilter .= '
'; + $tmptitle = $langs->trans('LinkedToSpecificUsers'); + $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth250 widthcentpercentminusx'); + $moreforfilter .= '
'; + } + // If the user can view prospects other than his' + if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { + include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $moreforfilter .= '
'; + $tmptitle = $langs->trans('IncludingProductWithTag'); + $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1); + $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, 'maxwidth300 widthcentpercentminusx', 1); + $moreforfilter .= '
'; + } + if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { + require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $moreforfilter .= '
'; + $tmptitle = $langs->trans('CustomersProspectsCategoriesShort'); + $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('customer', $search_categ_cus, 'search_categ_cus', 1, $tmptitle, 'maxwidth300 widthcentpercentminusx'); + $moreforfilter .= '
'; + } + if (!empty($conf->stock->enabled) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { + require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; + $formproduct = new FormProduct($db); + $moreforfilter .= '
'; + $tmptitle = $langs->trans('Warehouse'); + $moreforfilter .= img_picto($tmptitle, 'stock', 'class="pictofixedwidth"').$formproduct->selectWarehouses($search_warehouse, 'search_warehouse', '', 1, 0, 0, $tmptitle, 0, 0, array(), 'maxwidth250 widthcentpercentminusx'); + $moreforfilter .= '
'; + } + + + $parameters = array(); + $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook + if (empty($reshook)) { + $moreforfilter .= $hookmanager->resPrint; + } else { + $moreforfilter = $hookmanager->resPrint; + } + + if (!empty($moreforfilter)) { + print '
'; + print $moreforfilter; + print '
'; + } + + $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; + $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields + $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); + + if (GETPOST('autoselectall', 'int')) { + $selectedfields .= ''; + } + + print '
'; + print '
'.$langs->trans("LastCustomersBills", ($num <= $MAXLIST ? "" : $MAXLIST)).''.$langs->trans("AllBills").''.$num.''; print ''; print '
'.$langs->trans("LastCustomersBills", ($num <= $MAXLIST ? "" : $MAXLIST)).''.$langs->trans("AllBills").''.$num.''.img_picto($langs->trans("Statistics"), 'stats').'
'; @@ -1492,9 +1495,14 @@ if ($object->id > 0) { //print $formfile->getDocumentsLink($facturestatic->element, $filename, $filedir); print ''.dol_print_date($db->jdate($objp->df), 'day').''.dol_print_date($db->jdate($objp->df), 'day').'!!!!!!'.dol_print_date($db->jdate($objp->dl), 'day').'!!!'; print price($objp->total_ht); diff --git a/htdocs/comm/index.php b/htdocs/comm/index.php index 2c20eaea352..b748cac3df4 100644 --- a/htdocs/comm/index.php +++ b/htdocs/comm/index.php @@ -65,14 +65,19 @@ $max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT; $now = dol_now(); // Security check -$socid = GETPOST("socid", 'int'); +//$socid = GETPOST("socid", 'int'); if ($user->socid > 0) { $action = ''; $id = $user->socid; } else { $id = 0; } -restrictedArea($user, 'societe', $id, '&societe', '', 'fk_soc', 'rowid', 0); + +//restrictedArea($user, 'societe', $id, '&societe', '', 'fk_soc', 'rowid', 0); +if (!$user->hasRight('propal', 'read') && !$user->hasRight('supplier_proposal', 'read') && !$user->hasRight('commande', 'read') && !$user->hasRight('fournisseur', 'commande', 'read') + && !$user->hasRight('supplier_order', 'read') && !$user->hasRight('fichinter', 'read')) { + accessforbidden(); +} $maxofloop = (empty($conf->global->MAIN_MAXLIST_OVERLOAD) ? 500 : $conf->global->MAIN_MAXLIST_OVERLOAD); @@ -129,7 +134,7 @@ if ($tmp) { * Draft customer proposals */ -if (isModEnabled("propal") && $user->rights->propal->lire) { +if (isModEnabled("propal") && $user->hasRight("propal", "lire")) { $sql = "SELECT p.rowid, p.ref, p.ref_client, p.total_ht, p.total_tva, p.total_ttc, p.fk_statut as status"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; @@ -227,7 +232,7 @@ if (isModEnabled("propal") && $user->rights->propal->lire) { * Draft supplier proposals */ -if (isModEnabled('supplier_proposal') && $user->rights->supplier_proposal->lire) { +if (isModEnabled('supplier_proposal') && $user->hasRight("supplier_proposal", "lire")) { $sql = "SELECT p.rowid, p.ref, p.total_ht, p.total_tva, p.total_ttc, p.fk_statut as status"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; @@ -422,7 +427,7 @@ if (isModEnabled('commande') && $user->rights->commande->lire) { * Draft purchase orders */ -if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->commande->lire) || (isModEnabled("supplier_order") && $user->rights->supplier_order->lire)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight("fournisseur", "commande", "lire")) || (isModEnabled("supplier_order") && $user->hasRight("supplier_order", "lire"))) { $sql = "SELECT cf.rowid, cf.ref, cf.ref_supplier, cf.total_ht, cf.total_tva, cf.total_ttc, cf.fk_statut as status"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; @@ -517,7 +522,7 @@ if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMO /* - * Draft interventionals + * Draft interventions */ if (isModEnabled('ficheinter')) { $sql = "SELECT f.rowid, f.ref, s.nom as name, f.fk_statut"; @@ -546,13 +551,12 @@ if (isModEnabled('ficheinter')) { if ($resql) { $num = $db->num_rows($resql); $nbofloop = min($num, $maxofloop); + startSimpleTable("DraftFichinter", "fichinter/list.php", "search_status=".Fichinter::STATUS_DRAFT, 2, $num); - print '
'; - print ''; - print ''; - print ''; + //print ''; + //print ''; - if ($num) { + if ($num > 0) { $i = 0; while ($i < $nbofloop) { $obj = $db->fetch_object($resql); @@ -585,6 +589,10 @@ if (isModEnabled('ficheinter')) { $i++; } } + + addSummaryTableLine(3, $num, $nbofloop, $total, "NoIntervention"); + finishSimpleTable(true); + print "
'.$langs->trans("DraftFichinter").'
'.$langs->trans("DraftFichinter").'
"; } } @@ -811,7 +819,7 @@ if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERM /* * Latest contracts */ -if (isModEnabled('contrat') && $user->rights->contrat->lire && 0) { // TODO A REFAIRE DEPUIS NOUVEAU CONTRAT +if (isModEnabled('contrat') && $user->hasRight("contrat", "lire") && 0) { // TODO A REFAIRE DEPUIS NOUVEAU CONTRAT $staticcontrat = new Contrat($db); $sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias"; @@ -889,7 +897,7 @@ if (isModEnabled('contrat') && $user->rights->contrat->lire && 0) { // TODO A RE /* * Opened (validated) proposals */ -if (isModEnabled("propal") && $user->rights->propal->lire) { +if (isModEnabled("propal") && $user->hasRight("propal", "lire")) { $sql = "SELECT p.rowid as propalid, p.entity, p.total_ttc, p.total_ht, p.total_tva, p.ref, p.ref_client, p.fk_statut, p.datep as dp, p.fin_validite as dfv"; $sql .= ", s.rowid as socid, s.nom as name, s.name_alias"; $sql .= ", s.code_client, s.code_compta, s.client"; diff --git a/htdocs/comm/mailing/card.php b/htdocs/comm/mailing/card.php index 41a769f1c2b..32207425d2a 100644 --- a/htdocs/comm/mailing/card.php +++ b/htdocs/comm/mailing/card.php @@ -369,7 +369,7 @@ if (empty($reshook)) { } if (!empty($conf->global->MAILING_DELAY)) { - dol_syslog("Wait a delay of MAILING_DELAY=".$conf->global->MAILING_DELAY); + dol_syslog("Wait a delay of MAILING_DELAY=".((float) $conf->global->MAILING_DELAY)); usleep((float) $conf->global->MAILING_DELAY * 1000000); } diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php index dde6e3204d6..c39e4fbf834 100644 --- a/htdocs/comm/mailing/cibles.php +++ b/htdocs/comm/mailing/cibles.php @@ -675,7 +675,7 @@ if ($object->fetch($id) >= 0) { // Date last update print '
'; - print dol_print_date($obj->tms, 'dayhour'); + print dol_print_date(dol_stringtotime($obj->tms), 'dayhour'); print '
'.$mailstatic->getNomUrl(1).''.dol_trunc($obj->title, 38).''.(!empty($obj->title) ? dol_trunc($obj->title, 38) : '').''.dol_print_date($db->jdate($obj->date_creat), 'day').''.($obj->nbemail ? $obj->nbemail : "0").''.$mailstatic->LibStatut($obj->statut, 5).'
'.$langs->trans('SendingMethod').''; print img_picto('', 'object_dollyrevert', 'class="pictofixedwidth"'); - print $form->selectShippingMethod($shipping_method_id, 'shipping_method_id', '', 1, '', 0, 'maxwidth200 widthcentpercentminusx'); + $form->selectShippingMethod($shipping_method_id, 'shipping_method_id', '', 1, '', 0, 'maxwidth200 widthcentpercentminusx'); print '
'.$langs->trans('NotePublic').''; - $note_public = $object->getDefaultCreateValueFor('note_public', (!empty($objectsrc) ? $objectsrc->note_public : null)); + $note_public = $object->getDefaultCreateValueFor('note_public', (!empty($objectsrc) ? $objectsrc->note_public : (!empty($conf->global->PROPALE_ADDON_NOTE_PUBLIC_DEFAULT) ? $conf->global->PROPALE_ADDON_NOTE_PUBLIC_DEFAULT : null)), 'restricthtml'); $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); @@ -2309,7 +2340,7 @@ if ($action == 'create') { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -2776,7 +2807,7 @@ if ($action == 'create') { } if (!empty($object->lines)) { - $ret = $object->printObjectLines($action, $mysoc, $soc, $lineid, 1); + $object->printObjectLines($action, $mysoc, $object->thirdparty, $lineid, 1); } // Form to add new line diff --git a/htdocs/comm/propal/class/api_proposals.class.php b/htdocs/comm/propal/class/api_proposals.class.php index cf675e01b62..5e0e2c31e19 100644 --- a/htdocs/comm/propal/class/api_proposals.class.php +++ b/htdocs/comm/propal/class/api_proposals.class.php @@ -49,7 +49,7 @@ class Proposals extends DolibarrApi */ public function __construct() { - global $db, $conf; + global $db; $this->db = $db; $this->propal = new Propal($this->db); } @@ -59,9 +59,9 @@ class Proposals extends DolibarrApi * * Return an array with commercial proposal informations * - * @param int $id ID of commercial proposal - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id - * @return array|mixed data without useless information + * @param int $id ID of commercial proposal + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id + * @return Object Object with cleaned properties * * @throws RestException */ @@ -76,8 +76,8 @@ class Proposals extends DolibarrApi * Return an array with proposal informations * * @param string $ref Ref of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id - * @return array|mixed data without useless information + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id + * @return Object Object with cleaned properties * * @url GET ref/{ref} * @@ -93,9 +93,9 @@ class Proposals extends DolibarrApi * * Return an array with proposal informations * - * @param string $ref_ext External reference of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id - * @return array|mixed data without useless information + * @param string $ref_ext External reference of object + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id + * @return Object Object with cleaned properties * * @url GET ref_ext/{ref_ext} * @@ -111,11 +111,11 @@ class Proposals extends DolibarrApi * * Return an array with proposal informations * - * @param int $id ID of order - * @param string $ref Ref of object - * @param string $ref_ext External reference of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id - * @return array|mixed data without useless information + * @param int $id ID of order + * @param string $ref Ref of object + * @param string $ref_ext External reference of object + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id + * @return Object Object with cleaned properties * * @throws RestException */ @@ -289,7 +289,7 @@ class Proposals extends DolibarrApi * * @url GET {id}/lines * - * @return int + * @return array */ public function getLines($id, $sqlfilters = '') { @@ -461,7 +461,7 @@ class Proposals extends DolibarrApi } if (empty($errors)) { $this->db->commit(); - return count($request_data); + return $updateRes; } else { $this->db->rollback(); throw new RestException(400, implode(", ", $errors)); @@ -471,13 +471,12 @@ class Proposals extends DolibarrApi /** * Update a line of given commercial proposal * - * @param int $id Id of commercial proposal to update - * @param int $lineid Id of line to update - * @param array $request_data Commercial proposal line data + * @param int $id Id of commercial proposal to update + * @param int $lineid Id of line to update + * @param array $request_data Commercial proposal line data + * @return Object|false Object with cleaned properties * * @url PUT {id}/lines/{lineid} - * - * @return object */ public function putLine($id, $lineid, $request_data = null) { @@ -548,13 +547,12 @@ class Proposals extends DolibarrApi * Delete a line of given commercial proposal * * - * @param int $id Id of commercial proposal to update - * @param int $lineid Id of line to delete + * @param int $id Id of commercial proposal to update + * @param int $lineid Id of line to delete + * @return Object|false Object with cleaned properties * * @url DELETE {id}/lines/{lineid} * - * @return int - * * @throws RestException 401 * @throws RestException 404 */ @@ -573,9 +571,7 @@ class Proposals extends DolibarrApi throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - // TODO Check the lineid $lineid is a line of ojbect - - $updateRes = $this->propal->deleteline($lineid); + $updateRes = $this->propal->deleteline($lineid, $id); if ($updateRes > 0) { return $this->get($id); } else { @@ -589,11 +585,10 @@ class Proposals extends DolibarrApi * @param int $id Id of commercial proposal to update * @param int $contactid Id of contact to add * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER) + * @return array * * @url POST {id}/contact/{contactid}/{type} * - * @return int - * * @throws RestException 401 * @throws RestException 404 */ @@ -623,20 +618,24 @@ class Proposals extends DolibarrApi throw new RestException(500, 'Error when added the contact'); } - return $this->propal; + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Contact linked to the proposal' + ) + ); } /** * Delete a contact type of given commercial proposal * - * @param int $id Id of commercial proposal to update - * @param int $contactid Row key of the contact in the array contact_ids. - * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER). + * @param int $id Id of commercial proposal to update + * @param int $contactid Row key of the contact in the array contact_ids. + * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER). + * @return Object Object with cleaned properties * * @url DELETE {id}/contact/{contactid}/{type} * - * @return int - * * @throws RestException 401 * @throws RestException 404 * @throws RestException 500 System error @@ -675,10 +674,9 @@ class Proposals extends DolibarrApi /** * Update commercial proposal general fields (won't touch lines of commercial proposal) * - * @param int $id Id of commercial proposal to update - * @param array $request_data Datas - * - * @return int + * @param int $id Id of commercial proposal to update + * @param array $request_data Datas + * @return Object Object with cleaned properties */ public function put($id, $request_data = null) { @@ -722,7 +720,6 @@ class Proposals extends DolibarrApi * Delete commercial proposal * * @param int $id Commercial proposal ID - * * @return array */ public function delete($id) @@ -755,10 +752,9 @@ class Proposals extends DolibarrApi * Set a proposal to draft * * @param int $id Order ID + * @return Object Object with cleaned properties * * @url POST {id}/settodraft - * - * @return array */ public function settodraft($id) { @@ -807,6 +803,7 @@ class Proposals extends DolibarrApi * * @param int $id Commercial proposal ID * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * @return Object Object with cleaned properties * * @url POST {id}/validate * @@ -814,8 +811,6 @@ class Proposals extends DolibarrApi * @throws RestException 401 * @throws RestException 404 * @throws RestException 500 System error - * - * @return array */ public function validate($id, $notrigger = 0) { @@ -860,10 +855,9 @@ class Proposals extends DolibarrApi * @param int $status Must be 2 (accepted) or 3 (refused) {@min 2}{@max 3} * @param string $note_private Add this mention at end of private note * @param int $notrigger Disabled triggers + * @return Object Object with cleaned properties * * @url POST {id}/close - * - * @return array */ public function close($id, $status, $note_private = '', $notrigger = 0) { @@ -905,10 +899,9 @@ class Proposals extends DolibarrApi * Set a commercial proposal billed. Could be also called setbilled * * @param int $id Commercial proposal ID + * @return Object Object with cleaned properties * * @url POST {id}/setinvoiced - * - * @return array */ public function setinvoiced($id) { @@ -949,6 +942,7 @@ class Proposals extends DolibarrApi * * @param array $data Array with data to verify * @return array + * * @throws RestException */ private function _validate($data) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 3dec7256171..c4328328f18 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -301,7 +301,7 @@ 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'=>'$conf->societe->enabled', 'visible'=>-1, 'position'=>23), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'isModEnabled("societe")', '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), @@ -454,6 +454,8 @@ class Propal extends CommonObject $this->lines[] = $line; } + + return 1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -981,9 +983,10 @@ class Propal extends CommonObject * Delete detail line * * @param int $lineid Id of line to delete + * @param int $id Id of object (for a check) * @return int >0 if OK, <0 if KO */ - public function deleteline($lineid) + public function deleteline($lineid, $id = 0) { global $user; @@ -992,9 +995,20 @@ class Propal extends CommonObject $line = new PropaleLigne($this->db); - // For triggers + $line->context = $this->context; + + // Load data $line->fetch($lineid); + if ($id > 0 && $line->fk_propal != $id) { + $this->error = 'ErrorLineIDDoesNotMatchWithObjectID'; + return -1; + } + + // Memorize previous line for triggers + $staticline = clone $line; + $line->oldline = $staticline; + if ($line->delete($user) > 0) { $this->update_price(1); @@ -1491,6 +1505,8 @@ class Propal extends CommonObject $action = ''; $reshook = $hookmanager->executeHooks('createFrom', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { + $this->errors += $hookmanager->errors; + $this->error = $hookmanager->error; $error++; } } @@ -1752,7 +1768,7 @@ class Propal extends CommonObject $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; $sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").","; - $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null").""; + $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); @@ -2108,6 +2124,8 @@ class Propal extends CommonObject return -1 * $error; } } + + return -1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2164,6 +2182,8 @@ class Propal extends CommonObject return -1 * $error; } } + + return -1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2235,6 +2255,8 @@ class Propal extends CommonObject return -1 * $error; } } + + return -1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2417,9 +2439,9 @@ class Propal extends CommonObject $this->db->rollback(); return -1 * $error; } - } else { - return -1; } + + return -1; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2480,6 +2502,8 @@ class Propal extends CommonObject return -1 * $error; } } + + return -1; } @@ -2542,6 +2566,8 @@ class Propal extends CommonObject return -1 * $error; } } + + return -1; } @@ -2828,6 +2854,7 @@ class Propal extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."propal"; $sql .= " SET fk_statut = ".self::STATUS_DRAFT; + $sql .= ", online_sign_ip = NULL , online_sign_name = NULL"; $sql .= " WHERE rowid = ".((int) $this->id); $resql = $this->db->query($sql); @@ -2878,7 +2905,7 @@ class Propal extends CommonObject * @param int $offset For pagination * @param string $sortfield Sort criteria * @param string $sortorder Sort order - * @return int -1 if KO, array with result if OK + * @return array|int -1 if KO, array with result if OK */ public function liste_array($shortlist = 0, $draft = 0, $notcurrentuser = 0, $socid = 0, $limit = 0, $offset = 0, $sortfield = 'p.datep', $sortorder = 'DESC') { @@ -2957,8 +2984,8 @@ class Propal extends CommonObject /** * Returns an array with id and ref of related invoices * - * @param int $id Id propal - * @return array Array of invoices id + * @param int $id Id propal + * @return array|int Array of invoices id */ public function InvoiceArrayList($id) { @@ -3859,18 +3886,18 @@ class Propal extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'propal' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -3889,6 +3916,42 @@ class Propal extends CommonObject return CommonObject::commonReplaceProduct($db, $origin_id, $dest_id, $tables); } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + //$return .= ''; // Can be image + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).''; + if (property_exists($this, 'fk_project')) { + $return .= ' | '.$this->fk_project.''; + } + if (property_exists($this, 'author')) { + $return .= '
'.$this->author.''; + } + if (property_exists($this, 'total_ht')) { + $return .='
'.$langs->trans("AmountHT").' : '.price($this->total_ht).''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } /** @@ -4443,17 +4506,17 @@ class PropaleLigne extends CommonObjectLine $sql .= ", localtax1_type='".$this->db->escape($this->localtax1_type)."'"; $sql .= ", localtax2_type='".$this->db->escape($this->localtax2_type)."'"; $sql .= ", qty='".price2num($this->qty)."'"; - $sql .= ", subprice=".price2num($this->subprice).""; - $sql .= ", remise_percent=".price2num($this->remise_percent).""; - $sql .= ", price=".(float) price2num($this->price).""; // TODO A virer - $sql .= ", remise=".(float) price2num($this->remise).""; // TODO A virer + $sql .= ", subprice=".price2num($this->subprice); + $sql .= ", remise_percent=".price2num($this->remise_percent); + $sql .= ", price=".(float) price2num($this->price); // TODO A virer + $sql .= ", remise=".(float) price2num($this->remise); // TODO A virer $sql .= ", info_bits='".$this->db->escape($this->info_bits)."'"; if (empty($this->skip_update_total)) { - $sql .= ", total_ht=".price2num($this->total_ht).""; - $sql .= ", total_tva=".price2num($this->total_tva).""; - $sql .= ", total_ttc=".price2num($this->total_ttc).""; - $sql .= ", total_localtax1=".price2num($this->total_localtax1).""; - $sql .= ", total_localtax2=".price2num($this->total_localtax2).""; + $sql .= ", total_ht=".price2num($this->total_ht); + $sql .= ", total_tva=".price2num($this->total_tva); + $sql .= ", total_ttc=".price2num($this->total_ttc); + $sql .= ", total_localtax1=".price2num($this->total_localtax1); + $sql .= ", total_localtax2=".price2num($this->total_localtax2); } $sql .= ", fk_product_fournisseur_price=".(!empty($this->fk_fournprice) ? "'".$this->db->escape($this->fk_fournprice)."'" : "null"); $sql .= ", buy_price_ht=".price2num($this->pa_ht); @@ -4469,10 +4532,10 @@ class PropaleLigne extends CommonObjectLine $sql .= ", fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit); // Multicurrency - $sql .= ", multicurrency_subprice=".price2num($this->multicurrency_subprice).""; - $sql .= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; - $sql .= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; - $sql .= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; + $sql .= ", multicurrency_subprice=".price2num($this->multicurrency_subprice); + $sql .= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht); + $sql .= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva); + $sql .= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc); $sql .= " WHERE rowid = ".((int) $this->id); @@ -4519,9 +4582,9 @@ class PropaleLigne extends CommonObjectLine // Mise a jour ligne en base $sql = "UPDATE ".MAIN_DB_PREFIX."propaldet SET"; - $sql .= " total_ht=".price2num($this->total_ht, 'MT').""; - $sql .= ",total_tva=".price2num($this->total_tva, 'MT').""; - $sql .= ",total_ttc=".price2num($this->total_ttc, 'MT').""; + $sql .= " total_ht=".price2num($this->total_ht, 'MT'); + $sql .= ",total_tva=".price2num($this->total_tva, 'MT'); + $sql .= ",total_ttc=".price2num($this->total_ttc, 'MT'); $sql .= " WHERE rowid = ".((int) $this->rowid); dol_syslog("PropaleLigne::update_total", LOG_DEBUG); diff --git a/htdocs/comm/propal/class/propalestats.class.php b/htdocs/comm/propal/class/propalestats.class.php index 81d49bb87ad..ccc514553f8 100644 --- a/htdocs/comm/propal/class/propalestats.class.php +++ b/htdocs/comm/propal/class/propalestats.class.php @@ -93,9 +93,6 @@ class PropaleStats extends Stats } //$this->where.= " AND p.fk_soc = s.rowid AND p.entity = ".$conf->entity; $this->where .= ($this->where ? ' AND ' : '')."p.entity IN (".getEntity('propal').")"; - if (empty($user->rights->societe->client->voir) && !$this->socid) { - $this->where .= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); - } if ($this->socid) { $this->where .= " AND p.fk_soc = ".((int) $this->socid); } @@ -128,7 +125,7 @@ class PropaleStats extends Stats $sql = "SELECT date_format(".$this->field_date.",'%m') as dm, COUNT(*) as nb"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$user->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->field_date." BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -153,7 +150,7 @@ class PropaleStats extends Stats $sql = "SELECT date_format(".$this->field_date.",'%Y') as dm, COUNT(*) as nb, SUM(c.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; @@ -177,7 +174,7 @@ class PropaleStats extends Stats $sql = "SELECT date_format(".$this->field_date.",'%m') as dm, SUM(p.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->field_date." BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -202,7 +199,7 @@ class PropaleStats extends Stats $sql = "SELECT date_format(".$this->field_date.",'%m') as dm, AVG(p.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->field_date." BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -225,7 +222,7 @@ class PropaleStats extends Stats $sql = "SELECT date_format(".$this->field_date.",'%Y') as year, COUNT(*) as nb, SUM(".$this->field.") as total, AVG(".$this->field.") as avg"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; @@ -251,7 +248,7 @@ class PropaleStats extends Stats $sql = "SELECT product.ref, COUNT(product.ref) as nb, SUM(tl.".$this->field_line.") as total, AVG(tl.".$this->field_line.") as avg"; $sql .= " FROM ".$this->from.", ".$this->from_line.", ".MAIN_DB_PREFIX."product as product"; if (empty($user->rights->societe->client->voir) && !$user->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON p.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; diff --git a/htdocs/comm/propal/contact.php b/htdocs/comm/propal/contact.php index 42f3f34f8d4..45f2d175f9a 100644 --- a/htdocs/comm/propal/contact.php +++ b/htdocs/comm/propal/contact.php @@ -149,7 +149,7 @@ if ($object->id > 0) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/comm/propal/document.php b/htdocs/comm/propal/document.php index f1d1d7ef644..f1b6b2221e6 100644 --- a/htdocs/comm/propal/document.php +++ b/htdocs/comm/propal/document.php @@ -147,7 +147,7 @@ if ($object->id > 0) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/comm/propal/info.php b/htdocs/comm/propal/info.php index 986601a91bc..8a1d2afaabd 100644 --- a/htdocs/comm/propal/info.php +++ b/htdocs/comm/propal/info.php @@ -94,7 +94,7 @@ if (isModEnabled('project')) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index cdb7a64a998..cc507041ac6 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -16,6 +16,7 @@ * Copyright (C) 2019-2021 Alexandre Spangaro * Copyright (C) 2021 Anthony Berton * Copyright (C) 2021 Frédéric France + * Copyright (C) 2022 Josep Lluís Amador * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -61,20 +62,23 @@ if (isModEnabled("expedition")) { $langs->loadLangs(array('sendings')); } +// Get Parameters $socid = GETPOST('socid', 'int'); -$action = GETPOST('action', 'aZ09'); +$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'); +$cancel = GETPOST('cancel', 'alpha'); +$toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'proposallist'; +$mode = GETPOST('mode', 'alpha'); -$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 Fields +$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_refcustomer = GETPOST('search_refcustomer', 'alpha'); - $search_refproject = GETPOST('search_refproject', 'alpha'); $search_project = GETPOST('search_project', 'alpha'); @@ -138,15 +142,15 @@ $search_date_signature_endyear = GETPOST('search_date_signature_endyear', 'int') $search_date_signature_start = dol_mktime(0, 0, 0, $search_date_signature_startmonth, $search_date_signature_startday, $search_date_signature_startyear); $search_date_signature_end = dol_mktime(23, 59, 59, $search_date_signature_endmonth, $search_date_signature_endday, $search_date_signature_endyear); - $search_status = GETPOST('search_status', 'alpha'); + $optioncss = GETPOST('optioncss', 'alpha'); $object_statut = GETPOST('search_statut', 'alpha'); $sall = trim((GETPOST('search_all', 'alphanohtml') != '') ?GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); $mesg = (GETPOST("msg") ? GETPOST("msg") : GETPOST("mesg")); - +// Pagination $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); @@ -261,6 +265,7 @@ foreach ($object->fields as $key => $val) { $fieldstosearchall['t.'.$key] = $val['label']; } }*/ + // Definition of array of fields for columns /*$arrayfields = array(); foreach ($object->fields as $key => $val) { @@ -276,9 +281,11 @@ foreach ($object->fields as $key => $val) { ); } }*/ + // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; +// Permissions $permissiontoread = $user->rights->propal->lire; $permissiontoadd = $user->rights->propal->creer; $permissiontodelete = $user->rights->propal->supprimer; @@ -305,7 +312,7 @@ if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massa $massaction = ''; } -$parameters = array('socid'=>$socid); +$parameters = array('socid'=>$socid, 'arrayfields'=>&$arrayfields); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -548,6 +555,9 @@ $companystatic = new Societe($db); $projectstatic = new Project($db); $formcompany = new FormCompany($db); +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $title = $langs->trans('ListOfProposals'); $help_url = 'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos'; llxHeader('', $title, $help_url); @@ -607,7 +617,9 @@ $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user as u ON p.fk_user_author = u.rowid'; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet as pr ON pr.rowid = p.fk_projet"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_availability as ava on (ava.rowid = p.fk_availability)"; // We'll need this table joined to the select in order to filter by sale -if ($search_sale > 0 || (empty($user->rights->societe->client->voir) && !$socid)) { +if ($search_sale == -2) { + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON (sc.fk_soc = p.fk_soc)"; +} elseif ($search_sale > 0 || (empty($user->rights->societe->client->voir) && !$socid)) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } if ($search_user > 0) { @@ -656,11 +668,15 @@ if ($search_project) { if ($search_availability) { $sql .= " AND p.fk_availability IN (".$db->sanitize($db->escape($search_availability)).')'; } -if ($search_societe) { - $sql .= natural_search('s.nom', $search_societe); -} -if ($search_societe_alias) { - $sql .= natural_search('s.name_alias', $search_societe_alias); +if (empty($arrayfields['s.name_alias']['checked']) && $search_societe) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_societe); +} else { + if ($search_societe) { + $sql .= natural_search('s.nom', $search_societe); + } + if ($search_societe_alias) { + $sql .= natural_search('s.name_alias', $search_societe_alias); + } } if ($search_login) { $sql .= natural_search(array("u.login", "u.firstname", "u.lastname"), $search_login); @@ -739,7 +755,9 @@ if ($search_date_delivery_start) { if ($search_date_delivery_end) { $sql .= " AND p.date_livraison <= '".$db->idate($search_date_delivery_end)."'"; } -if ($search_sale > 0) { +if ($search_sale == -2) { + $sql .= " AND sc.fk_user IS NULL"; +} elseif ($search_sale > 0) { $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $search_sale); } if ($search_user > 0) { @@ -852,6 +870,9 @@ if ($resql) { } $param = '&search_status='.urlencode($search_status); + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -1060,6 +1081,9 @@ if ($resql) { if (!empty($socid)) { $url .= '&socid='.$socid; } + $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('NewPropal'), '', 'fa fa-plus-circle', $url, '', $user->rights->propal->creer); // Fields title search @@ -1073,6 +1097,7 @@ if ($resql) { print ''; print ''; print ''; + print ''; print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'propal', 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -1110,7 +1135,7 @@ if ($resql) { $langs->load("commercial"); $moreforfilter .= '
'; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); - $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250 widthcentpercentminusx'); + $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250 widthcentpercentminusx', 1); $moreforfilter .= '
'; } // If the user can view prospects other than his' @@ -1374,8 +1399,8 @@ if ($resql) { } if (!empty($arrayfields['u.login']['checked'])) { // Author - print '
'; - print ''; + print ''; + print ''; print ''; - $formpropal->selectProposalStatus($search_status, 1, 0, 1, 'customer', 'search_statut', 'search_status maxwidth125 onrightofpage'); + print ''; + $formpropal->selectProposalStatus($search_status, 1, 0, 1, 'customer', 'search_statut', 'search_status width100 onrightofpage'); print '
'; + print '
'; + } + // Output Kanban + $userstatic->fetch($obj->fk_user_author); + $objectstatic->author = $userstatic->getNomUrl(1); + $objectstatic->fk_project = $projectstatic->getNomUrl(1); + print $objectstatic->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print '
'; + print '
'; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; - } - print ''; - - print ''; - // Picto + Ref - print ''; - // Warning - $warnornote = ''; - if ($obj->status == Propal::STATUS_VALIDATED && $db->jdate($obj->dfv) < ($now - $conf->propal->cloture->warning_delay)) { - $warnornote .= img_warning($langs->trans("Late")); - } - if ($warnornote) { - print ''; - } - // Other picto tool - print '
'; - print $objectstatic->getNomUrl(1, '', '', 0, 1, (isset($conf->global->PROPAL_LIST_SHOW_NOTES) ? $conf->global->PROPAL_LIST_SHOW_NOTES : 1)); - print ''; - print $warnornote; print ''; - $filename = dol_sanitizeFileName($obj->ref); - $filedir = $conf->propal->multidir_output[$obj->propal_entity].'/'.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 ''; - if ($obj->project_id > 0) { - print $projectstatic->getNomUrl(1); - } - print ''; - if ($obj->project_id > 0) { - print dol_escape_htmltag($projectstatic->title); - } - print ''; - print $companystatic->getNomUrl(1, 'customer'); - print ''; - print $obj->alias; - print ''; - print $obj->town; - print ''; - print $obj->zip; - print '".$obj->state_name."'; - $tmparray = getCountry($obj->fk_pays, 'all'); - print $tmparray['label']; - print ''; - print $typenArray[$obj->typent_code]; - print ''; - print dol_print_date($db->jdate($obj->dp), 'day'); - print "'.dol_print_date($db->jdate($obj->dfv), 'day'); - print ' '.dol_print_date($db->jdate($obj->ddelivery), 'day'); - print ' '.dol_print_date($db->jdate($obj->dsignature), 'day'); - print ' '; - $form->form_availability('', $obj->availability, 'none', 1); - print ''; - $form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1); - print ''; - if ($obj->fk_input_reason > 0) { - print $form->cache_demand_reason[$obj->fk_input_reason]['label']; - } - print ''; - $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent); - print ''; - $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1); - print ''.price($obj->total_ht)."'.price($obj->total_tva)."'.price($obj->total_ttc)."'.price($totalInvoicedHT)."'.price($totalInvoicedTTC)."'.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."'; - $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); - print "'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_tva)."'.price($obj->multicurrency_total_ttc)."'.price($multicurrency_totalInvoicedHT)."'.price($multicurrency_totalInvoicedTTC)."'; - if ($userstatic->id) { - print $userstatic->getNomUrl(-1); - } - print "'; - if ($obj->socid > 0) { - $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); - if ($listsalesrepresentatives < 0) { - dol_print_error($db); + if (!$i) { + $totalarray['nbfield']++; } - $nbofsalesrepresentative = count($listsalesrepresentatives); - if ($nbofsalesrepresentative > 6) { - // We print only number - print $nbofsalesrepresentative; - } elseif ($nbofsalesrepresentative > 0) { - $userstatic = new User($db); - $j = 0; - foreach ($listsalesrepresentatives as $val) { - $userstatic->id = $val['id']; - $userstatic->lastname = $val['lastname']; - $userstatic->firstname = $val['firstname']; - $userstatic->email = $val['email']; - $userstatic->statut = $val['statut']; - $userstatic->entity = $val['entity']; - $userstatic->photo = $val['photo']; - $userstatic->login = $val['login']; - $userstatic->office_phone = $val['office_phone']; - $userstatic->office_fax = $val['office_fax']; - $userstatic->user_mobile = $val['user_mobile']; - $userstatic->job = $val['job']; - $userstatic->gender = $val['gender']; - //print '
': - print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); - $j++; - if ($j < $nbofsalesrepresentative) { - print ' '; + } + + if (!empty($arrayfields['p.ref']['checked'])) { + print '
'; + + print ''; + // Picto + Ref + print ''; + // Warning + $warnornote = ''; + if ($obj->status == Propal::STATUS_VALIDATED && $db->jdate($obj->dfv) < ($now - $conf->propal->cloture->warning_delay)) { + $warnornote .= img_warning($langs->trans("Late")); + } + if ($warnornote) { + print ''; + } + // Other picto tool + print '
'; + print $objectstatic->getNomUrl(1, '', '', 0, 1, (isset($conf->global->PROPAL_LIST_SHOW_NOTES) ? $conf->global->PROPAL_LIST_SHOW_NOTES : 1)); + print ''; + print $warnornote; + print ''; + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->propal->multidir_output[$obj->propal_entity].'/'.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 ''; + if ($obj->project_id > 0) { + print $projectstatic->getNomUrl(1); + } + print ''; + if ($obj->project_id > 0) { + print dol_escape_htmltag($projectstatic->title); + } + print ''; + print $companystatic->getNomUrl(1, 'customer', 0, 0, 1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); + print ''; + print $obj->alias; + print ''; + print $obj->town; + print ''; + print $obj->zip; + print '".$obj->state_name."'; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + print $typenArray[$obj->typent_code]; + print ''; + print dol_print_date($db->jdate($obj->dp), 'day'); + print "'.dol_print_date($db->jdate($obj->dfv), 'day'); + print ' '.dol_print_date($db->jdate($obj->ddelivery), 'day'); + print ' '.dol_print_date($db->jdate($obj->dsignature), 'day'); + print ' '; + $form->form_availability('', $obj->availability, 'none', 1); + print ''; + $form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1); + print ''; + if ($obj->fk_input_reason > 0) { + print $form->cache_demand_reason[$obj->fk_input_reason]['label']; + } + print ''; + $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent); + print ''; + $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1); + print ''.price($obj->total_ht)."'.price($obj->total_tva)."'.price($obj->total_ttc)."'.price($totalInvoicedHT)."'.price($totalInvoicedTTC)."'.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."'; + $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); + print "'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_tva)."'.price($obj->multicurrency_total_ttc)."'.price($multicurrency_totalInvoicedHT)."'.price($multicurrency_totalInvoicedTTC)."'; + if ($userstatic->id) { + print $userstatic->getNomUrl(-1); + } + print "'; + if ($obj->socid > 0) { + $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); + if ($listsalesrepresentatives < 0) { + dol_print_error($db); + } + $nbofsalesrepresentative = count($listsalesrepresentatives); + if ($nbofsalesrepresentative > 6) { + // We print only number + print $nbofsalesrepresentative; + } elseif ($nbofsalesrepresentative > 0) { + $userstatic = new User($db); + $j = 0; + foreach ($listsalesrepresentatives as $val) { + $userstatic->id = $val['id']; + $userstatic->lastname = $val['lastname']; + $userstatic->firstname = $val['firstname']; + $userstatic->email = $val['email']; + $userstatic->statut = $val['statut']; + $userstatic->entity = $val['entity']; + $userstatic->photo = $val['photo']; + $userstatic->login = $val['login']; + $userstatic->office_phone = $val['office_phone']; + $userstatic->office_fax = $val['office_fax']; + $userstatic->user_mobile = $val['user_mobile']; + $userstatic->job = $val['job']; + $userstatic->gender = $val['gender']; + //print '
': + print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); + $j++; + if ($j < $nbofsalesrepresentative) { + print ' '; + } + //print '
'; } - //print ''; + } + //else print $langs->trans("NoSalesRepresentativeAffected"); + } else { + print ' '; + } + print '
'.price($marginInfo['pa_total']).''.price($marginInfo['total_margin']).''.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').''.price($marginInfo['pa_total']).''.price($marginInfo['total_margin']).''.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''; - print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser'); - print ''; - print dol_string_nohtmltag($obj->note_public); - print ''; - print dol_string_nohtmltag($obj->note_private); - print ''.$objectstatic->getLibStatut(5).''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + // Date modification + if (!empty($arrayfields['p.tms']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser'); + print ''; + print dol_string_nohtmltag($obj->note_public); + print ''; + print dol_string_nohtmltag($obj->note_private); + print ''.$objectstatic->getLibStatut(5).''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
'.$langs->trans("Proposal"); + print ''.$langs->trans("Proposal"); if (!empty($showImportButton) && $conf->global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) { $url = DOL_URL_ROOT.'/comm/propal/card.php?id='.$objectlink->id; print ' '; } print ''.$objectlink->getNomUrl(1).''.$objectlink->getNomUrl(1).''.$objectlink->ref_client.''.dol_print_date($objectlink->date, 'day').''; diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 786fb1a2ad2..c37be999366 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -475,6 +475,7 @@ if (empty($reshook)) { // Note that $action and $object may be modified by hook $reshook = $hookmanager->executeHooks('createFrom', $parameters, $object, $action); if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); $error++; } } else { @@ -676,13 +677,28 @@ if (empty($reshook)) { $prod_entry_mode = GETPOST('prod_entry_mode', 'aZ09'); if ($prod_entry_mode == 'free') { $idprod = 0; - $tva_tx = (GETPOST('tva_tx', 'alpha') ? price2num(preg_replace('/\s*\(.*\)/', '', GETPOST('tva_tx', 'alpha'))) : 0); } else { $idprod = GETPOST('idprod', 'int'); - $tva_tx = ''; + } + + $tva_tx = GETPOST('tva_tx', 'alpha'); + + // Prepare a price equivalent for minimum price check + $pu_equivalent = $pu_ht; + $pu_equivalent_ttc = $pu_ttc; + $currency_tx = $object->multicurrency_tx; + + // Check if we have a foreing currency + // If so, we update the pu_equiv as the equivalent price in base currency + if ($pu_ht == '' && $pu_ht_devise != '' && $currency_tx != '') { + $pu_equivalent = $pu_ht_devise * $currency_tx; + } + if ($pu_ttc == '' && $pu_ttc_devise != '' && $currency_tx != '') { + $pu_equivalent_ttc = $pu_ttc_devise * $currency_tx; } $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS', 2); + $remise_percent = (GETPOSTISSET('remise_percent'.$predef) ? price2num(GETPOST('remise_percent'.$predef, 'alpha'), '', 2) : 0); if (empty($remise_percent)) { $remise_percent = 0; @@ -746,7 +762,6 @@ if (empty($reshook)) { // Ecrase $pu par celui du produit // Ecrase $desc par celui du produit - // Ecrase $tva_tx par celui du produit // Ecrase $base_price_type par celui du produit if (!empty($idprod) && $idprod > 0) { $prod = new Product($db); @@ -755,11 +770,11 @@ if (empty($reshook)) { $label = ((GETPOST('product_label') && GETPOST('product_label') != $prod->label) ? GETPOST('product_label') : ''); // Update if prices fields are defined - $tva_tx = get_default_tva($mysoc, $object->thirdparty, $prod->id); + /*$tva_tx = get_default_tva($mysoc, $object->thirdparty, $prod->id); $tva_npr = get_default_npr($mysoc, $object->thirdparty, $prod->id); if (empty($tva_tx)) { $tva_npr = 0; - } + }*/ $pu_ht = $prod->price; $pu_ttc = $prod->price_ttc; @@ -985,11 +1000,11 @@ if (empty($reshook)) { $desc = dol_htmlcleanlastbr($desc); if ($usermustrespectpricemin) { - if ($pu_ht && $price_min && ((price2num($pu_ht) * (1 - $remise_percent / 100)) < price2num($price_min))) { + if ($pu_equivalent && $price_min && ((price2num($pu_equivalent) * (1 - $remise_percent / 100)) < price2num($price_min))) { $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); setEventMessages($mesg, null, 'errors'); $error++; - } elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { + } elseif ($pu_equivalent_ttc && $price_min_ttc && ((price2num($pu_equivalent_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); setEventMessages($mesg, null, 'errors'); $error++; @@ -1075,6 +1090,20 @@ if (empty($reshook)) { $qty = price2num(GETPOST('qty', 'alpha'), 'MS'); + // Prepare a price equivalent for minimum price check + $pu_equivalent = $pu_ht; + $pu_equivalent_ttc = $pu_ttc; + $currency_tx = $object->multicurrency_tx; + + // Check if we have a foreing currency + // If so, we update the pu_equiv as the equivalent price in base currency + if ($pu_ht == '' && $pu_ht_devise != '' && $currency_tx != '') { + $pu_equivalent = $pu_ht_devise * $currency_tx; + } + if ($pu_ttc == '' && $pu_ttc_devise != '' && $currency_tx != '') { + $pu_equivalent_ttc = $pu_ttc_devise * $currency_tx; + } + // Define info_bits $info_bits = 0; if (preg_match('/\*/', $vat_rate)) { @@ -1106,7 +1135,7 @@ if (empty($reshook)) { $special_code = 3; } - $remise_percent = price2num(GETPOST('remise_percent'), '', 2); + $remise_percent = GETPOST('remise_percent') != '' ? price2num(GETPOST('remise_percent'), '', 2) : 0; // Check minimum price $productid = GETPOST('productid', 'int'); @@ -1128,12 +1157,12 @@ if (empty($reshook)) { $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); if ($usermustrespectpricemin) { - if ($pu_ht && $price_min && ((price2num($pu_ht) * (1 - $remise_percent / 100)) < price2num($price_min))) { + if ($pu_equivalent && $price_min && ((price2num($pu_equivalent) * (1 - $remise_percent / 100)) < price2num($price_min))) { $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); setEventMessages($mesg, null, 'errors'); $error++; $action = 'editline'; - } elseif ($pu_ttc && $price_min_ttc && ((price2num($pu_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { + } elseif ($pu_equivalent_ttc && $price_min_ttc && ((price2num($pu_equivalent_ttc) * (1 - $remise_percent / 100)) < price2num($price_min_ttc))) { $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min_ttc, 'MU'), 0, $langs, 0, 0, -1, $conf->currency)); setEventMessages($mesg, null, 'errors'); $error++; @@ -1833,7 +1862,8 @@ if ($action == 'create' && $usercancreate) { // Shipping Method if (isModEnabled('expedition')) { print '
'.$langs->trans('SendingMethod').''; - print img_picto('', 'object_dolly', 'class="pictofixedwidth"').$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 '
'; $incoterm_id = GETPOST('incoterm_id'); $incoterm_location = GETPOST('location_incoterms'); @@ -1898,7 +1928,7 @@ if ($action == 'create' && $usercancreate) { if ($soc->fetch_optionals() > 0) { $object->array_options = array_merge($object->array_options, $soc->array_options); } - }; + } print $object->showOptionals($extrafields, 'create', $parameters); } @@ -2339,7 +2369,7 @@ if ($action == 'create' && $usercancreate) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -2736,7 +2766,7 @@ if ($action == 'create' && $usercancreate) { // Show object lines if (!empty($object->lines)) { - $ret = $object->printObjectLines($action, $mysoc, $soc, $lineid, 1); + $object->printObjectLines($action, $mysoc, $soc, $lineid, 1); } $numlines = count($object->lines); @@ -2840,7 +2870,7 @@ if ($action == 'create' && $usercancreate) { // Ship $numshipping = 0; if (isModEnabled('expedition')) { - $numshipping = $object->nb_expedition(); + $numshipping = $object->countNbOfShipments(); if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && ($object->getNbOfProductsLines() > 0 || !empty($conf->global->STOCK_SUPPORTS_SERVICES))) { if ((isModEnabled('expedition_bon') && $user->rights->expedition->creer) || ($conf->delivery_note->enabled && $user->rights->expedition->delivery->creer)) { diff --git a/htdocs/commande/class/api_orders.class.php b/htdocs/commande/class/api_orders.class.php index 2c916abda9a..1a879173684 100644 --- a/htdocs/commande/class/api_orders.class.php +++ b/htdocs/commande/class/api_orders.class.php @@ -28,7 +28,6 @@ require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; */ class Orders extends DolibarrApi { - /** * @var array $FIELDS Mandatory fields, checked when create and update object */ @@ -109,11 +108,11 @@ class Orders extends DolibarrApi * * Return an array with order informations * - * @param int $id ID of order + * @param int $id ID of order * @param string $ref Ref of object * @param string $ref_ext External reference of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id - * @return array|mixed data without useless information + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id + * @return Object Object with cleaned properties * * @throws RestException */ @@ -299,7 +298,7 @@ class Orders extends DolibarrApi * * @url GET {id}/lines * - * @return int + * @return array */ public function getLines($id) { @@ -393,13 +392,12 @@ class Orders extends DolibarrApi /** * Update a line to given order * - * @param int $id Id of order to update - * @param int $lineid Id of line to update - * @param array $request_data OrderLine data + * @param int $id Id of order to update + * @param int $lineid Id of line to update + * @param array $request_data OrderLine data + * @return Object|false Object with cleaned properties * * @url PUT {id}/lines/{lineid} - * - * @return array|bool */ public function putLine($id, $lineid, $request_data = null) { @@ -458,16 +456,14 @@ class Orders extends DolibarrApi } /** - * Delete a line to given order + * Delete a line of a given order * - * - * @param int $id Id of order to update - * @param int $lineid Id of line to delete + * @param int $id Id of order to update + * @param int $lineid Id of line to delete + * @return Object Object with cleaned properties * * @url DELETE {id}/lines/{lineid} * - * @return int - * * @throws RestException 401 * @throws RestException 404 */ @@ -486,9 +482,7 @@ class Orders extends DolibarrApi throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - // TODO Check the lineid $lineid is a line of ojbect - - $updateRes = $this->commande->deleteline(DolibarrApiAccess::$user, $lineid); + $updateRes = $this->commande->deleteline(DolibarrApiAccess::$user, $lineid, $id); if ($updateRes > 0) { return $this->get($id); } else { @@ -501,13 +495,12 @@ class Orders extends DolibarrApi * * Return an array with contact informations * - * @param int $id ID of order - * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER) + * @param int $id ID of order + * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER) + * @return Object Object with cleaned properties * * @url GET {id}/contacts * - * @return array data without useless information - * * @throws RestException */ public function getContacts($id, $type = '') @@ -536,11 +529,10 @@ class Orders extends DolibarrApi * @param int $id Id of order to update * @param int $contactid Id of contact to add * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER) + * @return array * * @url POST {id}/contact/{contactid}/{type} * - * @return int - * * @throws RestException 401 * @throws RestException 404 */ @@ -586,7 +578,7 @@ class Orders extends DolibarrApi * * @url DELETE {id}/contact/{contactid}/{type} * - * @return int + * @return array * * @throws RestException 401 * @throws RestException 404 @@ -630,10 +622,9 @@ class Orders extends DolibarrApi /** * Update order general fields (won't touch lines of order) * - * @param int $id Id of order to update - * @param array $request_data Datas - * - * @return int + * @param int $id Id of order to update + * @param array $request_data Datas + * @return Object Object with cleaned properties */ public function put($id, $request_data = null) { @@ -777,7 +768,6 @@ class Orders extends DolibarrApi */ public function reopen($id) { - if (!DolibarrApiAccess::$user->rights->commande->creer) { throw new RestException(401); } @@ -802,12 +792,11 @@ class Orders extends DolibarrApi /** * Classify the order as invoiced. Could be also called setbilled * - * @param int $id Id of the order + * @param int $id Id of the order + * @return Object Object with cleaned properties * * @url POST {id}/setinvoiced * - * @return int - * * @throws RestException 400 * @throws RestException 401 * @throws RestException 404 @@ -851,10 +840,9 @@ class Orders extends DolibarrApi * * @param int $id Order ID * @param int $notrigger Disabled triggers + * @return Object Object with cleaned properties * * @url POST {id}/close - * - * @return int */ public function close($id, $notrigger = 0) { @@ -897,10 +885,9 @@ class Orders extends DolibarrApi * * @param int $id Order ID * @param int $idwarehouse Warehouse ID to use for stock change (Used only if option STOCK_CALCULATE_ON_VALIDATE_ORDER is on) + * @return Object Object with cleaned properties * * @url POST {id}/settodraft - * - * @return array */ public function settodraft($id, $idwarehouse = -1) { @@ -942,12 +929,11 @@ class Orders extends DolibarrApi /** * Create an order using an existing proposal. * - * * @param int $proposalid Id of the proposal + * @return Object Object with cleaned properties * * @url POST /createfromproposal/{proposalid} * - * @return int * @throws RestException 400 * @throws RestException 401 * @throws RestException 404 diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 73988594e6f..2a462f77bc4 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -11,7 +11,7 @@ * Copyright (C) 2014-2015 Marcos García * Copyright (C) 2018 Nicolas ZABOURI * Copyright (C) 2016-2022 Ferran Marcet - * Copyright (C) 2021-2022 Frédéric France + * Copyright (C) 2021-2023 Frédéric France * Copyright (C) 2022 Gauthier VERDOL * * This program is free software; you can redistribute it and/or modify @@ -236,6 +236,11 @@ class Commande extends CommonOrder */ public $user_valid; + /** + * @var OrderLine one line of an order + */ + public $line; + /** * @var OrderLine[] */ @@ -306,7 +311,7 @@ class Commande extends CommonOrder 'ref' =>array('type'=>'varchar(30)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'showoncombobox'=>1, 'position'=>25), 'ref_ext' =>array('type'=>'varchar(255)', 'label'=>'RefExt', 'enabled'=>1, 'visible'=>0, 'position'=>26), 'ref_client' =>array('type'=>'varchar(255)', 'label'=>'RefCustomer', 'enabled'=>1, 'visible'=>-1, 'position'=>28), - 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>20), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'isModEnabled("societe")', '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), @@ -1173,6 +1178,8 @@ class Commande extends CommonOrder return -1; } } + + return 0; } else { dol_print_error($this->db); $this->db->rollback(); @@ -1272,6 +1279,8 @@ class Commande extends CommonOrder $action = ''; $reshook = $hookmanager->executeHooks('createFrom', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { + $this->errors += $hookmanager->errors; + $this->error = $hookmanager->error; $error++; } } @@ -1301,6 +1310,7 @@ class Commande extends CommonOrder { global $conf, $hookmanager; + dol_include_once('/multicurrency/class/multicurrency.class.php'); dol_include_once('/core/class/extrafields.class.php'); $error = 0; @@ -1376,6 +1386,29 @@ class Commande extends CommonOrder $this->origin = $object->element; $this->origin_id = $object->id; + // Multicurrency (test on $this->multicurrency_tx because we should take the default rate only if not using origin rate) + if (!empty($conf->multicurrency->enabled)) { + if (!empty($object->multicurrency_code)) { + $this->multicurrency_code = $object->multicurrency_code; + } + if (!empty($conf->global->MULTICURRENCY_USE_ORIGIN_TX) && !empty($object->multicurrency_tx)) { + $this->multicurrency_tx = $object->multicurrency_tx; + } + + if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) { + $tmparray = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $this->date_commande); + $this->fk_multicurrency = $tmparray[0]; + $this->multicurrency_tx = $tmparray[1]; + } else { + $this->fk_multicurrency = MultiCurrency::getIdFromCode($this->db, $this->multicurrency_code); + } + if (empty($this->fk_multicurrency)) { + $this->multicurrency_code = $conf->currency; + $this->fk_multicurrency = 0; + $this->multicurrency_tx = 1; + } + } + // get extrafields from original line $object->fetch_optionals(); @@ -1403,6 +1436,8 @@ class Commande extends CommonOrder $action = ''; $reshook = $hookmanager->executeHooks('createFrom', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { + $this->errors += $hookmanager->errors; + $this->error = $hookmanager->error; $error++; } @@ -2283,17 +2318,13 @@ class Commande extends CommonOrder } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Returns a array with expeditions lines number + * Returns an array with expeditions lines number * * @return int Nb of shipments - * - * TODO deprecate, move to Shipping class */ - public function nb_expedition() + public function countNbOfShipments() { - // phpcs:enable $sql = 'SELECT count(*)'; $sql .= ' FROM '.MAIN_DB_PREFIX.'expedition as e'; $sql .= ', '.MAIN_DB_PREFIX.'element_element as el'; @@ -2309,6 +2340,8 @@ class Commande extends CommonOrder } else { dol_print_error($this->db); } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -2355,58 +2388,45 @@ class Commande extends CommonOrder * * @param User $user User object * @param int $lineid Id of line to delete + * @param int $id Id of object (for a check) * @return int >0 if OK, 0 if nothing to do, <0 if KO */ - public function deleteline($user = null, $lineid = 0) + public function deleteline($user = null, $lineid = 0, $id = 0) { if ($this->statut == self::STATUS_DRAFT) { $this->db->begin(); - $sql = "SELECT fk_product, qty"; - $sql .= " FROM ".MAIN_DB_PREFIX."commandedet"; - $sql .= " WHERE rowid = ".((int) $lineid); + // Delete line + $line = new OrderLine($this->db); - $result = $this->db->query($sql); - if ($result) { - $obj = $this->db->fetch_object($result); + $line->context = $this->context; - if ($obj) { - $product = new Product($this->db); - $product->id = $obj->fk_product; + // Load data + $line->fetch($lineid); - // Delete line - $line = new OrderLine($this->db); + if ($id > 0 && $line->fk_commande != $id) { + $this->error = 'ErrorLineIDDoesNotMatchWithObjectID'; + return -1; + } - // For triggers - $line->fetch($lineid); + // Memorize previous line for triggers + $staticline = clone $line; + $line->oldline = $staticline; - // Memorize previous line for triggers - $staticline = clone $line; - $line->oldline = $staticline; + if ($line->delete($user) > 0) { + $result = $this->update_price(1); - if ($line->delete($user) > 0) { - $result = $this->update_price(1); - - if ($result > 0) { - $this->db->commit(); - return 1; - } else { - $this->db->rollback(); - $this->error = $this->db->lasterror(); - return -1; - } - } else { - $this->db->rollback(); - $this->error = $line->error; - return -1; - } + if ($result > 0) { + $this->db->commit(); + return 1; } else { $this->db->rollback(); - return 0; + $this->error = $this->db->lasterror(); + return -1; } } else { $this->db->rollback(); - $this->error = $this->db->lasterror(); + $this->error = $line->error; return -1; } } else { @@ -2490,6 +2510,8 @@ class Commande extends CommonOrder return -1 * $error; } } + + return 0; } @@ -2554,6 +2576,8 @@ class Commande extends CommonOrder return -1 * $error; } } + + return 0; } @@ -3352,7 +3376,7 @@ class Commande extends CommonOrder $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; $sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").","; - $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null").""; + $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null"); $sql .= " WHERE rowid=".((int) $this->id); @@ -3422,7 +3446,7 @@ class Commande extends CommonOrder } // Test we can delete - if ($this->nb_expedition() != 0) { + if ($this->countNbOfShipments() != 0) { $this->errors[] = $langs->trans('SomeShipmentExists'); $error++; } @@ -4043,18 +4067,18 @@ class Commande extends CommonOrder /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'commande' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -4331,16 +4355,6 @@ class OrderLine extends CommonOrderLine dol_syslog("OrderLine::delete", LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { - // Remove extrafields - if (!$error) { - $this->id = $this->rowid; - $result = $this->deleteExtraFields(); - if ($result < 0) { - $error++; - dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR); - } - } - if (!$error && !$notrigger) { // Call trigger $result = $this->call_trigger('LINEORDER_DELETE', $user); @@ -4350,6 +4364,15 @@ class OrderLine extends CommonOrderLine // End call triggers } + // Remove extrafields + if (!$error) { + $result = $this->deleteExtraFields(); + if ($result < 0) { + $error++; + dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR); + } + } + if (!$error) { $this->db->commit(); return 1; @@ -4583,6 +4606,9 @@ class OrderLine extends CommonOrderLine if (empty($this->remise_percent)) { $this->remise_percent = 0; } + if (empty($this->remise)) { + $this->remise = 0; + } if (empty($this->info_bits)) { $this->info_bits = 0; } @@ -4626,14 +4652,14 @@ class OrderLine extends CommonOrderLine $sql .= " , localtax2_type='".$this->db->escape($this->localtax2_type)."'"; $sql .= " , qty=".price2num($this->qty); $sql .= " , ref_ext='".$this->db->escape($this->ref_ext)."'"; - $sql .= " , subprice=".price2num($this->subprice).""; - $sql .= " , remise_percent=".price2num($this->remise_percent).""; - $sql .= " , price=".price2num($this->price).""; // TODO A virer - $sql .= " , remise=".price2num($this->remise).""; // TODO A virer + $sql .= " , subprice=".price2num($this->subprice); + $sql .= " , remise_percent=".price2num($this->remise_percent); + $sql .= " , price=".price2num($this->price); // TODO A virer + $sql .= " , remise=".price2num($this->remise); // TODO A virer if (empty($this->skip_update_total)) { - $sql .= " , total_ht=".price2num($this->total_ht).""; - $sql .= " , total_tva=".price2num($this->total_tva).""; - $sql .= " , total_ttc=".price2num($this->total_ttc).""; + $sql .= " , total_ht=".price2num($this->total_ht); + $sql .= " , total_tva=".price2num($this->total_tva); + $sql .= " , total_ttc=".price2num($this->total_ttc); $sql .= " , total_localtax1=".price2num($this->total_localtax1); $sql .= " , total_localtax2=".price2num($this->total_localtax2); } @@ -4651,10 +4677,10 @@ class OrderLine extends CommonOrderLine $sql .= " , fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit); // Multicurrency - $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice).""; - $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; - $sql .= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; - $sql .= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; + $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice); + $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht); + $sql .= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva); + $sql .= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc); $sql .= " WHERE rowid = ".((int) $this->rowid); diff --git a/htdocs/commande/class/commandestats.class.php b/htdocs/commande/class/commandestats.class.php index 5f13cf780f4..3070f82c98d 100644 --- a/htdocs/commande/class/commandestats.class.php +++ b/htdocs/commande/class/commandestats.class.php @@ -93,9 +93,6 @@ class CommandeStats extends Stats //$this->where.= " AND c.fk_soc = s.rowid AND c.entity = ".$conf->entity; $this->where .= ($this->where ? ' AND ' : '').'c.entity IN ('.getEntity('commande').')'; - if (empty($user->rights->societe->client->voir) && !$this->socid) { - $this->where .= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); - } if ($this->socid) { $this->where .= " AND c.fk_soc = ".((int) $this->socid); } @@ -127,7 +124,7 @@ class CommandeStats extends Stats $sql = "SELECT date_format(c.date_commande,'%m') as dm, COUNT(*) as nb"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE c.date_commande BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -152,7 +149,7 @@ class CommandeStats extends Stats $sql = "SELECT date_format(c.date_commande,'%Y') as dm, COUNT(*) as nb, SUM(c.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; @@ -176,7 +173,7 @@ class CommandeStats extends Stats $sql = "SELECT date_format(c.date_commande,'%m') as dm, SUM(c.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE c.date_commande BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -201,7 +198,7 @@ class CommandeStats extends Stats $sql = "SELECT date_format(c.date_commande,'%m') as dm, AVG(c.".$this->field.")"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE c.date_commande BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -224,7 +221,7 @@ class CommandeStats extends Stats $sql = "SELECT date_format(c.date_commande,'%Y') as year, COUNT(*) as nb, SUM(c.".$this->field.") as total, AVG(".$this->field.") as avg"; $sql .= " FROM ".$this->from; if (empty($user->rights->societe->client->voir) && !$this->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; @@ -248,7 +245,7 @@ class CommandeStats extends Stats $sql = "SELECT product.ref, COUNT(product.ref) as nb, SUM(tl.".$this->field_line.") as total, AVG(tl.".$this->field_line.") as avg"; $sql .= " FROM ".$this->from.", ".$this->from_line.", ".MAIN_DB_PREFIX."product as product"; if (empty($user->rights->societe->client->voir) && !$user->socid) { - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } $sql .= $this->join; $sql .= " WHERE ".$this->where; diff --git a/htdocs/commande/contact.php b/htdocs/commande/contact.php index 04c16e68aa0..a6202d5d3bf 100644 --- a/htdocs/commande/contact.php +++ b/htdocs/commande/contact.php @@ -143,7 +143,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/commande/document.php b/htdocs/commande/document.php index 0c35c3489f7..f16ad2ad3d3 100644 --- a/htdocs/commande/document.php +++ b/htdocs/commande/document.php @@ -140,7 +140,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/commande/info.php b/htdocs/commande/info.php index 0acc5b793aa..2abe32aea71 100644 --- a/htdocs/commande/info.php +++ b/htdocs/commande/info.php @@ -94,7 +94,7 @@ if (isModEnabled('project')) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index b4c9fd6772f..119d88e7cf4 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -9,7 +9,7 @@ * Copyright (C) 2015-2018 Frédéric France * Copyright (C) 2015 Marcos García * Copyright (C) 2015 Jean-François Ferry - * Copyright (C) 2016-2021 Ferran Marcet + * Copyright (C) 2016-2023 Ferran Marcet * Copyright (C) 2018 Charlene Benke * Copyright (C) 2021 Anthony Berton * @@ -60,6 +60,7 @@ $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'orderlist'; +$mode = GETPOST('mode', 'alpha'); // Search Parameters $search_datecloture_start = GETPOST('search_datecloture_start', 'int'); @@ -201,10 +202,10 @@ $arrayfields = array( 'c.multicurrency_total_ttc'=>array('label'=>'MulticurrencyAmountTTC', 'checked'=>0, 'enabled'=>(!isModEnabled("multicurrency") ? 0 : 1), 'position'=>110), 'u.login'=>array('label'=>"Author", 'checked'=>1, 'position'=>115), 'sale_representative'=>array('label'=>"SaleRepresentativesOfThirdParty", 'checked'=>0, 'position'=>116), - 'total_pa' => array('label' => (getDolGlobalString('MARGIN_TYPE') == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous ? 0 : 1)), - 'total_margin' => array('label' => 'Margin', 'checked' => 0, 'position' => 301, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous ? 0 : 1)), - 'total_margin_rate' => array('label' => 'MarginRate', 'checked' => 0, 'position' => 302, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARGIN_RATES) ? 0 : 1)), - 'total_mark_rate' => array('label' => 'MarkRate', 'checked' => 0, 'position' => 303, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARK_RATES) ? 0 : 1)), + 'total_pa' => array('label' => (getDolGlobalString('MARGIN_TYPE') == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (!isModEnabled('margin') || !$user->hasRight("margins", "liretous") ? 0 : 1)), + 'total_margin' => array('label' => 'Margin', 'checked' => 0, 'position' => 301, 'enabled' => (!isModEnabled('margin') || !$user->hasRight("margins", "liretous") ? 0 : 1)), + 'total_margin_rate' => array('label' => 'MarginRate', 'checked' => 0, 'position' => 302, 'enabled' => (!isModEnabled('margin') || !$user->hasRight("margins", "liretous") || empty($conf->global->DISPLAY_MARGIN_RATES) ? 0 : 1)), + 'total_mark_rate' => array('label' => 'MarkRate', 'checked' => 0, 'position' => 303, 'enabled' => (!isModEnabled('margin') || !$user->hasRight("margins", "liretous") || empty($conf->global->DISPLAY_MARK_RATES) ? 0 : 1)), 'c.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>120), 'c.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>125), 'c.date_cloture'=>array('label'=>"DateClosing", 'checked'=>0, 'position'=>130), @@ -235,7 +236,7 @@ if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massa $massaction = ''; } -$parameters = array('socid'=>$socid); +$parameters = array('socid'=>$socid, 'arrayfields'=>&$arrayfields); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -298,19 +299,19 @@ if (empty($reshook)) { // Mass actions $objectclass = 'Commande'; $objectlabel = 'Orders'; - $permissiontoread = $user->rights->commande->lire; - $permissiontoadd = $user->rights->commande->creer; - $permissiontodelete = $user->rights->commande->supprimer; + $permissiontoread = $user->hasRight("commande", "lire"); + $permissiontoadd = $user->hasRight("commande", "creer"); + $permissiontodelete = $user->hasRight("commande", "supprimer"); if (!empty($conf->global->MAIN_USE_ADVANCED_PERMS)) { - $permissiontovalidate = $user->rights->commande->order_advance->validate; - $permissiontoclose = $user->rights->commande->order_advance->close; - $permissiontocancel = $user->rights->commande->order_advance->annuler; - $permissiontosendbymail = $user->rights->commande->order_advance->send; + $permissiontovalidate = $user->hasRight("commande", "order_advance", "validate"); + $permissiontoclose = $user->hasRight("commande", "order_advance", "close"); + $permissiontocancel = $user->hasRight("commande", "order_advance", "annuler"); + $permissiontosendbymail = $user->hasRight("commande", "order_advance", "send"); } else { - $permissiontovalidate = $user->rights->commande->creer; - $permissiontoclose = $user->rights->commande->creer; - $permissiontocancel = $user->rights->commande->creer; - $permissiontosendbymail = $user->rights->commande->creer; + $permissiontovalidate = $user->hasRight("commande", "creer"); + $permissiontoclose = $user->hasRight("commande", "creer"); + $permissiontocancel = $user->hasRight("commande", "creer"); + $permissiontosendbymail = $user->hasRight("commande", "creer"); } $uploaddir = $conf->commande->multidir_output[$conf->entity]; $triggersendname = 'ORDER_SENTBYMAIL'; @@ -413,7 +414,7 @@ if (empty($reshook)) { $desc = dol_concatdesc($desc, $langs->trans("Order").' '.$cmd->ref.' - '.dol_print_date($cmd->date, 'day')); } - if ($lines[$i]->subprice < 0) { + if ($lines[$i]->subprice < 0 && empty($conf->global->INVOICE_KEEP_DISCOUNT_LINES_AS_IN_ORIGIN)) { // Negative line, we create a discount line $discount = new DiscountAbsolute($db); $discount->fk_soc = $objecttmp->socid; @@ -578,6 +579,9 @@ if (empty($reshook)) { // Make a redirect to avoid to bill twice if we make a refresh or back $param = ''; + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -679,14 +683,14 @@ if ($action == 'validate' && $permissiontoadd) { $idwarehouse = 0; } if ($objecttmp->valid($user, $idwarehouse)) { - setEventMessage($langs->trans('hasBeenValidated', $objecttmp->ref), 'mesgs'); + setEventMessages($langs->trans('hasBeenValidated', $objecttmp->ref), null, 'mesgs'); } else { - setEventMessage($objecttmp->error, $objecttmp->errors, 'errors'); + setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); $error++; } } else { $langs->load("errors"); - setEventMessage($langs->trans('ErrorIsNotADraft', $objecttmp->ref), 'errors'); + setEventMessages($langs->trans('ErrorIsNotADraft', $objecttmp->ref), null, 'errors'); $error++; } } else { @@ -710,14 +714,14 @@ if ($action == 'shipped' && $permissiontoadd) { if ($objecttmp->fetch($checked)) { if ($objecttmp->statut == 1 || $objecttmp->statut == 2) { if ($objecttmp->cloture($user)) { - setEventMessage($langs->trans('PassedInClosedStatus', $objecttmp->ref), 'mesgs'); + setEventMessages($langs->trans('PassedInClosedStatus', $objecttmp->ref), null, 'mesgs'); } else { - setEventMessage($langs->trans('CantBeClosed'), 'errors'); + setEventMessages($langs->trans('CantBeClosed'), null, 'errors'); $error++; } } else { $langs->load("errors"); - setEventMessage($langs->trans('ErrorIsNotADraft', $objecttmp->ref), 'errors'); + setEventMessages($langs->trans('ErrorIsNotADraft', $objecttmp->ref), null, 'errors'); $error++; } } else { @@ -789,6 +793,9 @@ $company_url_list = array(); $formcompany = new FormCompany($db); $projectstatic = new Project($db); +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $title = $langs->trans("Orders"); $help_url = "EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes"; @@ -935,11 +942,15 @@ if ($search_country) { if ($search_type_thirdparty && $search_type_thirdparty != '-1') { $sql .= " AND s.fk_typent IN (".$db->sanitize($search_type_thirdparty).')'; } -if ($search_company) { - $sql .= natural_search('s.nom', $search_company); -} -if ($search_company_alias) { - $sql .= natural_search('s.name_alias', $search_company_alias); +if (empty($arrayfields['s.name_alias']['checked']) && $search_company) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_company); +} else { + if ($search_company) { + $sql .= natural_search('s.nom', $search_company); + } + if ($search_company_alias) { + $sql .= natural_search('s.name_alias', $search_company_alias); + } } if ($search_parent_name) { $sql .= natural_search('s2.nom', $search_parent_name); @@ -1124,7 +1135,9 @@ if ($resql) { llxHeader('', $title, $help_url); $param = ''; - + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -1280,7 +1293,7 @@ if ($resql) { if ($permissiontocancel) { $arrayofmassactions['cancelorders'] = img_picto('', 'close_title', 'class="pictofixedwidth"').$langs->trans("Cancel"); } - if (isModEnabled('facture') && $user->rights->facture->creer) { + if (isModEnabled('facture') && $user->hasRight("facture", "creer")) { $arrayofmassactions['createbills'] = img_picto('', 'bill', 'class="pictofixedwidth"').$langs->trans("CreateInvoiceForThisCustomer"); } if ($permissiontoclose) { @@ -1298,7 +1311,10 @@ if ($resql) { if (!empty($socid)) { $url .= '&socid='.$socid; } - $newcardbutton = dolGetButtonTitle($langs->trans('NewOrder'), '', 'fa fa-plus-circle', $url, '', $contextpage == 'orderlist' && $permissiontoadd); + $newcardbutton = ''; + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('NewOrder'), '', 'fa fa-plus-circle', $url, '', $contextpage == 'orderlist' && $permissiontoadd); // Lines of title fields print '
'; @@ -1313,6 +1329,8 @@ if ($resql) { print ''; print ''; print ''; + print ''; + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'order', 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -1387,7 +1405,7 @@ if ($resql) { $moreforfilter = ''; // If the user can view prospects? sales other than his own - if ($user->rights->user->user->lire) { + if ($user->hasRight("user", "user", "lire")) { $langs->load("commercial"); $moreforfilter .= '
'; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); @@ -1395,7 +1413,7 @@ if ($resql) { $moreforfilter .= '
'; } // If the user can view other users - if ($user->rights->user->user->lire) { + if ($user->hasRight("user", "user", "lire")) { $moreforfilter .= '
'; $tmptitle = $langs->trans('LinkedToSpecificUsers'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth250 widthcentpercentminusx'); @@ -1403,7 +1421,7 @@ if ($resql) { } // 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)) { + if (isModEnabled('categorie') && $user->hasRight("categorie", "lire") && ($user->hasRight("produit", "lire") || $user->hasRight("service", "lire"))) { include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
'; $tmptitle = $langs->trans('IncludingProductWithTag'); @@ -1412,7 +1430,7 @@ if ($resql) { $moreforfilter .= '
'; } // If Categories are enabled & user has rights to see - if (isModEnabled('categorie') && $user->rights->categorie->lire) { + if (isModEnabled('categorie') && $user->hasRight("categorie", "lire")) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
'; $tmptitle = $langs->trans('CustomersProspectsCategoriesShort'); @@ -1508,16 +1526,16 @@ if ($resql) { } // Town if (!empty($arrayfields['s.town']['checked'])) { - print '
'; - print ''; + print ''; print ''; + print ''; print $form->selectyesno('search_billed', $search_billed, 1, 0, 1, 1); print ''; + print ''; print ''; + print ''; $liststatus = array( Commande::STATUS_DRAFT=>$langs->trans("StatusOrderDraftShort"), Commande::STATUS_VALIDATED=>$langs->trans("StatusOrderValidated"), @@ -1726,7 +1744,7 @@ if ($resql) { -2=>$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort"), Commande::STATUS_CANCELED=>$langs->trans("StatusOrderCanceledShort") ); - print $form->selectarray('search_status', $liststatus, $search_status, -5, 0, 0, '', 0, 0, 0, '', 'maxwidth125 onrightofpage', 1); + print $form->selectarray('search_status', $liststatus, $search_status, -5, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1); print '
'; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; - } - print ''; + if ($mode == 'kanban') { + if ($i == 0) { + print '
'; + print '
'; } - if (!$i) { - $totalarray['nbfield']++; + + print $generic_commande->getKanbanView(''); + + if ($i == ($imaxinloop - 1)) { + print '
'; + print '
'; - print $generic_commande->getNomUrl(1, ($search_status != 2 ? 0 : $obj->fk_statut), 0, 0, 0, 1, 1); - - $filename = dol_sanitizeFileName($obj->ref); - $filedir = $conf->commande->multidir_output[$conf->entity].'/'.dol_sanitizeFileName($obj->ref); - $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; - print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir); - - print ''.$obj->ref_client.''; - if ($obj->project_id > 0) { - print $projectstatic->getNomUrl(1); - } - print ''; - if ($obj->project_id > 0) { - print $projectstatic->title; - } - print ''; - print $getNomUrl_cache[$obj->socid]; - - // If module invoices enabled and user with invoice creation permissions - if (isModEnabled('facture') && !empty($conf->global->ORDER_BILLING_ALL_CUSTOMER)) { - if ($user->rights->facture->creer) { - if (($obj->fk_statut > 0 && $obj->fk_statut < 3) || ($obj->fk_statut == 3 && $obj->billed == 0)) { - print ' '; - print img_picto($langs->trans("CreateInvoiceForThisCustomer").' : '.$companystatic->name, 'object_bill', 'hideonsmartphone').''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; } + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + print ''; + print $generic_commande->getNomUrl(1, ($search_status != 2 ? 0 : $obj->fk_statut), 0, 0, 0, 1, 1); + + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->commande->multidir_output[$conf->entity].'/'.dol_sanitizeFileName($obj->ref); + $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; + print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir); + + print ''; - print $obj->alias; - print ''; - if ($obj->fk_parent > 0) { - if (!isset($company_url_list[$obj->fk_parent])) { - $companyparent = new Societe($db); - $res = $companyparent->fetch($obj->fk_parent); - if ($res > 0) { - $company_url_list[$obj->fk_parent] = $companyparent->getNomUrl(1); - } - } - if (isset($company_url_list[$obj->fk_parent])) { - print $company_url_list[$obj->fk_parent]; + // Ref customer + if (!empty($arrayfields['c.ref_client']['checked'])) { + print ''.$obj->ref_client.''; - print $obj->town; - print ''; - print $obj->zip; - print '".$obj->state_name."'; - $tmparray = getCountry($obj->fk_pays, 'all'); - print $tmparray['label']; - print ''; - if (empty($typenArray)) { - $typenArray = $formcompany->typent_array(1); - } - print $typenArray[$obj->typent_code]; - print ''; - print dol_print_date($db->jdate($obj->date_commande), 'day'); - // Warning late icon and note - if ($generic_commande->hasDelay()) { - print img_picto($langs->trans("Late").' : '.$generic_commande->showDelay(), "warning"); - } - print ''; - print dol_print_date($db->jdate($obj->date_delivery), 'dayhour'); - print ''; - $form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1); - print ''; - $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent); - print ''; - $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1); - print ''; - $form->formInputReason($_SERVER['PHP_SELF'], $obj->fk_input_reason, 'none', ''); - print ''.price($obj->total_ht)."'.price($obj->total_tva)."'.price($obj->total_ttc)."'.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."'; - $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); - print "'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'; - if ($userstatic->id) { - print $userstatic->getNomUrl(-1); - } else { - print ' '; - } - print "'; - if ($obj->socid > 0) { - $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); - if ($listsalesrepresentatives < 0) { - dol_print_error($db); + // Project ref + if (!empty($arrayfields['p.ref']['checked'])) { + print ''; + if ($obj->project_id > 0) { + print $projectstatic->getNomUrl(1); } - $nbofsalesrepresentative = count($listsalesrepresentatives); - if ($nbofsalesrepresentative > 6) { - // We print only number - print $nbofsalesrepresentative; - } elseif ($nbofsalesrepresentative > 0) { - $j = 0; - foreach ($listsalesrepresentatives as $val) { - $userstatic->id = $val['id']; - $userstatic->lastname = $val['lastname']; - $userstatic->firstname = $val['firstname']; - $userstatic->email = $val['email']; - $userstatic->statut = $val['statut']; - $userstatic->entity = $val['entity']; - $userstatic->photo = $val['photo']; - $userstatic->login = $val['login']; - $userstatic->office_phone = $val['office_phone']; - $userstatic->office_fax = $val['office_fax']; - $userstatic->user_mobile = $val['user_mobile']; - $userstatic->job = $val['job']; - $userstatic->gender = $val['gender']; - //print '
': - print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); - $j++; - if ($j < $nbofsalesrepresentative) { - print ' '; + print '
'; + if ($obj->project_id > 0) { + print $projectstatic->title; + } + print ''; + print $getNomUrl_cache[$obj->socid]; + + // If module invoices enabled and user with invoice creation permissions + if (isModEnabled('facture') && !empty($conf->global->ORDER_BILLING_ALL_CUSTOMER)) { + if ($user->rights->facture->creer) { + if (($obj->fk_statut > 0 && $obj->fk_statut < 3) || ($obj->fk_statut == 3 && $obj->billed == 0)) { + print ' '; + print img_picto($langs->trans("CreateInvoiceForThisCustomer").' : '.$companystatic->name, 'object_bill', 'hideonsmartphone').''; } - //print ''; } } - //else print $langs->trans("NoSalesRepresentativeAffected"); - } else { - print ' '; + print ''.price($marginInfo['pa_total']).''; + print $obj->alias; + print ''.price($marginInfo['total_margin']).''; + if ($obj->fk_parent > 0) { + if (!isset($company_url_list[$obj->fk_parent])) { + $companyparent = new Societe($db); + $res = $companyparent->fetch($obj->fk_parent); + if ($res > 0) { + $company_url_list[$obj->fk_parent] = $companyparent->getNomUrl(1); + } + } + if (isset($company_url_list[$obj->fk_parent])) { + print $company_url_list[$obj->fk_parent]; + } + } + print "'.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''; + print $obj->town; + print ''.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').''; + print $obj->zip; + print '".$obj->state_name."'; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + if (empty($typenArray)) { + $typenArray = $formcompany->typent_array(1); + } + print $typenArray[$obj->typent_code]; + print ''; + print dol_print_date($db->jdate($obj->date_commande), 'day'); + // Warning late icon and note + if ($generic_commande->hasDelay()) { + print img_picto($langs->trans("Late").' : '.$generic_commande->showDelay(), "warning"); + } + print ''; + print dol_print_date($db->jdate($obj->date_delivery), 'dayhour'); + print ''; + $form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1); + print ''; + $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent); + print ''; + $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1); + print ''; + $form->formInputReason($_SERVER['PHP_SELF'], $obj->fk_input_reason, 'none', ''); + print ''.price($obj->total_ht)."'; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''.price($obj->total_tva)."'; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''.price($obj->total_ttc)."'; - print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser'); - print ''.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."'; - print dol_string_nohtmltag($obj->note_public); - print ''; + $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); + print "'; - print dol_string_nohtmltag($obj->note_private); - print ''.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'; - if (!empty($show_shippable_command) && isModEnabled('stock')) { - if (($obj->fk_statut > $generic_commande::STATUS_DRAFT) && ($obj->fk_statut < $generic_commande::STATUS_CLOSED)) { - $generic_commande->getLinesArray(); // Load array ->lines - $generic_commande->loadExpeditions(); // Load array ->expeditions + $userstatic->id = $obj->fk_user_author; + $userstatic->login = $obj->login; + $userstatic->lastname = $obj->lastname; + $userstatic->firstname = $obj->firstname; + $userstatic->email = $obj->user_email; + $userstatic->statut = $obj->user_statut; + $userstatic->entity = $obj->entity; + $userstatic->photo = $obj->photo; + $userstatic->office_phone = $obj->office_phone; + $userstatic->office_fax = $obj->office_fax; + $userstatic->user_mobile = $obj->user_mobile; + $userstatic->job = $obj->job; + $userstatic->gender = $obj->gender; - $numlines = count($generic_commande->lines); // Loop on each line of order - for ($lig = 0; $lig < $numlines; $lig++) { - 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; + // Author + if (!empty($arrayfields['u.login']['checked'])) { + print ''; + if ($userstatic->id) { + print $userstatic->getNomUrl(-1); + } else { + print ' '; + } + print "'; + if ($obj->socid > 0) { + $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); + if ($listsalesrepresentatives < 0) { + dol_print_error($db); + } + $nbofsalesrepresentative = count($listsalesrepresentatives); + if ($nbofsalesrepresentative > 6) { + // We print only number + print $nbofsalesrepresentative; + } elseif ($nbofsalesrepresentative > 0) { + $j = 0; + foreach ($listsalesrepresentatives as $val) { + $userstatic->id = $val['id']; + $userstatic->lastname = $val['lastname']; + $userstatic->firstname = $val['firstname']; + $userstatic->email = $val['email']; + $userstatic->statut = $val['statut']; + $userstatic->entity = $val['entity']; + $userstatic->photo = $val['photo']; + $userstatic->login = $val['login']; + $userstatic->office_phone = $val['office_phone']; + $userstatic->office_fax = $val['office_fax']; + $userstatic->user_mobile = $val['user_mobile']; + $userstatic->job = $val['job']; + $userstatic->gender = $val['gender']; + //print '
': + print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); + $j++; + if ($j < $nbofsalesrepresentative) { + print ' '; + } + //print '
'; } - if ($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; + } + //else print $langs->trans("NoSalesRepresentativeAffected"); + } else { + print ' '; + } + print '
'.price($marginInfo['pa_total']).''.price($marginInfo['total_margin']).''.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser'); + print ''; + print dol_string_nohtmltag($obj->note_public); + print ''; + print dol_string_nohtmltag($obj->note_private); + print ''; + if (!empty($show_shippable_command) && isModEnabled('stock')) { + if (($obj->fk_statut > $generic_commande::STATUS_DRAFT) && ($obj->fk_statut < $generic_commande::STATUS_CLOSED)) { + $generic_commande->getLinesArray(); // Load array ->lines + $generic_commande->loadExpeditions(); // Load array ->expeditions + + $numlines = count($generic_commande->lines); // Loop on each line of order + for ($lig = 0; $lig < $numlines; $lig++) { + if (isset($generic_commande->expeditions[$generic_commande->lines[$lig]->id])) { + $reliquat = $generic_commande->lines[$lig]->qty - $generic_commande->expeditions[$generic_commande->lines[$lig]->id]; } else { - $generic_product->stock_reel = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel']; - $generic_product->stock_theorique = $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; + $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; - if ($reliquat > $generic_product->stock_reel) { - $notshippable++; - } - if (empty($conf->global->SHIPPABLE_ORDER_ICON_IN_LIST)) { // Default code. Default should be this case. - $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->product_ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); - $text_info .= ' - '.$langs->trans("Stock").': '.$generic_product->stock_reel.''; - $text_info .= ' - '.$langs->trans("VirtualStock").': '.$generic_product->stock_theorique.''; - $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); - $text_info .= '
'; - } else { // BUGGED CODE. - // DOES NOT TAKE INTO ACCOUNT MANUFACTURING. THIS CODE SHOULD BE USELESS. PREVIOUS CODE SEEMS COMPLETE. - // COUNT STOCK WHEN WE SHOULD ALREADY HAVE VALUE - // Detailed virtual stock, looks bugged, uncomplete and need heavy load. - // stock order and stock order_supplier - $stock_order = 0; - $stock_order_supplier = 0; - if (!empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { // What about other options ? - if (isModEnabled('commande')) { - if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'])) { - $generic_product->load_stats_commande(0, '1,2'); - $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'] = $generic_product->stats_commande['qty']; - } else { - $generic_product->stats_commande['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer']; + // Get local and virtual stock and store it into cache + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product])) { + $generic_product->load_stock('nobatch,warehouseopen'); // ->load_virtual_stock() is already included into load_stock() + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_reel; + $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; + } else { + $generic_product->stock_reel = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel']; + $generic_product->stock_theorique = $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; + } + + if ($reliquat > $generic_product->stock_reel) { + $notshippable++; + } + if (empty($conf->global->SHIPPABLE_ORDER_ICON_IN_LIST)) { // Default code. Default should be this case. + $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->product_ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); + $text_info .= ' - '.$langs->trans("Stock").': '.$generic_product->stock_reel.''; + $text_info .= ' - '.$langs->trans("VirtualStock").': '.$generic_product->stock_theorique.''; + $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); + $text_info .= '
'; + } else { // BUGGED CODE. + // DOES NOT TAKE INTO ACCOUNT MANUFACTURING. THIS CODE SHOULD BE USELESS. PREVIOUS CODE SEEMS COMPLETE. + // COUNT STOCK WHEN WE SHOULD ALREADY HAVE VALUE + // Detailed virtual stock, looks bugged, uncomplete and need heavy load. + // stock order and stock order_supplier + $stock_order = 0; + $stock_order_supplier = 0; + if (!empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { // What about other options ? + if (isModEnabled('commande')) { + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'])) { + $generic_product->load_stats_commande(0, '1,2'); + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'] = $generic_product->stats_commande['qty']; + } else { + $generic_product->stats_commande['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer']; + } + $stock_order = $generic_product->stats_commande['qty']; } - $stock_order = $generic_product->stats_commande['qty']; + if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'])) { + $generic_product->load_stats_commande_fournisseur(0, '3'); + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'] = $generic_product->stats_commande_fournisseur['qty']; + } else { + $generic_product->stats_commande_fournisseur['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier']; + } + $stock_order_supplier = $generic_product->stats_commande_fournisseur['qty']; + } + } + $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); + $text_stock_reel = $generic_product->stock_reel.'/'.$stock_order; + if ($stock_order > $generic_product->stock_reel && !($generic_product->stock_reel < $generic_commande->lines[$lig]->qty)) { + $warning++; + $text_warning .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } + if ($reliquat > $generic_product->stock_reel) { + $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } else { + $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; } if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { - if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'])) { - $generic_product->load_stats_commande_fournisseur(0, '3'); - $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'] = $generic_product->stats_commande_fournisseur['qty']; - } else { - $generic_product->stats_commande_fournisseur['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier']; - } - $stock_order_supplier = $generic_product->stats_commande_fournisseur['qty']; + $text_info .= ' '.$langs->trans('SupplierOrder').' : '.$stock_order_supplier; } + $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); + $text_info .= '
'; } - $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); - $text_stock_reel = $generic_product->stock_reel.'/'.$stock_order; - if ($stock_order > $generic_product->stock_reel && !($generic_product->stock_reel < $generic_commande->lines[$lig]->qty)) { - $warning++; - $text_warning .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; - } - if ($reliquat > $generic_product->stock_reel) { - $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; - } else { - $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; - } - if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { - $text_info .= ' '.$langs->trans('SupplierOrder').' : '.$stock_order_supplier; - } - $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); - $text_info .= '
'; } } + if ($notshippable == 0) { + $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'green paddingleft'); + $text_info = $text_icon.' '.$langs->trans('Shippable').'
'.$text_info; + } else { + $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'error paddingleft'); + $text_info = $text_icon.' '.$langs->trans('NonShippable').'
'.$text_info; + } } - if ($notshippable == 0) { - $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'green paddingleft'); - $text_info = $text_icon.' '.$langs->trans('Shippable').'
'.$text_info; - } else { - $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'error paddingleft'); - $text_info = $text_icon.' '.$langs->trans('NonShippable').'
'.$text_info; + + if ($nbprod) { + print $form->textwithtooltip('', $text_info, 2, 1, $text_icon, '', 2); + } + if ($warning) { // Always false in default mode + print $form->textwithtooltip('', $langs->trans('NotEnoughForAllOrders').'
'.$text_warning, 2, 1, img_picto('', 'error'), '', 2); } } - - if ($nbprod) { - print $form->textwithtooltip('', $text_info, 2, 1, $text_icon, '', 2); - } - if ($warning) { // Always false in default mode - print $form->textwithtooltip('', $langs->trans('NotEnoughForAllOrders').'
'.$text_warning, 2, 1, img_picto('', 'error'), '', 2); + print '
'.yn($obj->billed).''.$obj->import_key.''.$generic_commande->LibStatut($obj->fk_statut, $obj->billed, 5, 1).''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + // Billed + if (!empty($arrayfields['c.facture']['checked'])) { + print ''.yn($obj->billed).''.dol_escape_htmltag($obj->import_key).''.$generic_commande->LibStatut($obj->fk_statut, $obj->billed, 5, 1).''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
'."\n"; + + print ''; + + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + + // Détail commande + if (!empty($arrayfields['pr.ref']['checked'])) { + print ''; + } + // Product Description + if (!empty($arrayfields['pr.desc']['checked'])) { + print ''; + } + // Product QtyOrdered + if (!empty($arrayfields['cdet.qty']['checked'])) { + print ''; + } + + // Ref + if (!empty($arrayfields['c.ref']['checked'])) { + print ''; + } + // Ref customer + if (!empty($arrayfields['c.ref_client']['checked'])) { + print ''; + } + // Project ref + if (!empty($arrayfields['p.ref']['checked'])) { + print ''; + } + // Project title + if (!empty($arrayfields['p.title']['checked'])) { + print ''; + } + // Thirpdarty + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + } + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print ''; + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + } + // Company type + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + } + // Date order + if (!empty($arrayfields['c.date_commande']['checked'])) { + print ''; + } + if (!empty($arrayfields['c.date_delivery']['checked'])) { + print ''; + } + // Shipping Method + if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { + print ''; + } + // Payment term + if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { + print ''; + } + // Payment mode + if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { + print ''; + } + // Channel + if (!empty($arrayfields['c.fk_input_reason']['checked'])) { + print ''; + } + if (!empty($arrayfields['cdet.total_ht']['checked'])) { + // Amount + print ''; + } + if (!empty($arrayfields['c.total_vat']['checked'])) { + // Amount + print ''; + } + if (!empty($arrayfields['cdet.total_ttc']['checked'])) { + // Amount + print ''; + } + if (!empty($arrayfields['c.fk_warehouse']['checked'])) { + // Warehouse + print ''; + } + if (!empty($arrayfields['c.multicurrency_code']['checked'])) { + // Currency + print ''; + } + if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { + // Currency rate + print ''; + } + if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { + // Amount + print ''; + } + if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { + // Amount VAT + print ''; + } + if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { + // Amount + print ''; + } + if (!empty($arrayfields['u.login']['checked'])) { + // Author + print ''; + } + if (!empty($arrayfields['sale_representative']['checked'])) { + print ''; + } + if (!empty($arrayfields['total_pa']['checked'])) { + print ''; + } + if (!empty($arrayfields['total_margin']['checked'])) { + print ''; + } + if (!empty($arrayfields['total_margin_rate']['checked'])) { + print ''; + } + if (!empty($arrayfields['total_mark_rate']['checked'])) { + print ''; + } + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields); + $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (!empty($arrayfields['c.datec']['checked'])) { + print ''; + } + // Date modification + if (!empty($arrayfields['c.tms']['checked'])) { + print ''; + } + // Date cloture + if (!empty($arrayfields['c.date_cloture']['checked'])) { + print ''; + } + // Note public + if (!empty($arrayfields['c.note_public']['checked'])) { + print ''; + } + // Note private + if (!empty($arrayfields['c.note_private']['checked'])) { + print ''; + } + // Shippable + if (!empty($arrayfields['shippable']['checked'])) { + print ''; + } + // Status billed + if (!empty($arrayfields['c.facture']['checked'])) { + print ''; + } + // Import key + if (!empty($arrayfields['c.import_key']['checked'])) { + print ''; + } + // Status + if (!empty($arrayfields['c.fk_statut']['checked'])) { + print ''; + } + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + print "\n"; + + // Fields title + print ''; + + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch center '); + } + + // Détail commande + if (!empty($arrayfields['pr.ref']['checked'])) { + print_liste_field_titre($arrayfields['pr.ref']['label'], $_SERVER["PHP_SELF"], 'pr.ref', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['pr.desc']['checked'])) { + print_liste_field_titre($arrayfields['pr.desc']['label'], $_SERVER["PHP_SELF"], 'pr.desc', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['cdet.qty']['checked'])) { + print_liste_field_titre($arrayfields['cdet.qty']['label'], $_SERVER["PHP_SELF"], 'cdet.qty', '', $param, '', $sortfield, $sortorder); + } + + if (!empty($arrayfields['c.ref']['checked'])) { + print_liste_field_titre($arrayfields['c.ref']['label'], $_SERVER["PHP_SELF"], 'c.ref', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.ref_client']['checked'])) { + print_liste_field_titre($arrayfields['c.ref_client']['label'], $_SERVER["PHP_SELF"], 'c.ref_client', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['p.ref']['checked'])) { + print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['p.title']['checked'])) { + print_liste_field_titre($arrayfields['p.title']['label'], $_SERVER["PHP_SELF"], "p.title", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['s.nom']['checked'])) { + print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], 's.nom', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['s.name_alias']['checked'])) { + print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER["PHP_SELF"], 's.name_alias', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['s.town']['checked'])) { + print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], 's.town', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['s.zip']['checked'])) { + print_liste_field_titre($arrayfields['s.zip']['label'], $_SERVER["PHP_SELF"], 's.zip', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['state.nom']['checked'])) { + print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['country.code_iso']['checked'])) { + print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['typent.code']['checked'])) { + print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.date_commande']['checked'])) { + print_liste_field_titre($arrayfields['c.date_commande']['label'], $_SERVER["PHP_SELF"], 'c.date_commande', '', $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.date_delivery']['checked'])) { + print_liste_field_titre($arrayfields['c.date_delivery']['label'], $_SERVER["PHP_SELF"], 'c.date_livraison', '', $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_shipping_method']['label'], $_SERVER["PHP_SELF"], "c.fk_shipping_method", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_cond_reglement']['label'], $_SERVER["PHP_SELF"], "c.fk_cond_reglement", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_mode_reglement']['label'], $_SERVER["PHP_SELF"], "c.fk_mode_reglement", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.fk_input_reason']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_input_reason']['label'], $_SERVER["PHP_SELF"], "c.fk_input_reason", "", $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['cdet.total_ht']['checked'])) { + print_liste_field_titre($arrayfields['cdet.total_ht']['label'], $_SERVER["PHP_SELF"], 'cdet.total_ht', '', $param, '', $sortfield, $sortorder, 'right '); + } + if (!empty($arrayfields['c.total_vat']['checked'])) { + print_liste_field_titre($arrayfields['c.total_vat']['label'], $_SERVER["PHP_SELF"], 'cdet.total_tva', '', $param, '', $sortfield, $sortorder, 'right '); + } + if (!empty($arrayfields['cdet.total_ttc']['checked'])) { + print_liste_field_titre($arrayfields['cdet.total_ttc']['label'], $_SERVER["PHP_SELF"], 'cdet.total_ttc', '', $param, '', $sortfield, $sortorder, 'right '); + } + if (!empty($arrayfields['c.fk_warehouse']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_warehouse']['label'], "", '', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.multicurrency_code']['checked'])) { + print_liste_field_titre($arrayfields['c.multicurrency_code']['label'], $_SERVER['PHP_SELF'], 'c.multicurrency_code', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { + print_liste_field_titre($arrayfields['c.multicurrency_tx']['label'], $_SERVER['PHP_SELF'], 'c.multicurrency_tx', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { + print_liste_field_titre($arrayfields['c.multicurrency_total_ht']['label'], $_SERVER['PHP_SELF'], 'c.multicurrency_total_ht', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { + print_liste_field_titre($arrayfields['c.multicurrency_total_vat']['label'], $_SERVER['PHP_SELF'], 'c.multicurrency_total_tva', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { + print_liste_field_titre($arrayfields['c.multicurrency_total_ttc']['label'], $_SERVER['PHP_SELF'], 'c.multicurrency_total_ttc', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['u.login']['checked'])) { + print_liste_field_titre($arrayfields['u.login']['label'], $_SERVER["PHP_SELF"], 'u.login', '', $param, 'align="center"', $sortfield, $sortorder); + } + if (!empty($arrayfields['sale_representative']['checked'])) { + print_liste_field_titre($arrayfields['sale_representative']['label'], $_SERVER["PHP_SELF"], "", "", "$param", '', $sortfield, $sortorder); + } + if (!empty($arrayfields['total_pa']['checked'])) { + print_liste_field_titre($arrayfields['total_pa']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['total_margin']['checked'])) { + print_liste_field_titre($arrayfields['total_margin']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['total_margin_rate']['checked'])) { + print_liste_field_titre($arrayfields['total_margin_rate']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); + } + if (!empty($arrayfields['total_mark_rate']['checked'])) { + print_liste_field_titre($arrayfields['total_mark_rate']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); + } + + $totalarray = array( + 'nbfield' => 0, + 'val' => array( + 'cdet.total_ht' => 0, + 'cdet.total_tva' => 0, + 'cdet.total_ttc' => 0, + ), + 'pos' => array(), + ); + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; + // Hook fields + $parameters = array( + 'arrayfields' => $arrayfields, + 'param' => $param, + 'sortfield' => $sortfield, + 'sortorder' => $sortorder, + 'totalarray' => &$totalarray, + ); + $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + if (!empty($arrayfields['c.datec']['checked'])) { + print_liste_field_titre($arrayfields['c.datec']['label'], $_SERVER["PHP_SELF"], "c.date_creation", "", $param, '', $sortfield, $sortorder, 'center nowrap '); + } + if (!empty($arrayfields['c.tms']['checked'])) { + print_liste_field_titre($arrayfields['c.tms']['label'], $_SERVER["PHP_SELF"], "c.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); + } + if (!empty($arrayfields['c.date_cloture']['checked'])) { + print_liste_field_titre($arrayfields['c.date_cloture']['label'], $_SERVER["PHP_SELF"], "c.date_cloture", "", $param, '', $sortfield, $sortorder, 'center nowrap '); + } + if (!empty($arrayfields['c.note_public']['checked'])) { + print_liste_field_titre($arrayfields['c.note_public']['label'], $_SERVER["PHP_SELF"], "c.note_public", "", $param, '', $sortfield, $sortorder, 'right '); + } + if (!empty($arrayfields['c.note_private']['checked'])) { + print_liste_field_titre($arrayfields['c.note_private']['label'], $_SERVER["PHP_SELF"], "c.note_private", "", $param, '', $sortfield, $sortorder, 'right '); + } + if (!empty($arrayfields['shippable']['checked'])) { + print_liste_field_titre($arrayfields['shippable']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.facture']['checked'])) { + print_liste_field_titre($arrayfields['c.facture']['label'], $_SERVER["PHP_SELF"], 'c.facture', '', $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.import_key']['checked'])) { + print_liste_field_titre($arrayfields['c.import_key']['label'], $_SERVER["PHP_SELF"], "c.import_key", "", $param, '', $sortfield, $sortorder, 'center '); + } + if (!empty($arrayfields['c.fk_statut']['checked'])) { + print_liste_field_titre($arrayfields['c.fk_statut']['label'], $_SERVER["PHP_SELF"], "c.fk_statut", "", $param, '', $sortfield, $sortorder, 'center '); + } + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch center '); + } + print ''."\n"; + + $total = 0; + $subtotal = 0; + $productstat_cache = array(); + $productstat_cachevirtual = array(); + $getNomUrl_cache = array(); + + $generic_commande = new Commande($db); + $generic_product = new Product($db); + $userstatic = new User($db); + $i = 0; + + $with_margin_info = false; + if (!empty($conf->margin->enabled) && ( + !empty($arrayfields['total_pa']['checked']) + || !empty($arrayfields['total_margin']['checked']) + || !empty($arrayfields['total_margin_rate']['checked']) + || !empty($arrayfields['total_mark_rate']['checked']) + ) + ) { + $with_margin_info = true; + } + $total_ht = 0; + $total_margin = 0; + + + // Détail commande + $totalqty = 0; + + $totalarray = array(); + $totalarray['nbfield'] = 0; + $totalarray['val']['cdet.total_tva'] = 0; + $totalarray['val']['cdet.total_ttc'] = 0; + $imaxinloop = ($limit ? min($num, $limit) : $num); + while ($i < $imaxinloop) { + $obj = $db->fetch_object($resql); + + $notshippable = 0; + $warning = 0; + $text_info = ''; + $text_warning = ''; + $nbprod = 0; + + // Print SubTotal + if (empty($i)) { + $oldref = $obj->product_ref; + } + if ($oldref != $obj->product_ref) { + include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; + $oldref = $obj->product_ref; + } + + $companystatic->id = $obj->socid; + $companystatic->name = $obj->name; + $companystatic->name_alias = $obj->alias; + $companystatic->client = $obj->client; + $companystatic->code_client = $obj->code_client; + $companystatic->email = $obj->email; + $companystatic->phone = $obj->phone; + $companystatic->address = $obj->address; + $companystatic->zip = $obj->zip; + $companystatic->town = $obj->town; + $companystatic->country_code = $obj->country_code; + if (!isset($getNomUrl_cache[$obj->socid])) { + $getNomUrl_cache[$obj->socid] = $companystatic->getNomUrl(1, 'customer'); + } + + $generic_commande->id = $obj->c_rowid; + $generic_commande->ref = $obj->ref; + $generic_commande->statut = $obj->fk_statut; + $generic_commande->billed = $obj->billed; + $generic_commande->date = $db->jdate($obj->date_commande); + $generic_commande->date_livraison = $db->jdate($obj->date_delivery); // deprecated + $generic_commande->delivery_date = $db->jdate($obj->date_delivery); + $generic_commande->ref_client = $obj->ref_client; + $generic_commande->total_ht = $obj->c_total_ht; + $generic_commande->total_tva = $obj->c_total_tva; + $generic_commande->total_ttc = $obj->c_total_ttc; + $generic_commande->note_public = $obj->note_public; + $generic_commande->note_private = $obj->note_private; + + $projectstatic->id = $obj->project_id; + $projectstatic->ref = $obj->project_ref; + $projectstatic->title = $obj->project_label; + + $marginInfo = array(); + if ($with_margin_info === true) { + $generic_commande->fetch_lines(); + $marginInfo = $formmargin->getMarginInfosArray($generic_commande); + $total_ht += $obj->total_ht; + $total_margin += $marginInfo['total_margin']; + } + + print ''; + + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Détail commande + // Product Ref + if (!empty($arrayfields['pr.ref']['checked'])) { + if (!empty($obj->product_rowid)) { + $generic_product->id = $obj->product_rowid; + $generic_product->ref = $obj->product_ref; + $generic_product->label = $obj->product_label; + $generic_product->status = $obj->product_status; + $generic_product->status_buy = $obj->product_status_buy; + $generic_product->status_batch = $obj->product_batch; + $generic_product->barcode = $obj->product_barcode; + print ''; + } else { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + } + // Product Description + if (!empty($arrayfields['pr.desc']['checked'])) { + // print ''; + !empty($obj->product_label) ? $labelproduct = $obj->product_label : $labelproduct = $obj->description; + print ''; + + if (!$i) { + $totalarray['nbfield']++; + } + } + // Product QtyOrdered + if (!empty($arrayfields['cdet.qty']['checked'])) { + print ''; + if (isset($totalarray['val']['cdet.qty'])) { + $totalarray['val']['cdet.qty'] += $obj->qty; + } else { + $totalarray['val']['cdet.qty'] = $obj->qty; + } + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cdet.qty'; + } + } + + // Ref + if (!empty($arrayfields['c.ref']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Ref customer + if (!empty($arrayfields['c.ref_client']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project ref + if (!empty($arrayfields['p.ref']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project label + if (!empty($arrayfields['p.title']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Third party + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Alias name + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Order date + if (!empty($arrayfields['c.date_commande']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Plannned date of delivery + if (!empty($arrayfields['c.date_delivery']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Shipping Method + if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Payment terms + if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Payment mode + if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Channel + if (!empty($arrayfields['c.fk_input_reason']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['cdet.total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cdet.total_ht'; + } + if (isset($totalarray['val']['cdet.total_ht'])) { + $totalarray['val']['cdet.total_ht'] += $obj->total_ht; + } else { + $totalarray['val']['cdet.total_ht'] = $obj->total_ht; + } + } + // Amount VAT + if (!empty($arrayfields['c.total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cdet.total_tva'; + } + $totalarray['val']['cdet.total_tva'] += $obj->total_tva; + } + // Amount TTC + if (!empty($arrayfields['cdet.total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cdet.total_ttc'; + } + $totalarray['val']['cdet.total_ttc'] += $obj->total_ttc; + } + // Warehouse + if (!empty($arrayfields['c.fk_warehouse']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Currency + if (!empty($arrayfields['c.multicurrency_code']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Currency rate + if (!empty($arrayfields['c.multicurrency_tx']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount VAT + if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount TTC + if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + $userstatic->id = $obj->fk_user_author; + $userstatic->login = $obj->login; + $userstatic->lastname = $obj->lastname; + $userstatic->firstname = $obj->firstname; + $userstatic->email = $obj->user_email; + $userstatic->statut = $obj->user_statut; + $userstatic->entity = $obj->entity; + $userstatic->photo = $obj->photo; + $userstatic->office_phone = $obj->office_phone; + $userstatic->office_fax = $obj->office_fax; + $userstatic->user_mobile = $obj->user_mobile; + $userstatic->job = $obj->job; + $userstatic->gender = $obj->gender; + + // Author + if (!empty($arrayfields['u.login']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + if (!empty($arrayfields['sale_representative']['checked'])) { + // Sales representatives + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Total buying or cost price + if (!empty($arrayfields['total_pa']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Total margin + if (!empty($arrayfields['total_margin']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_margin'; + } + $totalarray['val']['total_margin'] += $marginInfo['total_margin']; + } + // Total margin rate + if (!empty($arrayfields['total_margin_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Total mark rate + if (!empty($arrayfields['total_mark_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; + } + if ($i >= $imaxinloop - 1) { + if (!empty($total_ht)) { + $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); + } else { + $totalarray['val']['total_mark_rate'] = ''; + } + } + } + + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + // Date creation + if (!empty($arrayfields['c.datec']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date modification + if (!empty($arrayfields['c.tms']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date cloture + if (!empty($arrayfields['c.date_cloture']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Note public + if (!empty($arrayfields['c.note_public']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Note private + if (!empty($arrayfields['c.note_private']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Show shippable Icon (this creates subloops, so may be slow) + if (!empty($arrayfields['shippable']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Billed + if (!empty($arrayfields['c.facture']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Import key + if (!empty($arrayfields['c.import_key']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['c.fk_statut']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // $totalarray['nbfield']--; + // $totalarray['nbfield']--; + print "\n"; + + $total += $obj->total_ht; + $subtotal += $obj->total_ht; + $i++; + } + + // Show total line + include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; + + // If no record found + if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print ''; + } + + $db->free($resql); + + $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); + $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + print '
'; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print $form->select_country($search_country, 'search_country', '', 0, 'minwidth100imp maxwidth100'); + print ''; + print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT) ? 'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT), '', 1); + print ''; + print '
'; + print $form->selectDate($search_dateorder_start ? $search_dateorder_start : -1, 'search_dateorder_start_', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search_dateorder_end ? $search_dateorder_end : -1, 'search_dateorder_end_', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; + print '
'; + print '
'; + print $form->selectDate($search_datedelivery_start ? $search_datedelivery_start : -1, 'search_datedelivery_start_', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search_datedelivery_end ? $search_datedelivery_end : -1, 'search_datedelivery_end_', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; + print '
'; + $form->selectShippingMethod($search_fk_shipping_method, 'search_fk_shipping_method', '', 1, '', 1); + print ''; + $form->select_conditions_paiements($search_fk_cond_reglement, 'search_fk_cond_reglement', 1, 1, 1); + print ''; + $form->select_types_paiements($search_fk_mode_reglement, 'search_fk_mode_reglement', '', 0, 1, 1, 0, -1); + print ''; + $form->selectInputReason($search_fk_input_reason, 'search_fk_input_reason', '', 1, '', 1); + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print $form->selectMultiCurrency($search_multicurrency_code, 'search_multicurrency_code', 1); + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + print $form->selectDate($search_datecloture_start ? $search_datecloture_start : -1, 'search_datecloture_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search_datecloture_end ? $search_datecloture_end : -1, 'search_datecloture_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; + print '
'; + print ''; + print ''; + //print $form->selectyesno('search_shippable', $search_shippable, 1, 0, 1, 1); + if (!empty($conf->global->ORDER_SHIPABLE_STATUS_DISABLED_BY_DEFAULT)) { + print ''; + print $langs->trans('ShowShippableStatus'); + } else { + $show_shippable_command = 1; + } + print ''; + print $form->selectyesno('search_billed', $search_billed, 1, 0, 1, 1); + print ''; + print ''; + $liststatus = array( + Commande::STATUS_DRAFT=>$langs->trans("StatusOrderDraftShort"), + Commande::STATUS_VALIDATED=>$langs->trans("StatusOrderValidated"), + Commande::STATUS_SHIPMENTONPROCESS=>$langs->trans("StatusOrderSentShort"), + Commande::STATUS_CLOSED=>$langs->trans("StatusOrderDelivered"), + -3=>$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort").'+'.$langs->trans("StatusOrderDelivered"), + -2=>$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort"), + Commande::STATUS_CANCELED=>$langs->trans("StatusOrderCanceledShort") + ); + print $form->selectarray('search_status', $liststatus, $search_status, -5, 0, 0, '', 0, 0, 0, '', 'maxwidth125', 1); + print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
'; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''.$generic_product->getNomUrl(1).'Ligne libre'.$obj->description.''.dol_escape_htmltag($labelproduct).''.$obj->qty.''; + print $generic_commande->getNomUrl(1, ($search_status != 2 ? 0 : $obj->fk_statut), 0, 0, 0, 1, 1); + + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->commande->multidir_output[$conf->entity].'/'.dol_sanitizeFileName($obj->ref); + $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; + print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir); + + print ''.$obj->ref_client.''; + if ($obj->project_id > 0) { + print $projectstatic->getNomUrl(1); + } + print ''; + if ($obj->project_id > 0) { + print $projectstatic->title; + } + print ''; + print $getNomUrl_cache[$obj->socid]; + + // If module invoices enabled and user with invoice creation permissions + if (isModEnabled('facture') && !empty($conf->global->ORDER_BILLING_ALL_CUSTOMER)) { + if ($user->rights->facture->creer) { + if (($obj->fk_statut > 0 && $obj->fk_statut < 3) || ($obj->fk_statut == 3 && $obj->billed == 0)) { + print ' '; + print img_picto($langs->trans("CreateInvoiceForThisCustomer").' : '.$companystatic->name, 'object_bill', 'hideonsmartphone').''; + } + } + } + print ''; + print $obj->alias; + print ''; + print $obj->town; + print ''; + print $obj->zip; + print '".$obj->state_name."'; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + if (empty($typenArray)) { + $typenArray = $formcompany->typent_array(1); + } + print $typenArray[$obj->typent_code]; + print ''; + print dol_print_date($db->jdate($obj->date_commande), 'day'); + // Warning late icon and note + if ($generic_commande->hasDelay()) { + print img_picto($langs->trans("Late").' : '.$generic_commande->showDelay(), "warning"); + } + print ''; + print dol_print_date($db->jdate($obj->date_delivery), 'dayhour'); + print ''; + $form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1); + print ''; + $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent); + print ''; + $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1); + print ''; + $form->formInputReason($_SERVER['PHP_SELF'], $obj->fk_input_reason, 'none', ''); + print ''.price($obj->total_ht)."'.price($obj->total_tva)."'.price($obj->total_ttc)."'; + if ($obj->warehouse > 0) { + print img_picto('', 'stock', 'class="paddingrightonly"'); + } + $formproduct->formSelectWarehouses($_SERVER['PHP_SELF'], $obj->warehouse, 'none'); + print "'.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."'; + $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); + print "'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'; + if ($userstatic->id) { + print $userstatic->getNomUrl(-1); + } else { + print ' '; + } + print "'; + if ($obj->socid > 0) { + $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); + if ($listsalesrepresentatives < 0) { + dol_print_error($db); + } + $nbofsalesrepresentative = count($listsalesrepresentatives); + if ($nbofsalesrepresentative > 6) { + // We print only number + print $nbofsalesrepresentative; + } elseif ($nbofsalesrepresentative > 0) { + $j = 0; + foreach ($listsalesrepresentatives as $val) { + $userstatic->id = $val['id']; + $userstatic->lastname = $val['lastname']; + $userstatic->firstname = $val['firstname']; + $userstatic->email = $val['email']; + $userstatic->statut = $val['statut']; + $userstatic->entity = $val['entity']; + $userstatic->photo = $val['photo']; + $userstatic->login = $val['login']; + $userstatic->office_phone = $val['office_phone']; + $userstatic->office_fax = $val['office_fax']; + $userstatic->user_mobile = $val['user_mobile']; + $userstatic->job = $val['job']; + $userstatic->gender = $val['gender']; + //print '
': + print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); + $j++; + if ($j < $nbofsalesrepresentative) { + print ' '; + } + //print '
'; + } + } + //else print $langs->trans("NoSalesRepresentativeAffected"); + } else { + print ' '; + } + print '
'.price($marginInfo['pa_total']).''.price($marginInfo['total_margin']).''.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser'); + print ''; + print dol_string_nohtmltag($obj->note_public); + print ''; + print dol_string_nohtmltag($obj->note_private); + print ''; + if (!empty($show_shippable_command) && !empty($conf->stock->enabled)) { + if (($obj->fk_statut > $generic_commande::STATUS_DRAFT) && ($obj->fk_statut < $generic_commande::STATUS_CLOSED)) { + $generic_commande->getLinesArray(); // Load array ->lines + $generic_commande->loadExpeditions(); // Load array ->expeditions + + $numlines = count($generic_commande->lines); // Loop on each line of order + for ($lig = 0; $lig < $numlines; $lig++) { + if (isset($generic_commande->expeditions[$generic_commande->lines[$lig]->id])) { + $reliquat = $generic_commande->lines[$lig]->qty - $generic_commande->expeditions[$generic_commande->lines[$lig]->id]; + } else { + $reliquat = $generic_commande->lines[$lig]->qty; + } + if ($generic_commande->lines[$lig]->product_type == 0 && $generic_commande->lines[$lig]->fk_product > 0) { // If line is a product and not a service + $nbprod++; // order contains real products + $generic_product->id = $generic_commande->lines[$lig]->fk_product; + + // Get local and virtual stock and store it into cache + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product])) { + $generic_product->load_stock('nobatch'); // ->load_virtual_stock() is already included into load_stock() + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_reel; + $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; + } else { + $generic_product->stock_reel = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stock_reel']; + $generic_product->stock_theorique = $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product]['stock_reel'] = $generic_product->stock_theorique; + } + + if ($reliquat > $generic_product->stock_reel) { + $notshippable++; + } + if (empty($conf->global->SHIPPABLE_ORDER_ICON_IN_LIST)) { // Default code. Default should be this case. + $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->product_ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); + $text_info .= ' - '.$langs->trans("Stock").': '.$generic_product->stock_reel.''; + $text_info .= ' - '.$langs->trans("VirtualStock").': '.$generic_product->stock_theorique.''; + $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); + $text_info .= '
'; + } else { // BUGGED CODE. + // DOES NOT TAKE INTO ACCOUNT MANUFACTURING. THIS CODE SHOULD BE USELESS. PREVIOUS CODE SEEMS COMPLETE. + // COUNT STOCK WHEN WE SHOULD ALREADY HAVE VALUE + // Detailed virtual stock, looks bugged, uncomplete and need heavy load. + // stock order and stock order_supplier + $stock_order = 0; + $stock_order_supplier = 0; + if (!empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { // What about other options ? + if (!empty($conf->commande->enabled)) { + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'])) { + $generic_product->load_stats_commande(0, '1,2'); + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer'] = $generic_product->stats_commande['qty']; + } else { + $generic_product->stats_commande['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_customer']; + } + $stock_order = $generic_product->stats_commande['qty']; + } + if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { + if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'])) { + $generic_product->load_stats_commande_fournisseur(0, '3'); + $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'] = $generic_product->stats_commande_fournisseur['qty']; + } else { + $generic_product->stats_commande_fournisseur['qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier']; + } + $stock_order_supplier = $generic_product->stats_commande_fournisseur['qty']; + } + } + $text_info .= $reliquat.' x '.$generic_commande->lines[$lig]->ref.' '.dol_trunc($generic_commande->lines[$lig]->product_label, 20); + $text_stock_reel = $generic_product->stock_reel.'/'.$stock_order; + if ($stock_order > $generic_product->stock_reel && !($generic_product->stock_reel < $generic_commande->lines[$lig]->qty)) { + $warning++; + $text_warning .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } + if ($reliquat > $generic_product->stock_reel) { + $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } else { + $text_info .= ''.$langs->trans('Available').' : '.$text_stock_reel.''; + } + if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) { + $text_info .= ' '.$langs->trans('SupplierOrder').' : '.$stock_order_supplier; + } + $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' ('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')' : ''); + $text_info .= '
'; + } + } + } + if ($notshippable == 0) { + $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'green paddingleft'); + $text_info = $text_icon.' '.$langs->trans('Shippable').'
'.$text_info; + } else { + $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'error paddingleft'); + $text_info = $text_icon.' '.$langs->trans('NonShippable').'
'.$text_info; + } + } + + if ($nbprod) { + print $form->textwithtooltip('', $text_info, 2, 1, $text_icon, '', 2); + } + if ($warning) { // Always false in default mode + print $form->textwithtooltip('', $langs->trans('NotEnoughForAllOrders').'
'.$text_warning, 2, 1, img_picto('', 'error'), '', 2); + } + } + print '
'.yn($obj->billed).''.$obj->import_key.''.$generic_commande->LibStatut($obj->fk_statut, $obj->billed, 5, 1).''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
'.$langs->trans("NoRecordFound").'
'."\n"; + print ''; + + print ''."\n"; + + $hidegeneratedfilelistifempty = 1; + if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) { + $hidegeneratedfilelistifempty = 0; + } + + // Show list of available documents + $urlsource = $_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; + $urlsource .= str_replace('&', '&', $param); + + $filedir = $diroutputmassaction; + $genallowed = $permissiontoread; + $delallowed = $permissiontoadd; + + print $formfile->showdocuments('massfilesarea_orders', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); +} else { + dol_print_error($db); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/commande/note.php b/htdocs/commande/note.php index e84dd5ad6e1..57eb073bba3 100644 --- a/htdocs/commande/note.php +++ b/htdocs/commande/note.php @@ -113,7 +113,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/commande/tpl/linkedobjectblock.tpl.php b/htdocs/commande/tpl/linkedobjectblock.tpl.php index 819a6ecb74f..a6a1fde3851 100644 --- a/htdocs/commande/tpl/linkedobjectblock.tpl.php +++ b/htdocs/commande/tpl/linkedobjectblock.tpl.php @@ -46,12 +46,12 @@ foreach ($linkedObjectBlock as $key => $objectlink) { $trclass .= ' liste_sub_total'; } echo '
'.$langs->trans("CustomerOrder"); + echo ''.$langs->trans("CustomerOrder"); if (!empty($showImportButton) && !empty($conf->global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES)) { print ' '; - echo ''.$objectlink->getNomUrl(1).''.$objectlink->getNomUrl(1).''.$objectlink->ref_client.''.dol_print_date($objectlink->date, 'day').''; diff --git a/htdocs/compta/accounting-files.php b/htdocs/compta/accounting-files.php index 2f2f5816ae1..af8d626eba1 100644 --- a/htdocs/compta/accounting-files.php +++ b/htdocs/compta/accounting-files.php @@ -376,6 +376,9 @@ if (($action == 'searchfiles' || $action == 'dl')) { $nofile['country_code'] = $objd->country_code; $nofile['vatnum'] = $objd->vatnum; $nofile['sens'] = $objd->sens; + $nofile['currency'] = $objd->currency; + $nofile['link'] = ''; + $nofile['name'] = ''; $filesarray[$nofile['item'].'_'.$nofile['id']] = $nofile; } else { @@ -396,6 +399,7 @@ if (($action == 'searchfiles' || $action == 'dl')) { $file['country_code'] = $objd->country_code; $file['vatnum'] = $objd->vatnum; $file['sens'] = $objd->sens; + $file['currency'] = $objd->currency; // Save record into array (only the first time it is found) if (empty($filesarray[$file['item'].'_'.$file['id']])) { @@ -415,6 +419,7 @@ if (($action == 'searchfiles' || $action == 'dl')) { 'relpathnamelang' => $langs->trans($file['item']).'/'.$file['name'], 'modulepart' => $modulepart, 'subdir' => $subdir, + 'currency' => $file['currency'] ); //var_dump($file['item'].'_'.$file['id']); //var_dump($filesarray[$file['item'].'_'.$file['id']]['files']); diff --git a/htdocs/compta/ajaxpayment.php b/htdocs/compta/ajaxpayment.php index aeb8d164928..a0c45ff0ed0 100644 --- a/htdocs/compta/ajaxpayment.php +++ b/htdocs/compta/ajaxpayment.php @@ -72,6 +72,10 @@ if (is_array($remains)) { unset($remains[$key]); } } +} elseif ($remains) { + $remains = array(price2num($remains)); +} else { + $remains = array(); } // Treatment @@ -109,7 +113,7 @@ if ($currentInvId) { // Here to breakdown $result -= $amountToBreakdown; // And canceled substraction has been replaced by breakdown } // else there's no need to calc anything, just reset the field (result is still < 0) } - $toJsonArray['amount_'.$currentInvId] = price2num($currentAmount).""; // Param will exist only if an img has been clicked + $toJsonArray['amount_'.$currentInvId] = price2num($currentAmount); // Param will exist only if an img has been clicked } $toJsonArray['makeRed'] = ($totalRemaining < price2num($result) || price2num($result) < 0) ? true : false; diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index b0514c71ee6..6c961e85af9 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -1134,8 +1134,8 @@ if ($resql) { } // Conciliated if (!empty($arrayfields['b.conciliated']['checked'])) { - print ''; - print $form->selectyesno('search_conciliated', $search_conciliated, 1, false, 1, 1); + print ''; + print $form->selectyesno('search_conciliated', $search_conciliated, 1, false, 1, 1, 'search_status onrightofpage maxwidth75'); print ''.$langs->trans($val).'
'.$langs->trans($ibankey).'
'.$langs->trans($bickey).'
'.$langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation").'
'.$langs->trans("BankAccountDomiciliation").''; print '
'.$langs->trans("BankAccountOwner").'
'.$langs->trans("BankName").'
'.$langs->trans($val).'
'; + print ''; $array = array( 'opened'=>$langs->trans("Opened"), 'closed'=>$langs->trans("Closed") ); - print $form->selectarray("search_status", $array, $search_status, 1, 0, 0, '', 0, 0, 0, '', '', 1); + print $form->selectarray("search_status", $array, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status maxwidth125 onrightofpage', 1); print '
'; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($objecttmp->id, $arrayofselected)) { - $selected = 1; + if ($mode == 'kanban') { + if ($i == 0) { + print '
'; + print '
'; + } + // Output Kanban + print $objecttmp->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print '
'; + print '
'; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($objecttmp->id, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print ''.$objecttmp->getNomUrl(1).''.dol_escape_htmltag($objecttmp->label).''; - print $objecttmp->type_lib[$objecttmp->type]; - print ''.dol_escape_htmltag($objecttmp->number).''; - if (isModEnabled('accounting') && !empty($objecttmp->account_number)) { - $accountingaccount = new AccountingAccount($db); - $accountingaccount->fetch('', $objecttmp->account_number, 1); - print ''; - print $accountingaccount->getNomUrl(0, 1, 1, '', 0); - print ''; - } else { - print ''.$objecttmp->account_number.''; - } - 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); + // Ref + if (!empty($arrayfields['b.ref']['checked'])) { + print ''.$objecttmp->getNomUrl(1).''; - print $objecttmp->currency_code; - print ''; - if ($conciliate == -2) { - print ''.$langs->trans("CashAccount").''; - } elseif ($conciliate == -3) { - print ''.$langs->trans("Closed").''; - } elseif (empty($objecttmp->rappro)) { - print ''.$langs->trans("ConciliationDisabled").''; - } else { - $result = $objecttmp->load_board($user, $objecttmp->id); - if (is_numeric($result) && $result < 0) { - setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); - } else { - print ''; - print ''; - print $result->nbtodo; + // Label + if (!empty($arrayfields['b.label']['checked'])) { + print ''.dol_escape_htmltag($objecttmp->label).''; + print $objecttmp->type_lib[$objecttmp->type]; + print ''.dol_escape_htmltag($objecttmp->number).''; + if (isModEnabled('accounting') && !empty($objecttmp->account_number)) { + $accountingaccount = new AccountingAccount($db); + $accountingaccount->fetch('', $objecttmp->account_number, 1); + print ''; + print $accountingaccount->getNomUrl(0, 1, 1, '', 0); print ''; - print ''; - if ($result->nbtodolate) { - print ''; - print ' '.$result->nbtodolate; + } else { + print ''.$objecttmp->account_number.''; + } + 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 ''; + } + print ''; + print $objecttmp->currency_code; + print ''; + if ($conciliate == -2) { + print ''.$langs->trans("CashAccount").''; + } elseif ($conciliate == -3) { + print ''.$langs->trans("Closed").''; + } elseif (empty($objecttmp->rappro)) { + print ''.$langs->trans("ConciliationDisabled").''; + } else { + $result = $objecttmp->load_board($user, $objecttmp->id); + if (is_numeric($result) && $result < 0) { + setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); + } else { + print ''; + print ''; + print $result->nbtodo; print ''; + print ''; + if ($result->nbtodolate) { + print ''; + print ' '.$result->nbtodolate; + print ''; + } } } - } - print ''; - print dol_print_date($objecttmp->date_creation, 'dayhour'); - print ''; - print dol_print_date($objecttmp->date_update, 'dayhour'); - print ''.$objecttmp->getLibStatut(5).''; - print ''; - print ''.price($solde, 0, $langs, 1, -1, -1, $objecttmp->currency_code).''; - 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($objecttmp->id, $arrayofselected)) { - $selected = 1; + print '
'; + print dol_print_date($objecttmp->date_creation, 'dayhour'); + print ''; + print dol_print_date($objecttmp->date_update, 'dayhour'); + print ''.$objecttmp->getLibStatut(5).''; + print ''; + print ''.price($solde, 0, $langs, 1, -1, -1, $objecttmp->currency_code).''; + 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($objecttmp->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
".$refcomp."'.price(abs($total_ttc))."  '.price($total_ttc)."'.price($solde).'
'; print '
'; print $formaccounting->select_account($search_accountancy_account, 'search_accountancy_account', 1, array(), 1, 1, 'maxwidth200'); @@ -475,7 +485,7 @@ if ($resql) { } // Subledger account - if ($arrayfields['subledger']['checked']) { + if (!empty($arrayfields['subledger']['checked'])) { print '
'; print '
'; print $formaccounting->select_auxaccount($search_accountancy_subledger, 'search_accountancy_subledger', 1, 'maxwidth200'); @@ -484,7 +494,7 @@ if ($resql) { } // Debit - if ($arrayfields['debit']['checked']) { + if (!empty($arrayfields['debit']['checked'])) { print '
'; print ''; print '
'.(($offset * $limit) + $i).''.$variousstatic->getNomUrl(1)."
'; + print '
'; } - } + // Output Kanban - // Label payment - if ($arrayfields['label']['checked']) { - print '
'.$variousstatic->label."
'.dol_print_date($obj->datep, 'day')."'.(($offset * $limit) + $i).''.dol_print_date($obj->datev, 'day')."'; - if ($obj->payment_code) { - print $langs->trans("PaymentTypeShort".$obj->payment_code); - print ' '; - } - print $obj->num_payment; - print ''; - if ($obj->fk_project > 0) { - $proj->fetch($obj->fk_project); - print $proj->getNomUrl(1); - } - print ''; - if ($obj->bid > 0) { - $accountstatic->id = $obj->bid; - $accountstatic->ref = $obj->bref; - $accountstatic->number = $obj->bnumber; - - if (isModEnabled('accounting')) { - $accountstatic->account_number = $obj->bank_account_number; - $accountingjournal->fetch($obj->accountancy_journal); - $accountstatic->accountancy_journal = $accountingjournal->getNomUrl(0, 1, 1, '', 1); + // Ref + if ($arrayfields['ref']['checked']) { + print ''.$variousstatic->getNomUrl(1)."'.$variousstatic->label."'.dol_print_date($obj->datep, 'day')."'.dol_print_date($obj->datev, 'day')."'; + if ($obj->payment_code) { + print $langs->trans("PaymentTypeShort".$obj->payment_code); + print ' '; + } + print $obj->num_payment; + print ''; + if ($obj->fk_project > 0) { + $proj->fetch($obj->fk_project); + print $proj->getNomUrl(1); + } + print ''; + if ($obj->bid > 0) { + $accountstatic->id = $obj->bid; + $accountstatic->ref = $obj->bref; + $accountstatic->number = $obj->bnumber; + + if (isModEnabled('accounting')) { + $accountstatic->account_number = $obj->bank_account_number; + $accountingjournal->fetch($obj->accountancy_journal); + $accountstatic->accountancy_journal = $accountingjournal->getNomUrl(0, 1, 1, '', 1); + } + + $accountstatic->label = $obj->blabel; + print $accountstatic->getNomUrl(1); + } else { + print ' '; + } + print ''.$bankline->getNomUrl(1).''.$accountingaccount->getNomUrl(0, 1, 1, '', 1).''.length_accounta($obj->subledger_account).''; + if ($obj->sens == 0) { + print ''.price($obj->amount).''; + $totalarray['val']['total_deb'] += $obj->amount; + } + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_deb'; + } + print ''; + if ($obj->sens == 1) { + print ''.price($obj->amount).''; + $totalarray['val']['total_cred'] += $obj->amount; + } + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_cred'; + } + print '
'.$bankline->getNomUrl(1).''.$accountingaccount->getNomUrl(0, 1, 1, '', 1).''.length_accounta($obj->subledger_account).''; - if ($obj->sens == 0) { - print ''.price($obj->amount).''; - $totalarray['val']['total_deb'] += $obj->amount; - } - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'total_deb'; - } - print ''; - if ($obj->sens == 1) { - print ''.price($obj->amount).''; - $totalarray['val']['total_cred'] += $obj->amount; - } - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'total_cred'; - } - print '
'; if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { - print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100', 1); + print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100'.($key == 'status' ? ' search_status onrightofpage' : ''), 1); } elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:')=== 0)) { print $object->showInputField($val, $key, (isset($search[$key]) ? $search[$key] : ''), '', '', 'search_', 'maxwidth125', 1); } elseif (!preg_match('/^(date|timestamp|datetime)/', $val['type'])) { @@ -524,76 +556,101 @@ while ($i < ($limit ? min($num, $limit) : $num)) { // Store properties in $object $object->setVarsFromFetchObj($obj); - // Show here line of result - print '
'; + print '
'; } - if (in_array($val['type'], array('timestamp'))) { - $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; - } elseif ($key == 'ref') { - $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; - } + $object->posmodule = $obj->posmodule; + $object->cash = $obj->cash; + $object->opening = $obj->opening; + $object->year_close = $obj->year_close; + $object->cheque = $obj->cheque; - 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 $object->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print '
'; + print '
'; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($object->id, $arrayofselected)) { - $selected = 1; + // 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 ($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/compta/cashcontrol/class/cashcontrol.class.php b/htdocs/compta/cashcontrol/class/cashcontrol.class.php index bc45f3b417d..8cc3c93b59c 100644 --- a/htdocs/compta/cashcontrol/class/cashcontrol.class.php +++ b/htdocs/compta/cashcontrol/class/cashcontrol.class.php @@ -469,4 +469,37 @@ class CashControl extends CommonObject return $result; } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + //var_dump($this->fields['rowid']);exit; + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1, 1) : $this->ref).''; + if (property_exists($this, 'posmodule')) { + $return .= '
'.substr($langs->trans("Module/Application"), 0, 12).' : '.$this->posmodule.''; + } + if (property_exists($this, 'year_close')) { + $return .= '
'.$langs->trans("Year").' : '.$this->year_close.''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/compta/clients.php b/htdocs/compta/clients.php index cd472c270e3..8db4516d3dd 100644 --- a/htdocs/compta/clients.php +++ b/htdocs/compta/clients.php @@ -133,7 +133,7 @@ if ($resql) { $langs->load('commercial'); - print_barre_liste($langs->trans("ListOfCustomers"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num); + print_barre_liste($langs->trans("Customers"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num); print ''; diff --git a/htdocs/compta/deplacement/index.php b/htdocs/compta/deplacement/index.php index a4a782de603..6f4613097d9 100644 --- a/htdocs/compta/deplacement/index.php +++ b/htdocs/compta/deplacement/index.php @@ -68,7 +68,7 @@ $childids[] = $user->id; //$help_url='EN:Module_Donations|FR:Module_Dons|ES:Módulo_Donaciones'; $help_url = ''; -llxHeader('', $langs->trans("ListOfFees"), $help_url); +llxHeader('', $langs->trans("TripsAndExpenses"), $help_url); diff --git a/htdocs/compta/deplacement/list.php b/htdocs/compta/deplacement/list.php index cae06774332..c1c5e5cb851 100644 --- a/htdocs/compta/deplacement/list.php +++ b/htdocs/compta/deplacement/list.php @@ -131,7 +131,7 @@ $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); - print_barre_liste($langs->trans("ListOfFees"), $page, $_SERVER["PHP_SELF"], "&socid=$socid", $sortfield, $sortorder, '', $num); + print_barre_liste($langs->trans("TripsAndExpenses"), $page, $_SERVER["PHP_SELF"], "&socid=$socid", $sortfield, $sortorder, '', $num); $i = 0; print ''."\n"; diff --git a/htdocs/compta/facture/card-rec.php b/htdocs/compta/facture/card-rec.php index aad41d10ec9..87834ffe7df 100644 --- a/htdocs/compta/facture/card-rec.php +++ b/htdocs/compta/facture/card-rec.php @@ -142,7 +142,7 @@ if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massa $massaction = ''; } -$parameters = array('socid' => $socid); +$parameters = array(); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -271,7 +271,7 @@ if (empty($reshook)) { } // Delete - if ($action == 'confirm_deleteinvoice' && $confirm == 'yes' && $user->rights->facture->supprimer) { + if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->facture->supprimer) { $object->delete($user); header("Location: ".DOL_URL_ROOT.'/compta/facture/invoicetemplate_list.php'); @@ -800,8 +800,10 @@ if (empty($reshook)) { $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); + $typeinvoice = Facture::TYPE_STANDARD; + // Check price is not lower than minimum (check is done only for standard or replacement invoices) - if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - $remise_percent / 100) < price2num($price_min)))) { + if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && (($typeinvoice == Facture::TYPE_STANDARD || $typeinvoice == Facture::TYPE_REPLACEMENT) && $price_min && ((float) price2num($pu_ht) * (1 - (float) $remise_percent / 100) < (float) price2num($price_min)))) { setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors'); $error++; } @@ -1173,8 +1175,8 @@ if ($action == 'create') { } // Confirm delete of repeatable invoice - if ($action == 'ask_deleteinvoice') { - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteRepeatableInvoice'), $langs->trans('ConfirmDeleteRepeatableInvoice'), 'confirm_deleteinvoice', '', 'no', 1); + if ($action == 'delete') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteRepeatableInvoice'), $langs->trans('ConfirmDeleteRepeatableInvoice'), 'confirm_delete', '', 'no', 1); } // Call Hook formConfirm @@ -1229,7 +1231,7 @@ if ($action == 'create') { $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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { @@ -1633,7 +1635,7 @@ if ($action == 'create') { // Show object lines if (!empty($object->lines)) { $canchangeproduct = 1; - $ret = $object->printObjectLines($action, $mysoc, $object->thirdparty, $lineid, 0); // No date selector for template invoice + $object->printObjectLines($action, $mysoc, $object->thirdparty, $lineid, 0); // No date selector for template invoice } // Form to add new line diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 39f43a1a681..ec4bfb8e0f5 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -2038,12 +2038,12 @@ if (empty($reshook)) { $prod_entry_mode = GETPOST('prod_entry_mode', 'aZ09'); if ($prod_entry_mode == 'free') { $idprod = 0; - $tva_tx = (GETPOST('tva_tx', 'alpha') ? price2num(preg_replace('/\s*\(.*\)/', '', GETPOST('tva_tx', 'alpha'))) : 0); } else { $idprod = GETPOST('idprod', 'int'); - $tva_tx = ''; } + $tva_tx = GETPOST('tva_tx', 'alpha'); + $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)) { @@ -2137,7 +2137,6 @@ if (empty($reshook)) { // Ecrase $pu par celui du produit // Ecrase $desc par celui du produit - // 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) { @@ -2157,8 +2156,8 @@ if (empty($reshook)) { $price_min_ttc = $datapriceofproduct['price_min_ttc']; $price_base_type = $datapriceofproduct['price_base_type']; - $tva_tx = $datapriceofproduct['tva_tx']; - $tva_npr = $datapriceofproduct['tva_npr']; + //$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)); @@ -2763,7 +2762,7 @@ if (empty($reshook)) { } if (!$errors) { - setEventMessages($langs->trans('Updated'), '', 'mesgs'); + setEventMessages($langs->trans('Updated'), null, 'mesgs'); header("Location: ".$_SERVER['PHP_SELF']."?id=".$id); } else { setEventMessages($langs->trans('ErrorOutingSituationInvoiceCreditNote'), array(), 'errors'); @@ -3066,6 +3065,11 @@ if ($action == 'create') { $remise_percent = (!empty($expesrc->remise_percent) ? $expesrc->remise_percent : (!empty($soc->remise_percent) ? $soc->remise_percent : 0)); $remise_absolue = (!empty($expesrc->remise_absolue) ? $expesrc->remise_absolue : (!empty($soc->remise_absolue) ? $soc->remise_absolue : 0)); + if (isModEnabled('multicurrency')) { + $currency_code = (!empty($expesrc->multicurrency_code) ? $expesrc->multicurrency_code : (!empty($soc->multicurrency_code) ? $soc->multicurrency_code : $objectsrc->multicurrency_code)); + $currency_tx = (!empty($expesrc->multicurrency_tx) ? $expesrc->multicurrency_tx : (!empty($soc->multicurrency_tx) ? $soc->multicurrency_tx : $objectsrc->multicurrency_tx)); + } + //Replicate extrafields $expesrc->fetch_optionals(); $object->array_options = $expesrc->array_options; @@ -3352,7 +3356,7 @@ if ($action == 'create') { jQuery(".checkforselect").prop("disabled", false); jQuery(".checkforselect").prop("checked", true); } - }; + } }); '; @@ -3775,7 +3779,7 @@ if ($action == 'create') { if ($soc->fetch_optionals() > 0) { $object->array_options = array_merge($object->array_options, $soc->array_options); } - }; + } print $object->showOptionals($extrafields, 'create', $parameters); } @@ -4376,7 +4380,7 @@ if ($action == 'create') { if ($action != 'classify') { $morehtmlref .= '
'.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -4673,16 +4677,16 @@ if ($action == 'create') { if ($displayWarranty) { // Retained Warranty print '
'; - print ''; - - // Num ref cheque - print ''; + $checkdepositstatic->nbcheque = $objp->nbcheque; + $checkdepositstatic->amount = $objp->amount; + $checkdepositstatic->date_bordereau = $objp->date_bordereau; - // Date - print ''; // TODO Use date hour + $account = new Account($db); + $account->fetch($objp->bid); + $checkdepositstatic->account_id = $account->getNomUrl(1); - // Bank - print ''; + } } else { - print ' '; + print ''; + + // Num ref cheque + print ''; + + // Date + print ''; // TODO Use date hour + + // Bank + print ''; + + // Number of cheques + print ''; + + // Amount + print ''; + + // Statut + print ''; + + print ''; + + print "\n"; } - print ''; - - // Number of cheques - print ''; - - // Amount - print ''; - - // Statut - print ''; - - print ''; - - print "\n"; $i++; } } else { diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php index 658f2c150f1..6db18f6aa55 100644 --- a/htdocs/compta/paiement/list.php +++ b/htdocs/compta/paiement/list.php @@ -513,6 +513,7 @@ foreach ($arrayfields as $column) { $i = 0; $totalarray = array(); +$totalarray['nbfield'] = 0; while ($i < min($num, $limit)) { $objp = $db->fetch_object($resql); @@ -620,7 +621,11 @@ while ($i < min($num, $limit)) { $totalarray['nbfield']++; } $totalarray['pos'][$checkedCount] = 'amount'; - $totalarray['val']['amount'] += $objp->amount; + if (empty($totalarray['val']['amount'])) { + $totalarray['val']['amount'] = $objp->amount; + } else { + $totalarray['val']['amount'] += $objp->amount; + } } // Status diff --git a/htdocs/compta/payment_sc/card.php b/htdocs/compta/payment_sc/card.php index 39bac75ba0c..11f7f1e454f 100644 --- a/htdocs/compta/payment_sc/card.php +++ b/htdocs/compta/payment_sc/card.php @@ -46,8 +46,6 @@ $confirm = GETPOST('confirm', 'aZ09'); if ($user->socid) { $socid = $user->socid; } -// TODO ajouter regle pour restreindre acces paiement -//$result = restrictedArea($user, 'facture', $id,''); $object = new PaymentSocialContribution($db); if ($id > 0) { @@ -57,13 +55,15 @@ if ($id > 0) { } } +$result = restrictedArea($user, 'payment_sc', $id, ''); + /* * Actions */ // Delete payment -if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->tax->charges->supprimer) { +if ($action == 'confirm_delete' && $confirm == 'yes' && $user->hasRight('tax', 'charges', 'supprimer')) { $db->begin(); $result = $object->delete($user); @@ -77,6 +77,16 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->tax->char } } +/*if ($action == 'setdatep' && GETPOST('datepday') && $user->hasRight('tax', 'charges', 'creer')) { + $datepaye = dol_mktime(GETPOST('datephour', 'int'), GETPOST('datepmin', 'int'), GETPOST('datepsec', 'int'), GETPOST('datepmonth', 'int'), GETPOST('datepday', 'int'), GETPOST('datepyear', 'int')); + $res = $object->update_date($datepaye); + if ($res === 0) { + setEventMessages($langs->trans('PaymentDateUpdateSucceeded'), null, 'mesgs'); + } else { + setEventMessages($langs->trans('PaymentDateUpdateFailed'), null, 'errors'); + } +}*/ + /* * View diff --git a/htdocs/compta/paymentbybanktransfer/index.php b/htdocs/compta/paymentbybanktransfer/index.php index ba37fde1ba5..7331aee48fa 100644 --- a/htdocs/compta/paymentbybanktransfer/index.php +++ b/htdocs/compta/paymentbybanktransfer/index.php @@ -86,7 +86,7 @@ print ''; print ''; @@ -183,7 +183,8 @@ if ($resql) { $i++; } } else { - print ''; + $titlefortab = $langs->transnoentitiesnoconv("BankTransfer"); + print ''; } print "
'; + print ''; - if ($action != 'editretainedwarranty' && $user->rights->facture->creer) { + if ($action != 'editretainedwarranty' && $user->rights->facture->creer && $object->statut == Facture::STATUS_DRAFT) { print ''; } print '
'; print $langs->trans('RetainedWarranty'); print 'id.'">'.img_edit($langs->trans('setretainedwarranty'), 1).'
'; print '
'; - if ($action == 'editretainedwarranty') { + if ($action == 'editretainedwarranty' && $object->statut == Facture::STATUS_DRAFT) { print '
'; print ''; print ''; @@ -4699,7 +4703,7 @@ if ($action == 'create') { print ''; - if ($action != 'editretainedwarrantypaymentterms' && $user->rights->facture->creer) { + if ($action != 'editretainedwarrantypaymentterms' && $user->rights->facture->creer && $object->statut == Facture::STATUS_DRAFT) { print ''; } @@ -4710,7 +4714,7 @@ if ($action == 'create') { $defaultDate = $object->date; } - if ($action == 'editretainedwarrantypaymentterms') { + if ($action == 'editretainedwarrantypaymentterms' && $object->statut == Facture::STATUS_DRAFT) { //date('Y-m-d',$object->date_lim_reglement) print ''; print ''; @@ -4734,7 +4738,7 @@ if ($action == 'create') { print '
'; print $langs->trans('PaymentConditionsShortRetainedWarranty'); print 'id.'">'.img_edit($langs->trans('setPaymentConditionsShortRetainedWarranty'), 1).'
'; - if ($action != 'editretainedwarrantydatelimit' && $user->rights->facture->creer) { + if ($action != 'editretainedwarrantydatelimit' && $user->rights->facture->creer && $object->statut == Facture::STATUS_DRAFT) { print ''; } @@ -4745,7 +4749,7 @@ if ($action == 'create') { $defaultDate = $object->date; } - if ($action == 'editretainedwarrantydatelimit') { + if ($action == 'editretainedwarrantydatelimit' && $object->statut == Facture::STATUS_DRAFT) { //date('Y-m-d',$object->date_lim_reglement) print ''; print ''; @@ -5418,7 +5422,7 @@ if ($action == 'create') { // Show object lines if (!empty($object->lines)) { - $ret = $object->printObjectLines($action, $mysoc, $soc, $lineid, 1); + $object->printObjectLines($action, $mysoc, $soc, $lineid, 1); } // Form to add new line diff --git a/htdocs/compta/facture/class/api_invoices.class.php b/htdocs/compta/facture/class/api_invoices.class.php index 4c1392e28eb..bae53bce6a8 100644 --- a/htdocs/compta/facture/class/api_invoices.class.php +++ b/htdocs/compta/facture/class/api_invoices.class.php @@ -65,9 +65,9 @@ class Invoices extends DolibarrApi * * Return an array with invoice informations * - * @param int $id ID of invoice - * @param int $contact_list 0:Return array contains all properties, 1:Return array contains just id, -1: Do not return contacts/adddesses - * @return array|mixed data without useless information + * @param int $id ID of invoice + * @param int $contact_list 0:Return array contains all properties, 1:Return array contains just id, -1: Do not return contacts/adddesses + * @return Object Object with cleaned properties * * @throws RestException */ @@ -81,9 +81,9 @@ class Invoices extends DolibarrApi * * Return an array with invoice informations * - * @param string $ref Ref of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses - * @return array|mixed data without useless information + * @param string $ref Ref of object + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses + * @return Object Object with cleaned properties * * @url GET ref/{ref} * @@ -99,9 +99,9 @@ class Invoices extends DolibarrApi * * Return an array with invoice informations * - * @param string $ref_ext External reference of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses - * @return array|mixed data without useless information + * @param string $ref_ext External reference of object + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses + * @return Object Object with cleaned properties * * @url GET ref_ext/{ref_ext} * @@ -117,11 +117,11 @@ class Invoices extends DolibarrApi * * Return an array with invoice informations * - * @param int $id ID of order - * @param string $ref Ref of object - * @param string $ref_ext External reference of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses - * @return array|mixed data without useless information + * @param int $id ID of order + * @param string $ref Ref of object + * @param string $ref_ext External reference of object + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses + * @return Object Object with cleaned properties * * @throws RestException */ @@ -325,12 +325,11 @@ class Invoices extends DolibarrApi /** * Create an invoice using an existing order. * - * * @param int $orderid Id of the order + * @return Object Object with cleaned properties * * @url POST /createfromorder/{orderid} * - * @return int * @throws RestException 400 * @throws RestException 401 * @throws RestException 404 @@ -338,7 +337,6 @@ class Invoices extends DolibarrApi */ public function createInvoiceFromOrder($orderid) { - require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; if (!DolibarrApiAccess::$user->rights->commande->lire) { @@ -368,11 +366,10 @@ class Invoices extends DolibarrApi /** * Get lines of an invoice * - * @param int $id Id of invoice + * @param int $id Id of invoice + * @return array Array of lines * * @url GET {id}/lines - * - * @return int */ public function getLines($id) { @@ -399,14 +396,13 @@ class Invoices extends DolibarrApi /** * Update a line to a given invoice * - * @param int $id Id of invoice to update - * @param int $lineid Id of line to update - * @param array $request_data InvoiceLine data + * @param int $id Id of invoice to update + * @param int $lineid Id of line to update + * @param array $request_data InvoiceLine data + * @return Object Object with cleaned properties * * @url PUT {id}/lines/{lineid} * - * @return array - * * @throws RestException 304 * @throws RestException 401 * @throws RestException 404 Invoice not found @@ -472,14 +468,13 @@ class Invoices extends DolibarrApi /** * Add a contact type of given invoice * - * @param int $id Id of invoice to update - * @param int $contactid Id of contact to add - * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER) + * @param int $id Id of invoice to update + * @param int $contactid Id of contact to add + * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER) + * @return array * * @url POST {id}/contact/{contactid}/{type} * - * @return int - * * @throws RestException 401 * @throws RestException 404 */ @@ -509,20 +504,24 @@ class Invoices extends DolibarrApi throw new RestException(500, 'Error when added the contact'); } - return $this->_cleanObjectDatas($this->invoice); + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Contact linked to the invoice' + ) + ); } /** * Delete a contact type of given invoice * - * @param int $id Id of invoice to update - * @param int $contactid Row key of the contact in the array contact_ids. - * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER). + * @param int $id Id of invoice to update + * @param int $contactid Row key of the contact in the array contact_ids. + * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER). + * @return Object Object with cleaned properties * * @url DELETE {id}/contact/{contactid}/{type} * - * @return array - * * @throws RestException 401 * @throws RestException 404 * @throws RestException 500 System error @@ -561,13 +560,12 @@ class Invoices extends DolibarrApi /** * Deletes a line of a given invoice * - * @param int $id Id of invoice - * @param int $lineid Id of the line to delete + * @param int $id Id of invoice + * @param int $lineid Id of the line to delete + * @return Object Object with cleaned properties * * @url DELETE {id}/lines/{lineid} * - * @return array - * * @throws RestException 400 * @throws RestException 401 * @throws RestException 404 @@ -575,7 +573,6 @@ class Invoices extends DolibarrApi */ public function deleteLine($id, $lineid) { - if (!DolibarrApiAccess::$user->rights->facture->creer) { throw new RestException(401); } @@ -592,9 +589,7 @@ class Invoices extends DolibarrApi throw new RestException(404, 'Invoice not found'); } - // TODO Check the lineid $lineid is a line of ojbect - - $updateRes = $this->invoice->deleteline($lineid); + $updateRes = $this->invoice->deleteline($lineid, $id); if ($updateRes > 0) { return $this->get($id); } else { @@ -605,9 +600,9 @@ class Invoices extends DolibarrApi /** * Update invoice * - * @param int $id Id of invoice to update - * @param array $request_data Datas - * @return int + * @param int $id Id of invoice to update + * @param array $request_data Datas + * @return Object|false Object with cleaned properties */ public function put($id, $request_data = null) { @@ -648,8 +643,8 @@ class Invoices extends DolibarrApi /** * Delete invoice * - * @param int $id Invoice ID - * @return array + * @param int $id Invoice ID + * @return array */ public function delete($id) { @@ -829,11 +824,10 @@ class Invoices extends DolibarrApi * * @param int $id Order ID * @param int $idwarehouse Warehouse ID + * @return Object Object with cleaned properties * * @url POST {id}/settodraft * - * @return array - * * @throws RestException 304 * @throws RestException 401 * @throws RestException 404 @@ -887,10 +881,9 @@ class Invoices extends DolibarrApi * @param int $id Invoice ID * @param int $idwarehouse Warehouse ID * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * @return Object|false Object with cleaned properties * * @url POST {id}/validate - * - * @return array */ public function validate($id, $idwarehouse = 0, $notrigger = 0) { @@ -932,11 +925,10 @@ class Invoices extends DolibarrApi * @param int $id Order ID * @param string $close_code Code filled if we classify to 'Paid completely' when payment is not complete (for escompte for example) * @param string $close_note Comment defined if we classify to 'Paid' when payment is not complete (for escompte for example) + * @return Object Object with cleaned properties * * @url POST {id}/settopaid * - * @return array An invoice object - * * @throws RestException 304 * @throws RestException 401 * @throws RestException 404 @@ -981,12 +973,11 @@ class Invoices extends DolibarrApi /** * Sets an invoice as unpaid * - * @param int $id Order ID + * @param int $id Order ID + * @return Object Object with cleaned properties * * @url POST {id}/settounpaid * - * @return array An invoice object - * * @throws RestException 304 * @throws RestException 401 * @throws RestException 404 @@ -1031,10 +1022,9 @@ class Invoices extends DolibarrApi * Get discount from invoice * * @param int $id Id of invoice + * @return Object Object with cleaned properties * * @url GET {id}/discount - * - * @return mixed */ public function getDiscount($id) { @@ -1069,10 +1059,10 @@ class Invoices extends DolibarrApi /** * Create a discount (credit available) for a credit note or a deposit. * - * @param int $id Invoice ID - * @url POST {id}/markAsCreditAvailable + * @param int $id Invoice ID + * @return Object Object with cleaned properties * - * @return array An invoice object + * @url POST {id}/markAsCreditAvailable * * @throws RestException 304 * @throws RestException 401 @@ -1241,11 +1231,10 @@ class Invoices extends DolibarrApi * * @param int $id Id of invoice * @param int $discountid Id of discount + * @return int * * @url POST {id}/usediscount/{discountid} * - * @return int - * * @throws RestException 400 * @throws RestException 401 * @throws RestException 404 @@ -1253,7 +1242,6 @@ class Invoices extends DolibarrApi */ public function useDiscount($id, $discountid) { - if (!DolibarrApiAccess::$user->rights->facture->creer) { throw new RestException(401); } @@ -1288,11 +1276,10 @@ class Invoices extends DolibarrApi * * @param int $id Id of invoice * @param int $discountid Id of a discount coming from a credit note + * @return int * * @url POST {id}/usecreditnote/{discountid} * - * @return int - * * @throws RestException 400 * @throws RestException 401 * @throws RestException 404 @@ -1300,7 +1287,6 @@ class Invoices extends DolibarrApi */ public function useCreditNote($id, $discountid) { - require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php'; if (!DolibarrApiAccess::$user->rights->facture->creer) { @@ -1333,12 +1319,11 @@ class Invoices extends DolibarrApi /** * Get list of payments of a given invoice * - * @param int $id Id of invoice + * @param int $id Id of invoice + * @return array * * @url GET {id}/payments * - * @return array - * * @throws RestException 400 * @throws RestException 401 * @throws RestException 404 @@ -1395,8 +1380,6 @@ class Invoices extends DolibarrApi */ public function addPayment($id, $datepaye, $paymentid, $closepaidinvoices, $accountid, $num_payment = '', $comment = '', $chqemetteur = '', $chqbank = '') { - global $conf; - require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; if (!DolibarrApiAccess::$user->rights->facture->creer) { @@ -1509,6 +1492,7 @@ class Invoices extends DolibarrApi * @url POST /paymentsdistributed * * @return int Payment ID + * * @throws RestException 400 * @throws RestException 401 * @throws RestException 403 @@ -1516,8 +1500,6 @@ class Invoices extends DolibarrApi */ public function addPaymentDistributed($arrayofamounts, $datepaye, $paymentid, $closepaidinvoices, $accountid, $num_payment = '', $comment = '', $chqemetteur = '', $chqbank = '', $ref_ext = '', $accepthigherpayment = false) { - global $conf; - require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; if (!DolibarrApiAccess::$user->rights->facture->creer) { @@ -1645,6 +1627,7 @@ class Invoices extends DolibarrApi * @url PUT payments/{id} * * @return array + * * @throws RestException 400 Bad parameters * @throws RestException 401 Not allowed * @throws RestException 404 Not found @@ -1708,8 +1691,8 @@ class Invoices extends DolibarrApi /** * Validate fields before create or update object * - * @param array|null $data Datas to validate - * @return array + * @param array|null $data Datas to validate + * @return array * * @throws RestException */ @@ -1733,7 +1716,7 @@ class Invoices extends DolibarrApi * * @param int $id ID of template invoice * @param int $contact_list 0:Return array contains all properties, 1:Return array contains just id, -1: Do not return contacts/adddesses - * @return array|mixed data without useless information + * @return Object Object with cleaned properties * * @url GET templates/{id} * @@ -1749,11 +1732,11 @@ class Invoices extends DolibarrApi * * Return an array with invoice informations * - * @param int $id ID of order - * @param string $ref Ref of object - * @param string $ref_ext External reference of object - * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses - * @return array|mixed data without useless information + * @param int $id ID of order + * @param string $ref Ref of object + * @param string $ref_ext External reference of object + * @param int $contact_list 0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses + * @return Object Object with cleaned properties * * @throws RestException */ diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index 3a586dfc3e5..269c5267ab3 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -169,7 +169,7 @@ class FactureRec extends CommonInvoice 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>10), 'titre' =>array('type'=>'varchar(100)', 'label'=>'Titre', 'enabled'=>1, 'showoncombobox' => 1, 'visible'=>-1, 'position'=>15), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>20, 'index'=>1), - 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>25), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'isModEnabled("societe")', 'visible'=>-1, 'notnull'=>1, 'position'=>25), 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'position'=>30), //'amount' =>array('type'=>'double(24,8)', 'label'=>'Amount', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>35), 'remise' =>array('type'=>'double', 'label'=>'Remise', 'enabled'=>1, 'visible'=>-1, 'position'=>40), @@ -188,13 +188,12 @@ class FactureRec extends CommonInvoice 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>105), 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>110), 'modelpdf' =>array('type'=>'varchar(255)', 'label'=>'Modelpdf', 'enabled'=>1, 'visible'=>-1, 'position'=>115), - 'date_last_gen' =>array('type'=>'varchar(7)', 'label'=>'Last gen', 'enabled'=>1, 'visible'=>-1, 'position'=>120), - 'unit_frequency' =>array('type'=>'varchar(2)', 'label'=>'Unit frequency', 'enabled'=>1, 'visible'=>-1, 'position'=>125), 'date_when' =>array('type'=>'datetime', 'label'=>'Date when', 'enabled'=>1, 'visible'=>-1, 'position'=>130), 'date_last_gen' =>array('type'=>'datetime', 'label'=>'Date last gen', 'enabled'=>1, 'visible'=>-1, 'position'=>135), 'nb_gen_done' =>array('type'=>'integer', 'label'=>'Nb gen done', 'enabled'=>1, 'visible'=>-1, 'position'=>140), 'nb_gen_max' =>array('type'=>'integer', 'label'=>'Nb gen max', 'enabled'=>1, 'visible'=>-1, 'position'=>145), 'frequency' =>array('type'=>'integer', 'label'=>'Frequency', 'enabled'=>1, 'visible'=>-1, 'position'=>150), + 'unit_frequency' =>array('type'=>'varchar(2)', 'label'=>'UnitFrequency', 'enabled'=>1, 'visible'=>-1, 'position'=>152), 'usenewprice' =>array('type'=>'integer', 'label'=>'UseNewPrice', 'enabled'=>1, 'visible'=>0, 'position'=>155), 'revenuestamp' =>array('type'=>'double(24,8)', 'label'=>'RevenueStamp', 'enabled'=>1, 'visible'=>-1, 'position'=>160, 'isameasure'=>1), 'auto_validate' =>array('type'=>'integer', 'label'=>'Auto validate', 'enabled'=>1, 'visible'=>-1, 'position'=>165), @@ -1771,35 +1770,35 @@ class FactureRec extends CommonInvoice /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'facture_rec' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** * Function used to replace a product id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old product id - * @param int $dest_id New product id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old product id + * @param int $dest_id New product id + * @return bool */ - public static function replaceProduct(DoliDB $db, $origin_id, $dest_id) + public static function replaceProduct(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'facturedet_rec' ); - return CommonObject::commonReplaceProduct($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceProduct($dbs, $origin_id, $dest_id, $tables); } /** diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 87d28de8756..561ebf3e9ed 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -1330,6 +1330,8 @@ class Facture extends CommonInvoice $action = ''; $reshook = $hookmanager->executeHooks('createFrom', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { + $this->errors += $hookmanager->errors; + $this->error = $hookmanager->error; $error++; } } @@ -1463,6 +1465,8 @@ class Facture extends CommonInvoice $action = ''; $reshook = $hookmanager->executeHooks('createFrom', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { + $this->errors += $hookmanager->errors; + $this->error = $hookmanager->error; $error++; } @@ -1956,14 +1960,14 @@ class Facture extends CommonInvoice $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON f.fk_incoterms = i.rowid'; if ($rowid) { - $sql .= " WHERE f.rowid=".((int) $rowid); + $sql .= " WHERE f.rowid = ".((int) $rowid); } else { $sql .= ' WHERE f.entity IN ('.getEntity('invoice').')'; // Don't use entity if you use rowid if ($ref) { - $sql .= " AND f.ref='".$this->db->escape($ref)."'"; + $sql .= " AND f.ref = '".$this->db->escape($ref)."'"; } if ($ref_ext) { - $sql .= " AND f.ref_ext='".$this->db->escape($ref_ext)."'"; + $sql .= " AND f.ref_ext = '".$this->db->escape($ref_ext)."'"; } } @@ -4078,7 +4082,7 @@ class Facture extends CommonInvoice * * @param int $idline id of line to check * @param float $situation_percent progress percentage need to be test - * @return false if KO, true if OK + * @return bool false if KO, true if OK */ public function checkProgressLine($idline, $situation_percent) { @@ -4097,7 +4101,7 @@ class Facture extends CommonInvoice if ($obj === null) { return true; } else { - return $situation_percent < $obj->situation_percent; + return ($situation_percent < $obj->situation_percent); } } @@ -4148,9 +4152,10 @@ class Facture extends CommonInvoice * Delete line in database * * @param int $rowid Id of line to delete + * @param int $id Id of object (for a check) * @return int <0 if KO, >0 if OK */ - public function deleteline($rowid) + public function deleteline($rowid, $id = 0) { global $user; @@ -4161,6 +4166,22 @@ class Facture extends CommonInvoice return -1; } + $line = new FactureLigne($this->db); + + $line->context = $this->context; + + // Load line + $result = $line->fetch($rowid); + if (!($result > 0)) { + dol_print_error($this->db, $line->error, $line->errors); + return -1; + } + + if ($id > 0 && $line->fk_facture != $id) { + $this->error = 'ErrorLineIDDoesNotMatchWithObjectID'; + return -1; + } + $this->db->begin(); // Free discount linked to invoice line @@ -4176,15 +4197,9 @@ class Facture extends CommonInvoice return -1; } - $line = new FactureLigne($this->db); - - $line->context = $this->context; - - // For triggers - $result = $line->fetch($rowid); - if (!($result > 0)) { - dol_print_error($this->db, $line->error, $line->errors); - } + // Memorize previous line for triggers + $staticline = clone $line; + $line->oldline = $staticline; if ($line->delete($user) > 0) { $result = $this->update_price(1); @@ -4213,7 +4228,7 @@ class Facture extends CommonInvoice * @param User $user User that set discount * @param double $remise Discount * @param int $notrigger 1=Does not execute triggers, 0= execute triggers - * @return int <0 if ko, >0 if ok + * @return int <0 if KO, >0 if OK */ public function set_remise($user, $remise, $notrigger = 0) { @@ -4228,7 +4243,7 @@ class Facture extends CommonInvoice * @param User $user User that set discount * @param double $remise Discount * @param int $notrigger 1=Does not execute triggers, 0= execute triggers - * @return int <0 if ko, >0 if ok + * @return int <0 if KO, >0 if OK */ public function setDiscount($user, $remise, $notrigger = 0) { @@ -4280,6 +4295,8 @@ class Facture extends CommonInvoice return -1 * $error; } } + + return 0; } @@ -4345,6 +4362,8 @@ class Facture extends CommonInvoice return -1 * $error; } } + + return 0; } /** @@ -4636,8 +4655,8 @@ class Facture extends CommonInvoice * Invoices matching the following rules are returned: * (validated + payment on process) or classified (payed completely or payed partiely) + not already replaced + not already a credit note * - * @param int $socid Id thirdparty - * @return array Array of invoices ($id => array('ref'=>,'paymentornot'=>,'status'=>,'paye'=>) + * @param int $socid Id thirdparty + * @return array|int Array of invoices ($id => array('ref'=>,'paymentornot'=>,'status'=>,'paye'=>) */ public function list_qualified_avoir_invoices($socid = 0) { @@ -4711,8 +4730,8 @@ class Facture extends CommonInvoice /** * Load indicators for dashboard (this->nbtodo and this->nbtodolate) * - * @param User $user Object user - * @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK + * @param User $user Object user + * @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK */ public function load_board($user) { @@ -5190,18 +5209,18 @@ class Facture extends CommonInvoice /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old third-party id - * @param int $dest_id New third-party id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'facture' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -5731,6 +5750,40 @@ class Facture extends CommonInvoice } else { dol_print_error($this->db); } + + return array(); + } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + //$return .= ''; // Can be image + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + if (property_exists($this, 'socid')) { + $return .= '
'.$this->socid.''; + } + if (property_exists($this, 'fk_user_author')) { + $return .= '
'.$this->fk_user_author.''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; } } @@ -6264,7 +6317,7 @@ class FactureLigne extends CommonInvoiceLine $sql .= ", total_localtax2=".price2num($this->total_localtax2); } $sql .= ", fk_product_fournisseur_price=".(!empty($this->fk_fournprice) ? "'".$this->db->escape($this->fk_fournprice)."'" : "null"); - $sql .= ", buy_price_ht=".(($this->pa_ht || $this->pa_ht === 0 || $this->pa_ht === '0') ? price2num($this->pa_ht) : "null"); // $this->pa_ht should always be defined (set to 0 or to sell price depending on option) + $sql .= ", buy_price_ht=".(($this->pa_ht || (string) $this->pa_ht === '0') ? price2num($this->pa_ht) : "null"); // $this->pa_ht should always be defined (set to 0 or to sell price depending on option) $sql .= ", fk_parent_line=".($this->fk_parent_line > 0 ? $this->fk_parent_line : "null"); if (!empty($this->rang)) { $sql .= ", rang=".((int) $this->rang); @@ -6375,11 +6428,11 @@ class FactureLigne extends CommonInvoiceLine // Update line in database $sql = "UPDATE ".MAIN_DB_PREFIX."facturedet SET"; - $sql .= " total_ht=".price2num($this->total_ht).""; - $sql .= ",total_tva=".price2num($this->total_tva).""; - $sql .= ",total_localtax1=".price2num($this->total_localtax1).""; - $sql .= ",total_localtax2=".price2num($this->total_localtax2).""; - $sql .= ",total_ttc=".price2num($this->total_ttc).""; + $sql .= " total_ht=".price2num($this->total_ht); + $sql .= ",total_tva=".price2num($this->total_tva); + $sql .= ",total_localtax1=".price2num($this->total_localtax1); + $sql .= ",total_localtax2=".price2num($this->total_localtax2); + $sql .= ",total_ttc=".price2num($this->total_ttc); $sql .= " WHERE rowid = ".((int) $this->rowid); dol_syslog(get_class($this)."::update_total", LOG_DEBUG); diff --git a/htdocs/compta/facture/class/paymentterm.class.php b/htdocs/compta/facture/class/paymentterm.class.php index 3ad533b6d3b..4da9dbb1559 100644 --- a/htdocs/compta/facture/class/paymentterm.class.php +++ b/htdocs/compta/facture/class/paymentterm.class.php @@ -137,7 +137,7 @@ class PaymentTerm // extends CommonObject $sql .= " ".(!isset($this->libelle_facture) ? 'NULL' : "'".$this->db->escape($this->libelle_facture)."'").","; $sql .= " ".(!isset($this->type_cdr) ? 'NULL' : "'".$this->db->escape($this->type_cdr)."'").","; $sql .= " ".(!isset($this->nbjour) ? 'NULL' : "'".$this->db->escape($this->nbjour)."'").","; - $sql .= " ".(!isset($this->decalage) ? 'NULL' : "'".$this->db->escape($this->decalage)."'").""; + $sql .= " ".(!isset($this->decalage) ? 'NULL' : "'".$this->db->escape($this->decalage)."'"); $sql .= ")"; $this->db->begin(); @@ -316,7 +316,7 @@ class PaymentTerm // extends CommonObject $sql .= " libelle_facture=".(isset($this->libelle_facture) ? "'".$this->db->escape($this->libelle_facture)."'" : "null").","; $sql .= " type_cdr=".(isset($this->type_cdr) ? $this->type_cdr : "null").","; $sql .= " nbjour=".(isset($this->nbjour) ? $this->nbjour : "null").","; - $sql .= " decalage=".(isset($this->decalage) ? $this->decalage : "null").""; + $sql .= " decalage=".(isset($this->decalage) ? $this->decalage : "null"); $sql .= " WHERE rowid = ".((int) $this->id); $this->db->begin(); diff --git a/htdocs/compta/facture/contact.php b/htdocs/compta/facture/contact.php index b367301911d..2548284f97f 100644 --- a/htdocs/compta/facture/contact.php +++ b/htdocs/compta/facture/contact.php @@ -148,7 +148,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/compta/facture/document.php b/htdocs/compta/facture/document.php index 5cec55e2439..526bbe02068 100644 --- a/htdocs/compta/facture/document.php +++ b/htdocs/compta/facture/document.php @@ -152,7 +152,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/compta/facture/info.php b/htdocs/compta/facture/info.php index 1ea28b295c3..0619d629385 100644 --- a/htdocs/compta/facture/info.php +++ b/htdocs/compta/facture/info.php @@ -108,7 +108,7 @@ if (isModEnabled('project')) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/compta/facture/invoicetemplate_list.php b/htdocs/compta/facture/invoicetemplate_list.php index ae9e4c2959b..0471b97c038 100644 --- a/htdocs/compta/facture/invoicetemplate_list.php +++ b/htdocs/compta/facture/invoicetemplate_list.php @@ -94,6 +94,7 @@ $search_date_when_end = dol_mktime(23, 59, 59, $search_date_when_endmonth, $sear $search_recurring = GETPOST('search_recurring', 'int'); $search_frequency = GETPOST('search_frequency', 'alpha'); $search_unit_frequency = GETPOST('search_unit_frequency', 'alpha'); +$search_nb_gen_done = GETPOST('search_nb_gen_done', 'aplha'); $search_status = GETPOST('search_status', 'int'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; @@ -236,6 +237,7 @@ if (empty($reshook)) { $search_recurring = ''; $search_frequency = ''; $search_unit_frequency = ''; + $search_nb_gen_done = ''; $search_status = ''; $search_array_options = array(); } @@ -334,7 +336,11 @@ if ($search_frequency != '') { $sql .= natural_search('f.frequency', $search_frequency, 1); } if ($search_unit_frequency != '') { - $sql .= ' AND f.frequency > 0'.natural_search('f.unit_frequency', $search_unit_frequency); + $sql .= ' AND f.frequency > 0'; + $sql .= natural_search('f.unit_frequency', $search_unit_frequency); +} +if ($search_nb_gen_done != '') { + $sql .= natural_search("f.nb_gen_done", $search_nb_gen_done, 1); } if ($search_status != '' && $search_status >= -1) { if ($search_status == 0) { @@ -458,6 +464,9 @@ if ($resql) { if ($search_unit_frequency != '') { $param .= '&search_unit_frequency='.urlencode($search_unit_frequency); } + if ($search_nb_gen_done != '') { + $param .= '&search_nb_gen_done='.urlencode($search_nb_gen_done); + } if ($search_status != '') { $param .= '&search_status='.urlencode($search_status); } @@ -561,6 +570,7 @@ if ($resql) { if (!empty($arrayfields['f.nb_gen_done']['checked'])) { // Nb generation print ''; } // Date invoice @@ -728,7 +738,7 @@ if ($resql) { } } if (!empty($arrayfields['s.nom']['checked'])) { - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index 987c29bae70..0b5903c54c4 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -75,6 +75,7 @@ $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $optioncss = GETPOST('optioncss', 'alpha'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'invoicelist'; +$mode = GETPOST('mode', 'alpha'); if ($contextpage == 'poslist') { $optioncss = 'print'; @@ -299,7 +300,7 @@ if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massa $massaction = ''; } -$parameters = array('socid'=>$socid); +$parameters = array('socid'=>$socid, 'arrayfields'=>&$arrayfields); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -376,9 +377,9 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter', if (empty($reshook)) { $objectclass = 'Facture'; $objectlabel = 'Invoices'; - $permissiontoread = $user->rights->facture->lire; - $permissiontoadd = $user->rights->facture->creer; - $permissiontodelete = $user->rights->facture->supprimer; + $permissiontoread = $user->hasRight("facture", "lire"); + $permissiontoadd = $user->hasRight("facture", "creer"); + $permissiontodelete = $user->hasRight("facture", "supprimer"); $uploaddir = $conf->facture->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -558,6 +559,9 @@ $companystatic = new Societe($db); $companyparent = new Societe($db); $company_url_list = array(); +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $sql = 'SELECT'; if ($sall || $search_user > 0) { $sql = 'SELECT DISTINCT'; @@ -670,11 +674,15 @@ if ($search_project_ref) { if ($search_project) { $sql .= natural_search('p.title', $search_project); } -if ($search_company) { - $sql .= natural_search('s.nom', $search_company); -} -if ($search_company_alias) { - $sql .= natural_search('s.name_alias', $search_company_alias); +if (empty($arrayfields['s.name_alias']['checked']) && $search_company) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_company); +} else { + if ($search_company) { + $sql .= natural_search('s.nom', $search_company); + } + if ($search_company_alias) { + $sql .= natural_search('s.name_alias', $search_company_alias); + } } if ($search_parent_name) { $sql .= natural_search('s2.nom', $search_parent_name); @@ -836,7 +844,7 @@ if (!empty($searchCategoryProductList)) { } } } -$searchCategoryCustomerList = $search_categ_cus ? array($search_categ_cus) : array();; +$searchCategoryCustomerList = $search_categ_cus ? array($search_categ_cus) : array(); $searchCategoryCustomerOperator = 0; // Search for tag/category ($searchCategoryCustomerList is an array of ID) if (!empty($searchCategoryCustomerList)) { @@ -967,6 +975,9 @@ if ($resql) { } $param = '&socid='.urlencode($socid); + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -1178,7 +1189,10 @@ if ($resql) { if (!empty($socid)) { $url .= '&socid='.$socid; } - $newcardbutton = dolGetButtonTitle($langs->trans('NewBill'), '', 'fa fa-plus-circle', $url, '', $user->rights->facture->creer); + $newcardbutton = ''; + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton = dolGetButtonTitle($langs->trans('NewBill'), '', 'fa fa-plus-circle', $url, '', $user->hasRight("facture", "creer")); } $i = 0; @@ -1197,6 +1211,7 @@ if ($resql) { print ''; print ''; print ''; + print ''; print_barre_liste($langs->trans('BillsCustomers').' '.($socid > 0 ? ' '.$soc->name : ''), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'bill', 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -1230,7 +1245,7 @@ if ($resql) { // If the user can view prospects other than his' $moreforfilter = ''; - if ($user->rights->user->user->lire) { + if ($user->hasRight("user", "user", "lire")) { $langs->load("commercial"); $moreforfilter .= '
'; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); @@ -1238,14 +1253,14 @@ if ($resql) { $moreforfilter .= '
'; } // If the user can view prospects other than his' - if ($user->rights->user->user->lire) { + if ($user->hasRight("user", "user", "lire")) { $moreforfilter .= '
'; $tmptitle = $langs->trans('LinkedToSpecificUsers'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth250'); $moreforfilter .= '
'; } // Filter on product tags - if (isModEnabled('categorie') && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { + if (isModEnabled('categorie') && $user->hasRight("categorie", "lire") && ($user->hasRight("produit", "lire") || $user->hasRight("service", "lire"))) { include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
'; $tmptitle = $langs->trans('IncludingProductWithTag'); @@ -1253,7 +1268,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, 'maxwidth250', 1); $moreforfilter .= '
'; } - if (isModEnabled('categorie') && $user->rights->categorie->lire) { + if (isModEnabled('categorie') && $user->hasRight("categorie", "lire")) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
'; $tmptitle = $langs->trans('CustomersProspectsCategoriesShort'); @@ -1583,9 +1598,9 @@ if ($resql) { } // Status if (!empty($arrayfields['f.fk_statut']['checked'])) { - print '
'; } // Action column @@ -1772,6 +1787,7 @@ if ($resql) { $totalarray = array(); $totalarray['nbfield'] = 0; $totalarray['val'] = array(); + $totalarray['val']['f.total_tva'] = 0; $totalarray['val']['f.total_ht'] = 0; $totalarray['val']['f.total_ttc'] = 0; @@ -1867,7 +1883,7 @@ if ($resql) { $remaintopay = 0; $multicurrency_remaintopay = 0; } - if ($facturestatic->type == Facture::TYPE_CREDIT_NOTE && $obj->paye == 1) { // If credit note closed, we take into account the amount not yet consummed + if ($facturestatic->type == Facture::TYPE_CREDIT_NOTE && $obj->paye == 1) { // If credit note closed, we take into account the amount not yet consumed $remaincreditnote = $discount->getAvailableDiscounts($companystatic, '', 'rc.fk_facture_source='.$facturestatic->id); $remaintopay = -$remaincreditnote; $totalpay = price2num($facturestatic->total_ttc - $remaintopay); @@ -1886,645 +1902,660 @@ if ($resql) { $total_margin += $marginInfo['total_margin']; } - print 'ref)); - print 'parent.place=\''.$place.'\''; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + } + } else { + print 'ref)); + print 'parent.place=\''.$place.'\''; } - print ''; + print '});"'; } - print ''; - } + print '>'; - // No - if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { - print ''; - } - // Ref - if (!empty($arrayfields['f.ref']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Customer ref - if (!empty($arrayfields['f.ref_client']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Type - if (!empty($arrayfields['f.type']['checked'])) { - print '"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date - if (!empty($arrayfields['f.datef']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date - if (!empty($arrayfields['f.date_valid']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date limit - if (!empty($arrayfields['f.date_lim_reglement']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Project ref - if (!empty($arrayfields['p.ref']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Project title - if (!empty($arrayfields['p.title']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Third party - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Alias - if (!empty($arrayfields['s.name_alias']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Parent company - if (!empty($arrayfields['s2.nom']['checked'])) { - print ''; + } + + // No + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { + print ''; + } + + // Ref + if (!empty($arrayfields['f.ref']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; } } - print ""; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type ent - if (!empty($arrayfields['typent.code']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Staff - if (!empty($arrayfields['staff.code']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Payment mode - if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { - $s = $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1, 0, '', 1); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Payment terms - if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { - $s = $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', -1, -1, 1); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Module Source - if (!empty($arrayfields['f.module_source']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // POS Terminal - if (!empty($arrayfields['f.pos_source']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Amount HT - if (!empty($arrayfields['f.total_ht']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ht'; - } - $totalarray['val']['f.total_ht'] += $obj->total_ht; - } - // Amount VAT - if (!empty($arrayfields['f.total_tva']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_tva'; - } - $totalarray['val']['f.total_tva'] += $obj->total_tva; - } - // Amount LocalTax1 - if (!empty($arrayfields['f.total_localtax1']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax1'; - } - $totalarray['val']['f.total_localtax1'] += $obj->total_localtax1; - } - // Amount LocalTax2 - if (!empty($arrayfields['f.total_localtax2']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax2'; - } - $totalarray['val']['f.total_localtax2'] += $obj->total_localtax2; - } - // Amount TTC - if (!empty($arrayfields['f.total_ttc']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ttc'; - } - $totalarray['val']['f.total_ttc'] += $obj->total_ttc; - } - - $userstatic->id = $obj->fk_user_author; - $userstatic->login = $obj->login; - $userstatic->lastname = $obj->lastname; - $userstatic->firstname = $obj->firstname; - $userstatic->email = $obj->user_email; - $userstatic->statut = $obj->user_statut; - $userstatic->entity = $obj->entity; - $userstatic->photo = $obj->photo; - $userstatic->office_phone = $obj->office_phone; - $userstatic->office_fax = $obj->office_fax; - $userstatic->user_mobile = $obj->user_mobile; - $userstatic->job = $obj->job; - $userstatic->gender = $obj->gender; - - // Author - if (!empty($arrayfields['u.login']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['sale_representative']['checked'])) { - // Sales representatives - print ''; + if (!$i) { + $totalarray['nbfield']++; } - $nbofsalesrepresentative = count($listsalesrepresentatives); - if ($nbofsalesrepresentative > 6) { - // We print only number - print $nbofsalesrepresentative; - } elseif ($nbofsalesrepresentative > 0) { - $j = 0; - foreach ($listsalesrepresentatives as $val) { - $userstatic->id = $val['id']; - $userstatic->lastname = $val['lastname']; - $userstatic->firstname = $val['firstname']; - $userstatic->email = $val['email']; - $userstatic->statut = $val['statut']; - $userstatic->entity = $val['entity']; - $userstatic->photo = $val['photo']; - $userstatic->login = $val['login']; - $userstatic->office_phone = $val['office_phone']; - $userstatic->office_fax = $val['office_fax']; - $userstatic->user_mobile = $val['user_mobile']; - $userstatic->job = $val['job']; - $userstatic->gender = $val['gender']; - //print '
': - print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); - $j++; - if ($j < $nbofsalesrepresentative) { - print ' '; + } + + // Type + if (!empty($arrayfields['f.type']['checked'])) { + print '
"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date + if (!empty($arrayfields['f.datef']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date + if (!empty($arrayfields['f.date_valid']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date limit + if (!empty($arrayfields['f.date_lim_reglement']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project ref + if (!empty($arrayfields['p.ref']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project title + if (!empty($arrayfields['p.title']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Third party + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Parent company + if (!empty($arrayfields['s2.nom']['checked'])) { + print '"; + if (!$i) { + $totalarray['nbfield']++; + } } - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Staff + if (!empty($arrayfields['staff.code']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - if (!empty($arrayfields['f.retained_warranty']['checked'])) { - print ''; - } + // Payment mode + if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { + $s = $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1, 0, '', 1); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } - if (!empty($arrayfields['dynamount_payed']['checked'])) { - print ''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; + // Payment terms + if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { + $s = $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', -1, -1, 1); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'totalam'; - } - $totalarray['val']['totalam'] += $totalpay; - } - // Pending amount - if (!empty($arrayfields['rtp']['checked'])) { - print ''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; + // Module Source + if (!empty($arrayfields['f.module_source']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'rtp'; - } - $totalarray['val']['rtp'] += $remaintopay; - } + // POS Terminal + if (!empty($arrayfields['f.pos_source']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } - // Currency - if (!empty($arrayfields['f.multicurrency_code']['checked'])) { - print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ht'; + } + $totalarray['val']['f.total_ht'] += $obj->total_ht; } - print "\n"; - if (!$i) { - $totalarray['nbfield']++; + // Amount VAT + if (!empty($arrayfields['f.total_tva']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_tva'; + } + $totalarray['val']['f.total_tva'] += $obj->total_tva; + } + // Amount LocalTax1 + if (!empty($arrayfields['f.total_localtax1']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax1'; + } + $totalarray['val']['f.total_localtax1'] += $obj->total_localtax1; + } + // Amount LocalTax2 + if (!empty($arrayfields['f.total_localtax2']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax2'; + } + $totalarray['val']['f.total_localtax2'] += $obj->total_localtax2; + } + // Amount TTC + if (!empty($arrayfields['f.total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ttc'; + } + $totalarray['val']['f.total_ttc'] += $obj->total_ttc; } - } - // Currency rate - if (!empty($arrayfields['f.multicurrency_tx']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount HT - if (!empty($arrayfields['f.multicurrency_total_ht']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount VAT - if (!empty($arrayfields['f.multicurrency_total_vat']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount TTC - if (!empty($arrayfields['f.multicurrency_total_ttc']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['multicurrency_dynamount_payed']['checked'])) { - print ''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; - } - } + $userstatic->id = $obj->fk_user_author; + $userstatic->login = $obj->login; + $userstatic->lastname = $obj->lastname; + $userstatic->firstname = $obj->firstname; + $userstatic->email = $obj->user_email; + $userstatic->statut = $obj->user_statut; + $userstatic->entity = $obj->entity; + $userstatic->photo = $obj->photo; + $userstatic->office_phone = $obj->office_phone; + $userstatic->office_fax = $obj->office_fax; + $userstatic->user_mobile = $obj->user_mobile; + $userstatic->job = $obj->job; + $userstatic->gender = $obj->gender; - // Pending amount - if (!empty($arrayfields['multicurrency_rtp']['checked'])) { - print ''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Total buying or cost price - if (!empty($arrayfields['total_pa']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Total margin - if (!empty($arrayfields['total_margin']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'total_margin'; - } - $totalarray['val']['total_margin'] += $marginInfo['total_margin']; - } - // Total margin rate - if (!empty($arrayfields['total_margin_rate']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Total mark rate - if (!empty($arrayfields['total_mark_rate']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; - } - if ($i >= $imaxinloop - 1) { - if (!empty($total_ht)) { - $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); + // Author + if (!empty($arrayfields['u.login']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; } } - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Date creation - if (!empty($arrayfields['f.datec']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date modification - if (!empty($arrayfields['f.tms']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date closing - if (!empty($arrayfields['f.date_closing']['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']++; - } - } - // Template Invoice - if (!empty($arrayfields['f.fk_fac_rec_source']['checked'])) { - print ''; + if (!$i) { + $totalarray['nbfield']++; } } - print ''; + + if (!empty($arrayfields['f.retained_warranty']['checked'])) { + print ''; + } + + if (!empty($arrayfields['dynamount_payed']['checked'])) { + print ''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'totalam'; + } + $totalarray['val']['totalam'] += $totalpay; + } + + // Pending amount + if (!empty($arrayfields['rtp']['checked'])) { + print ''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'rtp'; + } + $totalarray['val']['rtp'] += $remaintopay; + } + + + // Currency + if (!empty($arrayfields['f.multicurrency_code']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Currency rate + if (!empty($arrayfields['f.multicurrency_tx']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['f.multicurrency_total_ht']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount VAT + if (!empty($arrayfields['f.multicurrency_total_vat']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount TTC + if (!empty($arrayfields['f.multicurrency_total_ttc']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['multicurrency_dynamount_payed']['checked'])) { + print ''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Pending amount + if (!empty($arrayfields['multicurrency_rtp']['checked'])) { + print ''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Total buying or cost price + if (!empty($arrayfields['total_pa']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Total margin + if (!empty($arrayfields['total_margin']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_margin'; + } + $totalarray['val']['total_margin'] += $marginInfo['total_margin']; + } + // Total margin rate + if (!empty($arrayfields['total_margin_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Total mark rate + if (!empty($arrayfields['total_mark_rate']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate'; + } + if ($i >= $imaxinloop - 1) { + if (!empty($total_ht)) { + $totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT'); + } else { + $totalarray['val']['total_mark_rate'] = ''; + } + } + } + + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (!empty($arrayfields['f.datec']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date modification + if (!empty($arrayfields['f.tms']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date closing + if (!empty($arrayfields['f.date_closing']['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']++; + } + } + // Template Invoice + if (!empty($arrayfields['f.fk_fac_rec_source']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['f.fk_statut']['checked'])) { + print '"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // 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 (!$i) { $totalarray['nbfield']++; } + print "\n"; } - // Status - if (!empty($arrayfields['f.fk_statut']['checked'])) { - print '"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // 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 (!$i) { - $totalarray['nbfield']++; - } - print "\n"; - $i++; } @@ -2566,8 +2597,8 @@ if ($resql) { $urlsource .= str_replace('&', '&', $param); $filedir = $diroutputmassaction; - $genallowed = $user->rights->facture->lire; - $delallowed = $user->rights->facture->creer; + $genallowed = $user->hasRight("facture", "lire"); + $delallowed = $user->hasRight("facture", "creer"); $title = ''; print $formfile->showdocuments('massfilesarea_invoices', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); diff --git a/htdocs/compta/facture/note.php b/htdocs/compta/facture/note.php index af08c6163e2..40f8b969fac 100644 --- a/htdocs/compta/facture/note.php +++ b/htdocs/compta/facture/note.php @@ -130,7 +130,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/compta/facture/prelevement.php b/htdocs/compta/facture/prelevement.php index 5664c2e3f54..790dc9e26ca 100644 --- a/htdocs/compta/facture/prelevement.php +++ b/htdocs/compta/facture/prelevement.php @@ -369,13 +369,13 @@ if ($object->id > 0) { // Project if (isModEnabled('project')) { $langs->load("projects"); - $morehtmlref .= '
'.$langs->trans('Project').' '; + $morehtmlref .= '
'; if (0) { $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -742,8 +742,8 @@ if ($object->id > 0) { print ''; print ''; - if (!empty($conf->global->STRIPE_SEPA_DIRECT_DEBIT_SHOW_BUTTON)) { - // TODO Replace this with a checkbox for each payment mode: "Send request to PaymentModeManager immediatly..." + if (getDolGlobalString('STRIPE_SEPA_DIRECT_DEBIT_SHOW_OLD_BUTTON')) { // This is hidden, prefer to use mode enabled with STRIPE_SEPA_DIRECT_DEBIT + // TODO Replace this with a checkbox for each payment mode: "Send request to XXX immediatly..." print "
"; //add stripe sepa button $buttonlabel = $langs->trans("MakeWithdrawRequestStripe"); @@ -781,14 +781,14 @@ if ($object->id > 0) { if ($type == 'bank-transfer') { print '
'.$langs->trans("DoCreditTransferBeforePayments"); - if (isModEnabled('stripe')) { + if (isModEnabled('stripe') && getDolGlobalString('STRIPE_SEPA_DIRECT_DEBIT')) { print ' '.$langs->trans("DoStandingOrdersBeforePayments2"); } print ' '.$langs->trans("DoStandingOrdersBeforePayments3"); print '

'; } else { print '
'.$langs->trans("DoStandingOrdersBeforePayments"); - if (isModEnabled('stripe')) { + if (isModEnabled('stripe') && getDolGlobalString('STRIPE_SEPA_DIRECT_DEBIT')) { print ' '.$langs->trans("DoStandingOrdersBeforePayments2"); } print ' '.$langs->trans("DoStandingOrdersBeforePayments3"); @@ -807,13 +807,13 @@ if ($object->id > 0) { print '
'; print ''; print ''; - print ''; if ($type == 'bank-transfer') { print ''; } else { print ''; } print ''; + print ''; print ''; $sql = "SELECT pfd.rowid, pfd.traite, pfd.date_demande as date_demande,"; @@ -864,9 +864,10 @@ if ($object->id > 0) { // Amount print ''; - // Ref of SEPA request + // Date process print ''; + // Link to make payment now print ''; + // print ''; + // Actions print ''; + // Date print '\n"; + // User print ''; + // Amount print ''; + // Date process + print '\n"; + + // Link to payment request done print '\n"; + // print ''; - print '\n"; - + // Actions print ''; print "\n"; diff --git a/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php b/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php index 6a16f4fa641..ca782052ff4 100644 --- a/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php +++ b/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php @@ -67,7 +67,7 @@ foreach ($linkedObjectBlock as $key => $objectlink) { break; } print ''; - print ''; + print ''; print ''; print ''; print ' - +
'; print $langs->trans('RetainedWarrantyDateLimit'); print 'id.'">'.img_edit($langs->trans('setretainedwarrantyDateLimit'), 1).''; + print ''; print ''.$companystatic->getNomUrl(1, 'customer').''.$companystatic->getNomUrl(1, 'customer').''; + print ''; $liststatus = array('0'=>$langs->trans("BillShortStatusDraft"), '0,1'=>$langs->trans("BillShortStatusDraft").'+'.$langs->trans("BillShortStatusNotPaid"), '1'=>$langs->trans("BillShortStatusNotPaid"), '1,2'=>$langs->trans("BillShortStatusNotPaid").'+'.$langs->trans("BillShortStatusPaid"), '2'=>$langs->trans("BillShortStatusPaid"), '3'=>$langs->trans("BillShortStatusCanceled")); - print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'width100 onrightofpage', 1); + print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1); print '
'; + print '
'; } - print '});"'; - } - print '>'; - - - // Action column - 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->id, $arrayofselected)) { - $selected = 1; + // Output Kanban + $facturestatic->socid = $companystatic->getNomUrl(1, 'company', 15); + $userstatic->fetch($obj->fk_user_author); + $facturestatic->fk_user_author = $userstatic->getNomUrl(1); + print $facturestatic->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print ''; + print '
'.(($offset * $limit) + $i).''; - - print ''; - - print ''; - print ''; - print '
'; - if ($contextpage == 'poslist') { - print dol_escape_htmltag($obj->ref); - } else { - print $facturestatic->getNomUrl(1, '', 200, 0, '', 0, 1); - } - - $filename = dol_sanitizeFileName($obj->ref); - $filedir = $conf->facture->dir_output.'/'.dol_sanitizeFileName($obj->ref); - $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->id; - print $formfile->getDocumentsLink($facturestatic->element, $filename, $filedir); - print '
'; - - print "
'; - print dol_escape_htmltag($obj->ref_client); - print ''; - print $facturestatic->getLibType(2); - print "'; - print dol_print_date($db->jdate($obj->datef), 'day'); - print ''; - print dol_print_date($db->jdate($obj->date_valid), 'day'); - print ''.dol_print_date($datelimit, 'day'); - if ($facturestatic->hasDelay()) { - print img_warning($langs->trans('Alert').' - '.$langs->trans('Late')); - } - print ''; - if ($obj->project_id > 0) { - print $projectstatic->getNomUrl(1); - } - print ''; - if ($obj->project_id > 0) { - print dol_escape_htmltag($projectstatic->title); - } - print ''; - if ($contextpage == 'poslist') { - print dol_escape_htmltag($companystatic->name); - } else { - print $companystatic->getNomUrl(1, 'customer', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); - } - print ''; - print dol_escape_htmltag($companystatic->name_alias); - print ''; - if ($obj->fk_parent > 0) { - if (!isset($company_url_list[$obj->fk_parent])) { - $companyparent = new Societe($db); - $res = $companyparent->fetch($obj->fk_parent); - if ($res > 0) { - $company_url_list[$obj->fk_parent] = $companyparent->getNomUrl(1); + // Action column + 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->id, $arrayofselected)) { + $selected = 1; } + print ''; } - if (isset($company_url_list[$obj->fk_parent])) { - print $company_url_list[$obj->fk_parent]; + print ''.(($offset * $limit) + $i).''; + + print ''; + + print ''; + print ''; + print '
'; + if ($contextpage == 'poslist') { + print dol_escape_htmltag($obj->ref); + } else { + print $facturestatic->getNomUrl(1, '', 200, 0, '', 0, 1); + } + + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->facture->dir_output.'/'.dol_sanitizeFileName($obj->ref); + $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->id; + print $formfile->getDocumentsLink($facturestatic->element, $filename, $filedir); + print '
'; + + print "
'; - print dol_escape_htmltag($obj->town); - print ''; - print dol_escape_htmltag($obj->zip); - print '".dol_escape_htmltag($obj->state_name)."'; - $tmparray = getCountry($obj->fk_pays, 'all'); - print $tmparray['label']; - print ''; - if (!is_array($typenArray) || count($typenArray) == 0) { - $typenArray = $formcompany->typent_array(1); - } - print $typenArray[$obj->typent_code]; - print ''; - if (!is_array($conf->cache['staff']) || count($conf->cache['staff']) == 0) { - $conf->cache['staff'] = $formcompany->effectif_array(1); - } - print $conf->cache['staff'][$obj->staff_code]; - print ''; - print $s; - print ''; - print $s; - print ''; - print dol_escape_htmltag($obj->module_source); - print ''; - print dol_escape_htmltag($obj->pos_source); - print ''.price($obj->total_ht)."'.price($obj->total_tva)."'.price($obj->total_localtax1)."'.price($obj->total_localtax2)."'.price($obj->total_ttc)."'; - if ($userstatic->id) { - print $userstatic->getNomUrl(-1); - } else { - print ' '; - } - print "'; - if ($obj->socid > 0) { - $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); - if ($listsalesrepresentatives < 0) { - dol_print_error($db); + // Customer ref + if (!empty($arrayfields['f.ref_client']['checked'])) { + print ''; + print dol_escape_htmltag($obj->ref_client); + print ''; + print $facturestatic->getLibType(2); + print "'; + print dol_print_date($db->jdate($obj->datef), 'day'); + print ''; + print dol_print_date($db->jdate($obj->date_valid), 'day'); + print ''.dol_print_date($datelimit, 'day'); + if ($facturestatic->hasDelay()) { + print img_warning($langs->trans('Alert').' - '.$langs->trans('Late')); + } + print ''; + if ($obj->project_id > 0) { + print $projectstatic->getNomUrl(1); + } + print ''; + if ($obj->project_id > 0) { + print dol_escape_htmltag($projectstatic->title); + } + print ''; + if ($contextpage == 'poslist') { + print dol_escape_htmltag($companystatic->name); + } else { + print $companystatic->getNomUrl(1, 'customer', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); + } + print ''; + print dol_escape_htmltag($companystatic->name_alias); + print ''; + if ($obj->fk_parent > 0) { + if (!isset($company_url_list[$obj->fk_parent])) { + $companyparent = new Societe($db); + $res = $companyparent->fetch($obj->fk_parent); + if ($res > 0) { + $company_url_list[$obj->fk_parent] = $companyparent->getNomUrl(1); } - //print ''; + } + if (isset($company_url_list[$obj->fk_parent])) { + print $company_url_list[$obj->fk_parent]; } } - //else print $langs->trans("NoSalesRepresentativeAffected"); - } else { - print ' '; + print "'; + print dol_escape_htmltag($obj->town); + print ''; + print dol_escape_htmltag($obj->zip); + print '".dol_escape_htmltag($obj->state_name)."'; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + if (!is_array($typenArray) || count($typenArray) == 0) { + $typenArray = $formcompany->typent_array(1); + } + print $typenArray[$obj->typent_code]; + print ''; + if (!is_array($conf->cache['staff']) || count($conf->cache['staff']) == 0) { + $conf->cache['staff'] = $formcompany->effectif_array(1); + } + print $conf->cache['staff'][$obj->staff_code]; + print ''.(!empty($obj->retained_warranty) ? price($obj->retained_warranty).'%' : ' ').''; + print $s; + print ''.(!empty($totalpay) ? price($totalpay, 0, $langs) : ' ').''; + print $s; + print ''; - print (!empty($remaintopay) ? price($remaintopay, 0, $langs) : ' '); - print ''; + print dol_escape_htmltag($obj->module_source); + print ''; + print dol_escape_htmltag($obj->pos_source); + print ''; - if (empty($conf->global->MAIN_SHOW_ONLY_CODE_MULTICURRENCY)) { - print $langs->transnoentitiesnoconv('Currency'.$obj->multicurrency_code); - } else { - print dol_escape_htmltag($obj->multicurrency_code); + // Amount HT + if (!empty($arrayfields['f.total_ht']['checked'])) { + print ''.price($obj->total_ht)."'.price($obj->total_tva)."'.price($obj->total_localtax1)."'.price($obj->total_localtax2)."'.price($obj->total_ttc)."'; - $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); - print "'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'.(!empty($multicurrency_totalpay) ?price($multicurrency_totalpay, 0, $langs) : ' ').''; - print (!empty($multicurrency_remaintopay) ? price($multicurrency_remaintopay, 0, $langs) : ' '); - print ''.price($marginInfo['pa_total']).''.price($marginInfo['total_margin']).''.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').''; + if ($userstatic->id) { + print $userstatic->getNomUrl(-1); } else { - $totalarray['val']['total_mark_rate'] = ''; + print ' '; + } + print "'; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''; - print dol_print_date($db->jdate($obj->date_closing), 'dayhour', 'tzuser'); - print ''; - print dol_string_nohtmltag($obj->note_public); - print ''; - print dol_string_nohtmltag($obj->note_private); - print ''; - if (!empty($obj->fk_fac_rec_source)) { - $facrec = new FactureRec($db); - $result = $facrec->fetch($obj->fk_fac_rec_source); - if ($result < 0) { - setEventMessages($facrec->error, $facrec->errors, 'errors'); + if (!empty($arrayfields['sale_representative']['checked'])) { + // Sales representatives + print ''; + if ($obj->socid > 0) { + $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); + if ($listsalesrepresentatives < 0) { + dol_print_error($db); + } + $nbofsalesrepresentative = count($listsalesrepresentatives); + if ($nbofsalesrepresentative > 6) { + // We print only number + print $nbofsalesrepresentative; + } elseif ($nbofsalesrepresentative > 0) { + $j = 0; + foreach ($listsalesrepresentatives as $val) { + $userstatic->id = $val['id']; + $userstatic->lastname = $val['lastname']; + $userstatic->firstname = $val['firstname']; + $userstatic->email = $val['email']; + $userstatic->statut = $val['statut']; + $userstatic->entity = $val['entity']; + $userstatic->photo = $val['photo']; + $userstatic->login = $val['login']; + $userstatic->office_phone = $val['office_phone']; + $userstatic->office_fax = $val['office_fax']; + $userstatic->user_mobile = $val['user_mobile']; + $userstatic->job = $val['job']; + $userstatic->gender = $val['gender']; + //print '
': + print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); + $j++; + if ($j < $nbofsalesrepresentative) { + print ' '; + } + //print '
'; + } + } + //else print $langs->trans("NoSalesRepresentativeAffected"); } else { - print $facrec->getNomUrl(); + print ' '; + } + print '
'.(!empty($obj->retained_warranty) ? price($obj->retained_warranty).'%' : ' ').''.(!empty($totalpay) ? price($totalpay, 0, $langs) : ' ').''; + print (!empty($remaintopay) ? price($remaintopay, 0, $langs) : ' '); + print ''; + if (empty($conf->global->MAIN_SHOW_ONLY_CODE_MULTICURRENCY)) { + print $langs->transnoentitiesnoconv('Currency'.$obj->multicurrency_code); + } else { + print dol_escape_htmltag($obj->multicurrency_code); + } + print "'; + $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); + print "'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'.(!empty($multicurrency_totalpay) ?price($multicurrency_totalpay, 0, $langs) : ' ').''; + print (!empty($multicurrency_remaintopay) ? price($multicurrency_remaintopay, 0, $langs) : ' '); + print ''.price($marginInfo['pa_total']).''.price($marginInfo['total_margin']).''.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_closing), 'dayhour', 'tzuser'); + print ''; + print dol_string_nohtmltag($obj->note_public); + print ''; + print dol_string_nohtmltag($obj->note_private); + print ''; + if (!empty($obj->fk_fac_rec_source)) { + $facrec = new FactureRec($db); + $result = $facrec->fetch($obj->fk_fac_rec_source); + if ($result < 0) { + setEventMessages($facrec->error, $facrec->errors, 'errors'); + } else { + print $facrec->getNomUrl(); + } + } + print ''; + print $facturestatic->getLibStatut(5, $paiement); + 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->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
'; - print $facturestatic->getLibStatut(5, $paiement); - 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->id, $arrayofselected)) { - $selected = 1; - } - print ''; - } - print '
'.$langs->trans("User").''.$langs->trans("Amount").''.$langs->trans("DateProcess").' '.$langs->trans("BankTransferReceipt").''.$langs->trans("WithdrawalReceipt").'  
'.price($obj->amount).''.$langs->trans("OrderWaiting").''; if (!empty($conf->global->STRIPE_SEPA_DIRECT_DEBIT)) { $langs->load("stripe"); @@ -874,8 +875,10 @@ if ($object->id > 0) { } print '-'; print ''; print img_delete(); @@ -929,14 +932,21 @@ if ($object->id > 0) { print '
'.dol_print_date($db->jdate($obj->date_demande), 'day')."'; print $tmpuser->getNomUrl(1, '', 0, 0, 0, 0, 'login'); print ''.price($obj->amount).''.dol_print_date($db->jdate($obj->date_traite), 'day')."'; if ($obj->fk_prelevement_bons > 0) { $withdrawreceipt = new BonPrelevement($db); @@ -946,10 +956,10 @@ if ($object->id > 0) { } print " '.dol_print_date($db->jdate($obj->date_traite), 'day')." 
'.$objectlink->getNomUrl(1).''.$objectlink->getNomUrl(1).''.dol_escape_htmltag($objectlink->ref_client).''.dol_print_date($objectlink->date, 'day').''; diff --git a/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php b/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php index 1bca663e1ef..c3c774b79e7 100644 --- a/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php +++ b/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php @@ -47,7 +47,7 @@ foreach ($linkedObjectBlock as $key => $objectlink) { ?>
trans("RepeatableInvoice"); ?>getNomUrl(1); ?>getNomUrl(1); ?> date_when, 'day'); ?> rights->facture->lire)) { // Last modified supplier invoices -if ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->facture->lire) || (isModEnabled('supplier_invoice') && $user->rights->supplier_invoice->lire)) { +if ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight("fournisseur", "facture", "lire")) || (isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) { $langs->load("boxes"); $facstatic = new FactureFournisseur($db); @@ -459,7 +459,7 @@ if (isModEnabled('don') && !empty($user->rights->don->lire)) { $donationstatic->ref = $obj->rowid; $donationstatic->lastname = $obj->lastname; $donationstatic->firstname = $obj->firstname; - $donationstatic->date = $obj->date; + $donationstatic->date = $db->jdate($obj->date); $donationstatic->statut = $obj->status; $donationstatic->status = $obj->status; @@ -590,7 +590,7 @@ if (isModEnabled('tax') && !empty($user->rights->tax->charges->lire)) { /* * Customers orders to be billed */ -if (isModEnabled('facture') && isModEnabled('commande') && $user->rights->commande->lire && empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) { +if (isModEnabled('facture') && isModEnabled('commande') && $user->hasRight("commande", "lire") && empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) { $commandestatic = new Commande($db); $langs->load("orders"); @@ -742,21 +742,25 @@ if (isModEnabled('facture') && isModEnabled('commande') && $user->rights->comman // TODO Mettre ici recup des actions en rapport avec la compta -$resql = ''; -if ($resql) { +$sql = ''; +if ($sql) { print '
'; print ''; print ''.$langs->trans("TasksToDo").''; print "\n"; $i = 0; - while ($i < $db->num_rows($resql)) { - $obj = $db->fetch_object($resql); + $resql = $db->query($sql); + if ($resql) { + $num_rows = $db->num_rows($resql); + while ($i < $num_rows) { + $obj = $db->fetch_object($resql); - print ''; - print ''; - $i++; + print ''; + print ''; + $i++; + } + $db->free($resql); } - $db->free($resql); print "
'.dol_print_date($db->jdate($obj->da), "day").''.$obj->label.'
'.dol_print_date($db->jdate($obj->da), "day").''.$obj->label.'

"; } diff --git a/htdocs/compta/localtax/card.php b/htdocs/compta/localtax/card.php index 8b6119db13a..ad80b6d1b6d 100644 --- a/htdocs/compta/localtax/card.php +++ b/htdocs/compta/localtax/card.php @@ -144,9 +144,12 @@ $form = new Form($db); $title = $langs->trans("LT".$object->ltt)." - ".$langs->trans("Card"); $help_url = ''; -llxHeader('', $title, $helpurl); +llxHeader('', $title, $help_url); if ($action == 'create') { + $datev = dol_mktime(12, 0, 0, GETPOST("datevmonth"), GETPOST("datevday"), GETPOST("datevyear")); + $datep = dol_mktime(12, 0, 0, GETPOST("datepmonth"), GETPOST("datepday"), GETPOST("datepyear")); + print load_fiche_titre($langs->transcountry($lttype == 2 ? "newLT2Payment" : "newLT1Payment", $mysoc->country_code)); print '
'."\n"; diff --git a/htdocs/compta/localtax/class/localtax.class.php b/htdocs/compta/localtax/class/localtax.class.php index ed467ec91f4..a6db785b779 100644 --- a/htdocs/compta/localtax/class/localtax.class.php +++ b/htdocs/compta/localtax/class/localtax.class.php @@ -629,4 +629,39 @@ class Localtax extends CommonObject return ''; } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).''; + if (property_exists($this, 'label')) { + $return .= ' | '.$this->label.''; + } + if (property_exists($this, 'datev')) { + $return .= '
'.$langs->trans("DateEnd").' : '.dol_print_date($this->db->jdate($this->datev), 'day').''; + } + if (property_exists($this, 'datep')) { + $return .= '
'.$langs->trans("DatePayment", '', '', '', '', 5).' : '.dol_print_date($this->db->jdate($this->datep), 'day').''; + } + if (property_exists($this, 'amount')) { + $return .= '
'.$langs->trans("Amount").' : '.price($this->amount).''; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/compta/localtax/index.php b/htdocs/compta/localtax/index.php index ad0b86a161d..f25b476fa94 100644 --- a/htdocs/compta/localtax/index.php +++ b/htdocs/compta/localtax/index.php @@ -18,11 +18,13 @@ * along with this program. If not, see . */ + /** * \file htdocs/compta/localtax/index.php * \ingroup tax - * \brief Index page of IRPF reports + * \brief Index page of localtax reports */ + require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php'; @@ -257,6 +259,9 @@ llxHeader('', $name); //$textnextyear=" ".img_next().""; //print load_fiche_titre($langs->transcountry($LT,$mysoc->country_code),"$textprevyear ".$langs->trans("Year")." $year_start $textnextyear", 'bill'); +$periodlink = ''; +$exportlink = ''; + report_header($name, '', $period, $periodlink, $description, $builddate, $exportlink, array(), $calcmode); //report_header($name,'',$textprevyear.$langs->trans("Year")." ".$year_start.$textnextyear,'',$description,$builddate,$exportlink,array(),$calcmode); @@ -269,7 +274,7 @@ print load_fiche_titre($langs->transcountry($LTSummary, $mysoc->country_code), ' print ''; print ''; -print '"; +print '"; if ($CalcLT == 0) { print ''; print ''; @@ -441,16 +446,6 @@ while ((($y < $yend) || ($y == $yend && $m <= $mend)) && $mcursor < 1000) { // $ $hookmanager->initHooks(array('externalbalance')); $reshook = $hookmanager->executeHooks('addVatLine', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks - if (!is_array($x_coll) && $coll_listbuy == -1) { - $langs->load("errors"); - print ''; - break; - } - if (!is_array($x_paye) && $coll_listbuy == -2) { - print ''; - break; - } - print ''; print ''; diff --git a/htdocs/compta/localtax/list.php b/htdocs/compta/localtax/list.php index ee2e13e1d57..42f4d326811 100644 --- a/htdocs/compta/localtax/list.php +++ b/htdocs/compta/localtax/list.php @@ -35,7 +35,7 @@ if ($user->socid) { } $result = restrictedArea($user, 'tax', '', '', 'charges'); $ltt = GETPOST("localTaxType", 'int'); - +$mode = GETPOST('mode', 'alpha'); /* * View @@ -49,7 +49,14 @@ $url = DOL_URL_ROOT.'/compta/localtax/card.php?action=create&localTaxType='.$ltt if (!empty($socid)) { $url .= '&socid='.$socid; } -$newcardbutton = dolGetButtonTitle($langs->trans('NewLocalTaxPayment', ($ltt + 1)), '', 'fa fa-plus-circle', $url, '', $user->rights->tax->charges->creer); +$param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} +$newcardbutton = ''; +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?localTaxType='.$ltt.'&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"].'?localTaxType='.$ltt.'&mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('NewLocalTaxPayment', ($ltt + 1)), '', 'fa fa-plus-circle', $url, '', $user->rights->tax->charges->creer); print load_fiche_titre($langs->transcountry($ltt == 2 ? "LT2Payments" : "LT1Payments", $mysoc->country_code), $newcardbutton, 'title_accountancy'); @@ -77,19 +84,36 @@ if ($result) { while ($i < $num) { $obj = $db->fetch_object($result); - print ''; - + $localtax_static->label = $obj->label; $localtax_static->id = $obj->rowid; $localtax_static->ref = $obj->rowid; - print "\n"; - print "\n"; - print '\n"; - print '\n"; + $localtax_static->datev = $obj->datev; + $localtax_static->datep = $obj->datep; + $localtax_static->amount = $obj->amount; + $total = $total + $obj->amount; - print ''; - print "\n"; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + } + } else { + print ''; + print "\n"; + print "\n"; + print '\n"; + print '\n"; + print ''; + print "\n"; + } $i++; } print ''; diff --git a/htdocs/compta/paiement/card.php b/htdocs/compta/paiement/card.php index 4930ce9e53c..7c68a443feb 100644 --- a/htdocs/compta/paiement/card.php +++ b/htdocs/compta/paiement/card.php @@ -46,6 +46,11 @@ $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); $backtopage = GETPOST('backtopage', 'alpha'); +$socid = GETPOST('socid', 'int'); +if ($socid < 0) { + $socid = 0; +} + $object = new Paiement($db); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('paymentcard', 'globalcard')); @@ -84,7 +89,7 @@ if ($action == 'setnote' && $user->hasRight('facture', 'paiement')) { } } -if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->facture->paiement) { +if ($action == 'confirm_delete' && $confirm == 'yes' && $user->hasRight('facture', 'paiement')) { $db->begin(); $result = $object->delete(); @@ -105,7 +110,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->facture-> } } -if ($action == 'confirm_validate' && $confirm == 'yes' && $user->rights->facture->paiement) { +if ($action == 'confirm_validate' && $confirm == 'yes' && $user->hasRight('facture', 'paiement')) { $db->begin(); if ($object->validate($user) > 0) { @@ -175,7 +180,7 @@ if ($action == 'confirm_validate' && $confirm == 'yes' && $user->rights->facture } } -if ($action == 'setnum_paiement' && GETPOST('num_paiement')) { +if ($action == 'setnum_paiement' && GETPOST('num_paiement') && $user->hasRight('facture', 'paiement')) { $res = $object->update_num(GETPOST('num_paiement')); if ($res === 0) { setEventMessages($langs->trans('PaymentNumberUpdateSucceeded'), null, 'mesgs'); @@ -184,7 +189,7 @@ if ($action == 'setnum_paiement' && GETPOST('num_paiement')) { } } -if ($action == 'setdatep' && GETPOST('datepday')) { +if ($action == 'setdatep' && GETPOST('datepday') && $user->hasRight('facture', 'paiement')) { $datepaye = dol_mktime(GETPOST('datephour', 'int'), GETPOST('datepmin', 'int'), GETPOST('datepsec', 'int'), GETPOST('datepmonth', 'int'), GETPOST('datepday', 'int'), GETPOST('datepyear', 'int')); $res = $object->update_date($datepaye); if ($res === 0) { @@ -193,7 +198,8 @@ if ($action == 'setdatep' && GETPOST('datepday')) { setEventMessages($langs->trans('PaymentDateUpdateFailed'), null, 'errors'); } } -if ($action == 'createbankpayment' && !empty($user->rights->facture->paiement)) { + +if ($action == 'createbankpayment' && $user->hasRight('facture', 'paiement')) { $db->begin(); // Create the record into bank for the amount of payment $object @@ -415,8 +421,6 @@ if ($resql) { $i = 0; $total = 0; - $moreforfilter = ''; - print '
'; print '
'; @@ -511,9 +515,9 @@ if ($resql) { print '
'; if (!empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) { - if ($user->socid == 0 && $object->statut == 0 && $_GET['action'] == '') { + if ($user->socid == 0 && $object->statut == 0 && $action == '') { if ($user->rights->facture->paiement) { - print ''.$langs->trans('Valid').''; + print ''.$langs->trans('Valid').''; } } } diff --git a/htdocs/compta/paiement/cheque/card.php b/htdocs/compta/paiement/cheque/card.php index f28ebf2ebcf..1aebdace757 100644 --- a/htdocs/compta/paiement/cheque/card.php +++ b/htdocs/compta/paiement/cheque/card.php @@ -385,14 +385,15 @@ if ($action == 'new') { print dol_get_fiche_end(); print '
'; - print ''; + print ''; if ($search_date_start || $search_date_end || $filteraccountid > 0) { print '   '; - print ''; + print ''; } print '
'; print ''; print '
'; + print '
'; $sql = "SELECT ba.rowid as bid, ba.label,"; $sql .= " b.rowid as transactionid, b.label as transactionlabel, b.datec as datec, b.dateo as date, "; @@ -484,13 +485,6 @@ if ($action == 'new') { if (count($lines[$bid])) { foreach ($lines[$bid] as $lid => $value) { - //$account_id = $bid; FIXME not used - - // FIXME $accounts[$bid] is a label ! - /*if (! isset($accounts[$bid])) - $accounts[$bid]=0; - $accounts[$bid] += 1;*/ - print '
'; print ''; print '\n"; @@ -524,8 +518,6 @@ if ($action == 'new') { print ''; print ''; print ''; - - $i++; } } print "
'.$langs->trans("Year")." ".$y."'.$langs->trans("Year")."'.$langs->transcountry($LTCustomer, $mysoc->country_code).''.$langs->transcountry($LTSupplier, $mysoc->country_code).'
'.$langs->trans("ErrorNoAccountancyModuleLoaded").'
'.$langs->trans("FeatureNotYetAvailable").'
'.dol_print_date(dol_mktime(0, 0, 0, $m, 1, $y), "%b %Y").'
".$localtax_static->getNomUrl(1)."".dol_trunc($obj->label, 40)."'.dol_print_date($db->jdate($obj->datev), 'day')."'.dol_print_date($db->jdate($obj->datep), 'day')."'.price($obj->amount).'
'; + print '
'; + } + // Output Kanban + print $localtax_static->getKanbanView(''); + if ($i == ($num - 1)) { + print '
'; + print '
".$localtax_static->getNomUrl(1)."".dol_trunc($obj->label, 40)."'.dol_print_date($db->jdate($obj->datev), 'day')."'.dol_print_date($db->jdate($obj->datep), 'day')."'.price($obj->amount).'
'.$langs->trans("Total").'
'.dol_print_date($value["date"], 'day').''.$value["numero"]."
"; diff --git a/htdocs/compta/paiement/cheque/class/remisecheque.class.php b/htdocs/compta/paiement/cheque/class/remisecheque.class.php index 3fb82f05cb9..6666f0fe1c4 100644 --- a/htdocs/compta/paiement/cheque/class/remisecheque.class.php +++ b/htdocs/compta/paiement/cheque/class/remisecheque.class.php @@ -190,8 +190,8 @@ class RemiseCheque extends CommonObject if ($this->id > 0 && $this->errno == 0) { $sql = "UPDATE ".MAIN_DB_PREFIX."bordereau_cheque"; - $sql .= " SET ref='(PROV".$this->id.")'"; - $sql .= " WHERE rowid=".((int) $this->id).""; + $sql .= " SET ref = '(PROV".$this->id.")'"; + $sql .= " WHERE rowid=".((int) $this->id); $resql = $this->db->query($sql); if (!$resql) { @@ -1020,4 +1020,44 @@ class RemiseCheque extends CommonObject return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status], '', $statusType, $mode); } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).''; + + if (property_exists($this, 'date_bordereau')) { + $return .= '
'.$langs->trans("DateCreation").' : '.dol_print_date($this->db->jdate($this->date_bordereau), 'day').''; + } + if (property_exists($this, 'nbcheque')) { + $return .= '
'.$langs->trans("Cheque", '', '', '', '', 5).' : '.$this->nbcheque.''; + } + if (property_exists($this, 'account_id')) { + $return .= ' | '.$this->account_id.''; + } + if (method_exists($this, 'LibStatut')) { + $return .= '
'.$this->LibStatut($this->statut, 5).'
'; + } + if (property_exists($this, 'amount')) { + $return .= ' |
'.$langs->trans("Amount").' : '.price($this->amount).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/compta/paiement/cheque/index.php b/htdocs/compta/paiement/cheque/index.php index 38b779de1ad..394de095104 100644 --- a/htdocs/compta/paiement/cheque/index.php +++ b/htdocs/compta/paiement/cheque/index.php @@ -32,15 +32,23 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Load translation files required by the page $langs->loadLangs(array('banks', 'categories', 'compta', 'bills')); +$checkdepositstatic = new RemiseCheque($db); +$accountstatic = new Account($db); + // Security check if ($user->socid) { $socid = $user->socid; } $result = restrictedArea($user, 'banque', '', ''); +$usercancreate = $user->hasRight('banque', 'cheque'); -$checkdepositstatic = new RemiseCheque($db); -$accountstatic = new Account($db); + +/* + * Actions + */ + +// None /* @@ -49,11 +57,16 @@ $accountstatic = new Account($db); llxHeader('', $langs->trans("ChequesArea")); -print load_fiche_titre($langs->trans("ChequesArea"), '', $checkdepositstatic->picto); +$newcardbutton = ''; +if ($usercancreate) { + $newcardbutton .= dolGetButtonTitle($langs->trans('NewDeposit'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/compta/paiement/cheque/card.php?action=new'); +} + +print load_fiche_titre($langs->trans("ChequesArea"), $newcardbutton, $checkdepositstatic->picto); print '
'; -$sql = "SELECT count(b.rowid)"; +$sql = "SELECT count(b.rowid) as nb"; $sql .= " FROM ".MAIN_DB_PREFIX."bank as b"; $sql .= ", ".MAIN_DB_PREFIX."bank_account as ba"; $sql .= " WHERE ba.rowid = b.fk_account"; @@ -64,24 +77,26 @@ $sql .= " AND b.amount > 0"; $resql = $db->query($sql); +print '
'; print ''; print ''; print '\n"; print "\n"; if ($resql) { - if ($row = $db->fetch_row($resql)) { - $num = $row[0]; + $num = ''; + if ($obj = $db->fetch_object($resql)) { + $num = $obj->nb; } print ''; print ''; print ''; - print "
'.$langs->trans("BankChecks")."
'.$langs->trans("BankChecksToReceipt").''; - print ''.$num.''; + print ''.$num.''; print '
\n"; } else { dol_print_error($db); } +print "
\n"; print '
'; diff --git a/htdocs/compta/paiement/cheque/list.php b/htdocs/compta/paiement/cheque/list.php index 054ef800586..38db4fca14b 100644 --- a/htdocs/compta/paiement/cheque/list.php +++ b/htdocs/compta/paiement/cheque/list.php @@ -44,6 +44,7 @@ $result = restrictedArea($user, 'banque', '', ''); $search_ref = GETPOST('search_ref', 'alpha'); $search_account = GETPOST('search_account', 'int'); $search_amount = GETPOST('search_amount', 'alpha'); +$mode = GETPOST('mode', 'alpha'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -149,6 +150,9 @@ if ($resql) { $num = $db->num_rows($resql); $i = 0; $param = ''; + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.$contextpage; } @@ -160,7 +164,10 @@ if ($resql) { if (!empty($socid)) { $url .= '&socid='.$socid; } - $newcardbutton = dolGetButtonTitle($langs->trans('NewCheckDeposit'), '', 'fa fa-plus-circle', $url, '', $user->rights->banque->cheque); + $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('NewCheckDeposit'), '', 'fa fa-plus-circle', $url, '', $user->rights->banque->cheque); print '
'; if ($optioncss != '') { @@ -172,6 +179,8 @@ if ($resql) { print ''; print ''; print ''; + print ''; + print_barre_liste($langs->trans("MenuChequeDeposits"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'bank_account', 0, $newcardbutton, '', $limit); @@ -220,42 +229,64 @@ if ($resql) { while ($i < min($num, $limit)) { $objp = $db->fetch_object($resql); - print '
'; $checkdepositstatic->id = $objp->rowid; $checkdepositstatic->ref = ($objp->ref ? $objp->ref : $objp->rowid); $checkdepositstatic->statut = $objp->statut; - print $checkdepositstatic->getNomUrl(1); - print ''.dol_print_date($db->jdate($objp->date_bordereau), 'day').''; - if ($objp->bid) { - print ''.img_object($langs->trans("ShowAccount"), 'account').' '.$objp->label.''; + if ($mode == 'kanban') { + if ($i == 0) { + print '
'; + print '
'; + } + // Output Kanban + print $checkdepositstatic->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print '
'; + print '
'; + + print $checkdepositstatic->getNomUrl(1); + print ''.dol_print_date($db->jdate($objp->date_bordereau), 'day').''; + if ($objp->bid) { + print ''.img_object($langs->trans("ShowAccount"), 'account').' '.$objp->label.''; + } else { + print ' '; + } + print ''.$objp->nbcheque.''.price($objp->amount).''; + print $checkdepositstatic->LibStatut($objp->statut, 5); + print '
'.$objp->nbcheque.''.price($objp->amount).''; - print $checkdepositstatic->LibStatut($objp->statut, 5); - print '
'.$langs->trans("Statistics").''.$langs->trans("NbOfInvoiceToPayByBankTransfer").''; -print ''; +print ''; print $bprev->nbOfInvoiceToPay('bank-transfer'); print ''; print '
'.$langs->trans("NoSupplierInvoiceToWithdraw", $langs->transnoentitiesnoconv("BankTransfer")).'
'.$langs->trans("NoSupplierInvoiceToWithdraw", $titlefortab, $titlefortab).'

"; } else { diff --git a/htdocs/compta/prelevement/card.php b/htdocs/compta/prelevement/card.php index 8be48493d08..33a4409bac9 100644 --- a/htdocs/compta/prelevement/card.php +++ b/htdocs/compta/prelevement/card.php @@ -54,10 +54,10 @@ $pageprev = $page - 1; $pagenext = $page + 1; if (!$sortfield) { - $sortfield = 'pl.fk_soc'; + $sortfield = 'pl.rowid'; } if (!$sortorder) { - $sortorder = 'DESC'; + $sortorder = 'ASC'; } $object = new BonPrelevement($db); @@ -272,7 +272,7 @@ if ($id > 0 || $ref) { print $formconfirm; - if (empty($object->date_trans) && $user->rights->prelevement->bons->send && $action == 'settransmitted') { + if (empty($object->date_trans) && (($user->rights->prelevement->bons->send && $object->type != 'bank-transfer') || ($user->rights->paymentbybanktransfer->send && $object->type == 'bank-transfer')) && $action == 'settransmitted') { print ''; print ''; print ''; @@ -291,7 +291,7 @@ if ($id > 0 || $ref) { print '
'; } - if (!empty($object->date_trans) && empty($object->date_credit) && $user->rights->prelevement->bons->credit && $action == 'setcredited') { + if (!empty($object->date_trans) && empty($object->date_credit) && (($user->rights->prelevement->bons->credit && $object->type != 'bank-transfer') || ($user->rights->paymentbybanktransfer->debit && $object->type == 'bank-transfer')) && $action == 'setcredited') { $btnLabel = ($object->type == 'bank-transfer') ? $langs->trans("ClassDebited") : $langs->trans("ClassCredited"); print ''; print ''; @@ -343,7 +343,7 @@ if ($id > 0 || $ref) { $sql .= ", ".MAIN_DB_PREFIX."societe as s"; $sql .= " WHERE pl.fk_prelevement_bons = ".((int) $id); $sql .= " AND pl.fk_prelevement_bons = pb.rowid"; - $sql .= " AND pb.entity = ".$conf->entity; + $sql .= " AND pb.entity = ".((int) $conf->entity); // No sharing of entity here $sql .= " AND pl.fk_soc = s.rowid"; if ($socid) { $sql .= " AND s.rowid = ".((int) $socid); @@ -375,7 +375,8 @@ if ($id > 0 || $ref) { $urladd .= '&limit='.urlencode($limit); } - print ''."\n"; + print ''."\n"; + print ''; print ''; print ''; if (!empty($page)) { @@ -395,9 +396,9 @@ if ($id > 0 || $ref) { print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print ''; print ''; - print_liste_field_titre("Lines", $_SERVER["PHP_SELF"], "pl.rowid", '', $urladd); - print_liste_field_titre("ThirdParty", $_SERVER["PHP_SELF"], "s.nom", '', $urladd); - print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "pl.amount", "", $urladd, 'class="right"'); + print_liste_field_titre("Lines", $_SERVER["PHP_SELF"], "pl.rowid", '', $urladd, '', $sortfield, $sortorder); + print_liste_field_titre("ThirdParty", $_SERVER["PHP_SELF"], "s.nom", '', $urladd, '', $sortfield, $sortorder); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "pl.amount", "", $urladd, 'class="right"', $sortfield, $sortorder); print_liste_field_titre(''); print "\n"; diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index 959630a5538..b9d1fd7c54a 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -72,6 +72,7 @@ class BonPrelevement extends CommonObject public $date_trans; public $user_trans; + public $method_trans; public $total; public $fetched; @@ -83,6 +84,15 @@ class BonPrelevement extends CommonObject public $invoice_in_error = array(); public $thirdparty_in_error = array(); + public $amount; + public $note; + public $datec; + + public $date_credit; + public $user_credit; + + public $type; + const STATUS_DRAFT = 0; const STATUS_TRANSFERED = 1; const STATUS_CREDITED = 2; // STATUS_CREDITED and STATUS_DEBITED is same. Difference is in ->type @@ -1856,7 +1866,7 @@ class BonPrelevement extends CommonObject $XML_DEBITOR .= ' '.$CrLf; $XML_DEBITOR .= ' '.$row_country_code.''.$CrLf; $addressline1 = strtr($row_address, array(CHR(13) => ", ", CHR(10) => "")); - $addressline2 = strtr($row_zip.(($row_zip && $row_town) ? ' ' : ''.$row_town), array(CHR(13) => ", ", CHR(10) => "")); + $addressline2 = strtr($row_zip.(($row_zip && $row_town) ? ' ' : (string) $row_town), array(CHR(13) => ", ", CHR(10) => "")); if (trim($addressline1)) { $XML_DEBITOR .= ' '.dolEscapeXML(dol_trunc(dol_string_nospecial(dol_string_unaccent($addressline1), ' '), 70, 'right', 'UTF-8', 1)).''.$CrLf; } @@ -1925,7 +1935,7 @@ class BonPrelevement extends CommonObject $XML_CREDITOR .= ' '.$CrLf; $XML_CREDITOR .= ' '.$row_country_code.''.$CrLf; $addressline1 = strtr($row_address, array(CHR(13) => ", ", CHR(10) => "")); - $addressline2 = strtr($row_zip.(($row_zip && $row_town) ? ' ' : ''.$row_town), array(CHR(13) => ", ", CHR(10) => "")); + $addressline2 = strtr($row_zip.(($row_zip && $row_town) ? ' ' : (string) $row_town), array(CHR(13) => ", ", CHR(10) => "")); if (trim($addressline1)) { $XML_CREDITOR .= ' '.dolEscapeXML(dol_trunc(dol_string_nospecial(dol_string_unaccent($addressline1), ' '), 70, 'right', 'UTF-8', 1)).''.$CrLf; } @@ -2397,4 +2407,39 @@ class BonPrelevement extends CommonObject */ return 0; } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + + + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + + if (property_exists($this, 'date_echeance')) { + $return .= '
'.$langs->trans("Date").' : '.dol_print_date($this->db->jdate($this->date_echeance), 'day').''; + } + if (property_exists($this, 'total')) { + $return .= '
'.$langs->trans("Amount").' : '.price($this->total).''; + } + if (method_exists($this, 'LibStatut')) { + $return .= '
'.$this->LibStatut($this->statut, 5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/compta/prelevement/class/ligneprelevement.class.php b/htdocs/compta/prelevement/class/ligneprelevement.class.php index 0093db77c32..6ed518f7f2f 100644 --- a/htdocs/compta/prelevement/class/ligneprelevement.class.php +++ b/htdocs/compta/prelevement/class/ligneprelevement.class.php @@ -167,17 +167,17 @@ class LignePrelevement /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'prelevement_lignes' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } } diff --git a/htdocs/compta/prelevement/create.php b/htdocs/compta/prelevement/create.php index 37a2d74c5e3..598b86fcda3 100644 --- a/htdocs/compta/prelevement/create.php +++ b/htdocs/compta/prelevement/create.php @@ -34,6 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/prelevement.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; @@ -74,6 +75,8 @@ if ($type == 'bank-transfer') { $error = 0; $option = ""; +$mesg = ''; + /* * Actions @@ -225,14 +228,14 @@ if ($type == 'bank-transfer') { $title = $langs->trans("NbOfInvoiceToPayByBankTransfer"); } -print '
'; -print ''; +print ''; print ''; -print ''; print ''; @@ -254,20 +257,20 @@ if ($nb) { if ($type == 'bank-transfer') { $title = $langs->trans('BankToPayCreditTransfer').': '; } - print $title; + print ''.$title.''; print img_picto('', 'bank_account'); $default_account = ($type == 'bank-transfer' ? 'PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT' : 'PRELEVEMENT_ID_BANKACCOUNT'); - print $form->select_comptes($conf->global->$default_account, 'id_bankaccount', 0, "courant=1", 0, '', 0, '', 1); - print ' - '; + print $form->select_comptes(getDolGlobalInt($default_account), 'id_bankaccount', 0, "courant=1", 0, '', 0, 'widthcentpercentminusx maxwidth300', 1); + print '     '; if (empty($executiondate)) { $delayindays = 0; if ($type != 'bank-transfer') { - $delayindays = $conf->global->PRELEVEMENT_ADDDAYS; + $delayindays = getDolGlobalInt('PRELEVEMENT_ADDDAYS'); } else { - $delayindays = $conf->global->PAYMENTBYBANKTRANSFER_ADDDAYS; + $delayindays = getDolGlobalInt('PAYMENTBYBANKTRANSFER_ADDDAYS'); } $executiondate = dol_time_plus_duree(dol_now(), $delayindays, 'd'); @@ -290,14 +293,14 @@ if ($nb) { print ''; print ''; } - print ''; + print ''; } else { $title = $langs->trans("CreateAll"); if ($type == 'bank-transfer') { $title = $langs->trans("CreateFileForPaymentByBankTransfer"); } print ''."\n"; - print ''."\n"; + print ''."\n"; } } else { if ($mysoc->isInEEC()) { @@ -305,18 +308,18 @@ if ($nb) { if ($type == 'bank-transfer') { $title = $langs->trans("CreateSepaFileForPaymentByBankTransfer"); } - print ''.$title."\n"; + print ''.$title."\n"; if ($type != 'bank-transfer') { $title = $langs->trans("CreateForSepaRCUR"); - print ''.$title."\n"; + print ''.$title."\n"; } } else { $title = $langs->trans("CreateAll"); if ($type == 'bank-transfer') { $title = $langs->trans("CreateFileForPaymentByBankTransfer"); } - print ''.$title."\n"; + print ''.$title."\n"; } } } else { @@ -326,7 +329,9 @@ if ($nb) { $titlefortab = $langs->transnoentitiesnoconv("PaymentByBankTransfers"); $title = $langs->trans("CreateFileForPaymentByBankTransfer"); } - print ''.$title."\n"; + print ''; + print $title; + print "\n"; } print "\n"; @@ -341,6 +346,9 @@ print '
'; */ $sql = "SELECT f.ref, f.rowid, f.total_ttc, s.nom as name, s.rowid as socid,"; +if ($type == 'bank-transfer') { + $sql .= " f.ref_supplier,"; +} $sql .= " pfd.rowid as request_row_id, pfd.date_demande, pfd.amount"; if ($type == 'bank-transfer') { $sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn as f,"; @@ -417,9 +425,13 @@ if ($resql) { $tradinvoice = "SupplierInvoice"; } + print '
'; print '
'.$title.''; -print $nb; +print '
'.$title.''; +print dol_escape_htmltag($nb); print '
'.$langs->trans("AmountTotal").''; -print price($pricetowithdraw); +print ''; +print price($pricetowithdraw, 0, $langs, 1, -1, -1, $conf->currency); print '
'; print ''; print ''; + if ($type == 'bank-transfer') { + print ''; + } print ''; print ''; print ''; @@ -439,17 +451,25 @@ if ($resql) { $bac->fetch(0, $obj->socid); + $invoicestatic->id = $obj->rowid; + $invoicestatic->ref = $obj->ref; + $invoicestatic->ref_supplier = $obj->ref_supplier; + print ''; // Ref invoice - print ''; + if ($type == 'bank-transfer') { + print ''; + } + // Thirdparty - print ''; @@ -510,6 +530,8 @@ if ($resql) { print ''; } print "
'.$langs->trans($tradinvoice).''.$langs->trans("RefSupplier").''.$langs->trans("ThirdParty").''.$langs->trans("RIB").''.$langs->trans("RUM").'
'; - $invoicestatic->id = $obj->rowid; - $invoicestatic->ref = $obj->ref; + print ''; print $invoicestatic->getNomUrl(1, 'withdraw'); print ''; + print dol_escape_htmltag($invoicestatic->ref_supplier); + print ''; + print ''; $thirdpartystatic->fetch($obj->socid); print $thirdpartystatic->getNomUrl(1, 'ban'); print '
'.$langs->trans("None").'
"; + print "
"; + print ""; print "
\n"; } else { diff --git a/htdocs/compta/prelevement/factures.php b/htdocs/compta/prelevement/factures.php index 0ed75b5c3b8..cc416d7d530 100644 --- a/htdocs/compta/prelevement/factures.php +++ b/htdocs/compta/prelevement/factures.php @@ -21,7 +21,7 @@ /** * \file htdocs/compta/prelevement/factures.php * \ingroup prelevement - * \brief Page liste des factures prelevees + * \brief Page list of invoice paied by direct debit or credit transfer */ // Load Dolibarr environment @@ -174,6 +174,9 @@ if ($id > 0 || $ref) { // List of invoices $sql = "SELECT pf.rowid, p.type,"; $sql .= " f.rowid as facid, f.ref as ref, f.total_ttc,"; +if ($object->type == 'bank-transfer') { + $sql .= " f.ref_supplier,"; +} $sql .= " s.rowid as socid, s.nom as name, pl.statut, pl.amount as amount_requested"; $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p"; $sql .= ", ".MAIN_DB_PREFIX."prelevement_lignes as pl"; @@ -251,6 +254,9 @@ if ($resql) { print ''; print ''; print_liste_field_titre("Bill", $_SERVER["PHP_SELF"], "p.ref", '', $param, '', $sortfield, $sortorder); + if ($object->type == 'bank-transfer') { + print_liste_field_titre("RefSupplierShort", $_SERVER["PHP_SELF"], "f.ref_supplier", '', $param, '', $sortfield, $sortorder); + } print_liste_field_titre("ThirdParty", $_SERVER["PHP_SELF"], "s.nom", '', $param, '', $sortfield, $sortorder); print_liste_field_titre("AmountInvoice", $_SERVER["PHP_SELF"], "f.total_ttc", "", $param, 'class="right"', $sortfield, $sortorder); print_liste_field_titre("AmountRequested", $_SERVER["PHP_SELF"], "pl.amount", "", $param, 'class="right"', $sortfield, $sortorder); @@ -282,6 +288,12 @@ if ($resql) { print $invoicetmp->getNomUrl(1); print "\n"; + if ($object->type == 'bank-transfer') { + print '\n"; + } + print '\n"; @@ -322,6 +334,9 @@ if ($resql) { if ($num > 0) { print ''; print ''; + if ($object->type == 'bank-transfer') { + print ''; + } print ''; print ''; print ''; @@ -184,7 +184,7 @@ if ($resql) { } } else { $titlefortab = $langs->transnoentitiesnoconv("StandingOrders"); - print ''; + print ''; } print "
'; + print dol_escape_htmltag($invoicetmp->ref_supplier); + print "'; print $thirdpartytmp->getNomUrl(1); print "
'.$langs->trans("Total").'  '; //if ($totalinvoices != $object->amount) print img_warning("AmountOfFileDiffersFromSumOfInvoices"); // It is normal to have total that differs. For an amount of invoice of 100, request to pay may be 50 only. diff --git a/htdocs/compta/prelevement/index.php b/htdocs/compta/prelevement/index.php index d71314a08e2..71677f0051c 100644 --- a/htdocs/compta/prelevement/index.php +++ b/htdocs/compta/prelevement/index.php @@ -86,7 +86,7 @@ print '
'.$langs->trans("Statistics").''.$langs->trans("NbOfInvoiceToWithdraw").''; -print ''; +print ''; print $bprev->nbOfInvoiceToPay('direct-debit'); print ''; print '
'.$langs->trans("NoInvoiceToWithdraw", $titlefortab, $titlefortab).'
'.$langs->trans("NoInvoiceToWithdraw", $titlefortab, $titlefortab).'

"; } else { diff --git a/htdocs/compta/prelevement/list.php b/htdocs/compta/prelevement/list.php index 4906313cad1..8d9489bbec7 100644 --- a/htdocs/compta/prelevement/list.php +++ b/htdocs/compta/prelevement/list.php @@ -43,6 +43,7 @@ $toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'directdebitcredittransferlinelist'; // 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', 'alpha'); $type = GETPOST('type', 'aZ09'); @@ -188,12 +189,18 @@ if ($result) { $param = "&statut=".urlencode($statut); $param .= "&search_bon=".urlencode($search_bon); + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if ($type == 'bank-transfer') { $param .= '&type=bank-transfer'; } if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.urlencode($limit); } + $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')); print"\n\n"; print '
'."\n"; @@ -206,6 +213,8 @@ if ($result) { print ''; print ''; print ''; + print ''; + if ($type != '') { print ''; } @@ -214,7 +223,7 @@ if ($result) { if ($type == 'bank-transfer') { $title = $langs->trans("CreditTransferLines"); } - print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'generic', 0, '', '', $limit, 0, 0, 1); + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'generic', 0, $newcardbutton, '', $limit, 0, 0, 1); $moreforfilter = ''; @@ -262,61 +271,77 @@ if ($result) { $bon->id = $obj->rowid; $bon->ref = $obj->ref; $bon->statut = $obj->status; + $bon->date_echeance = $obj->datec; + $bon->total = $obj->amount; $company->id = $obj->socid; $company->name = $obj->name; $company->email = $obj->email; $company->code_client = $obj->code_client; - print '
'; + print '
'; + } + // Output Kanban - print '
'; - print $bon->getNomUrl(1); - print "
'; - print $line->LibStatut($obj->statut_ligne, 2); - print " "; - print ''; - print substr('000000'.$obj->rowid_ligne, -6); - print ''; + print $bon->getNomUrl(1); + print "'; - $link_to_bill = '/compta/facture/card.php?facid='; - $link_title = 'Invoice'; - $link_picto = 'bill'; - if ($type == 'bank-transfer') { - $link_to_bill = '/fourn/facture/card.php?facid='; - $link_title = 'SupplierInvoice'; - $link_picto = 'supplier_invoice'; + print ''; + print $line->LibStatut($obj->statut_ligne, 2); + print " "; + print ''; + print substr('000000'.$obj->rowid_ligne, -6); + print ''; + $link_to_bill = '/compta/facture/card.php?facid='; + $link_title = 'Invoice'; + $link_picto = 'bill'; + if ($type == 'bank-transfer') { + $link_to_bill = '/fourn/facture/card.php?facid='; + $link_title = 'SupplierInvoice'; + $link_picto = 'supplier_invoice'; + } + print ''; + print img_object($langs->trans($link_title), $link_picto); + print ' '.$obj->invoiceref."'; + print $company->getNomUrl(1); + print "'; + $link_to_tab = '/comm/card.php?socid='; + $link_code = $obj->code_client; + if ($type == 'bank-transfer') { + $link_to_tab = '/fourn/card.php?socid='; + $link_code = $obj->code_fournisseur; + } + print ''.$link_code."'.dol_print_date($db->jdate($obj->datec), 'day')."'.price($obj->amount)." 
'; - print $company->getNomUrl(1); - print "'; - $link_to_tab = '/comm/card.php?socid='; - $link_code = $obj->code_client; - if ($type == 'bank-transfer') { - $link_to_tab = '/fourn/card.php?socid='; - $link_code = $obj->code_fournisseur; - } - print ''.$link_code."'.dol_print_date($db->jdate($obj->datec), 'day')."'.price($obj->amount)." 
'; + print '
'; + } + // Output Kanban - print '
'; - print $directdebitorder->getNomUrl(1); - print "
'.dol_print_date($db->jdate($obj->datec), 'day')."'; + print $directdebitorder->getNomUrl(1); + print "'.price($obj->amount)."'.dol_print_date($db->jdate($obj->datec), 'day')."'; - print $bon->LibStatut($obj->statut, 5); - print ''.price($obj->amount)."'; + print $bon->LibStatut($obj->statut, 5); + print '
'.$objp->pcg_type.'
'.dol_escape_htmltag($objp->pcg_type).'
'; - print $objp->pcg_type; - print ($objp->name ? ' ('.$objp->name.')' : ' ('.$langs->trans("Unknown").')'); + print dol_escape_htmltag($objp->pcg_type); + print ($objp->name ? ' ('.dol_escape_htmltag($objp->name).')' : ' ('.$langs->trans("Unknown").')'); print "'.price($objp->amount)."'.price($objp->amount)."
'; - print $objp->pcg_type; + print dol_escape_htmltag($objp->pcg_type); print "'.price($objp->amount)."'.price($objp->amount)."
    '.length_accountg($cpt['account_number']).' - '.$cpt['account_label'].''.price($resultN).''.price($resultN).'
'.$langs->trans("Income").''.price(price2num($total_ht_income, 'MT')).''.price(price2num($total_ht_income, 'MT')).''.price(price2num($total_ttc_income, 'MT')).''.price(price2num($total_ttc_income, 'MT')).'
'.$langs->trans("Outcome").''.price(price2num(-$total_ht_outcome, 'MT')).''.price(price2num(-$total_ht_outcome, 'MT')).''.price(price2num(-$total_ttc_outcome, 'MT')).''.price(price2num(-$total_ttc_outcome, 'MT')).'
'.$langs->trans("Profit").''.price(price2num($total_ht, 'MT')).''.price(price2num($total_ht, 'MT')).''.price(price2num($total_ttc, 'MT')).''.price(price2num($total_ttc, 'MT')).'
"; diff --git a/htdocs/compta/resultat/result.php b/htdocs/compta/resultat/result.php index 3f3e14e2d61..e49f06034aa 100644 --- a/htdocs/compta/resultat/result.php +++ b/htdocs/compta/resultat/result.php @@ -184,8 +184,8 @@ llxheader('', $langs->trans('ReportInOut')); $formaccounting = new FormAccounting($db); $form = new Form($db); -$textprevyear = ''.img_previous().''; -$textnextyear = ' '.img_next().''; +$textprevyear = ''.img_previous().''; +$textnextyear = '   '.img_next().''; @@ -309,8 +309,8 @@ if ($modecompta == 'CREANCES-DETTES') { if (!is_array($cats) && $cats < 0) { setEventMessages(null, $AccCat->errors, 'errors'); } elseif (is_array($cats) && count($cats) > 0) { + // Loop on each custom group of accounts foreach ($cats as $cat) { - // Loop on each group if (!empty($cat['category_type'])) { // category calculed // When we enter here, $sommes was filled by group of accounts @@ -319,10 +319,10 @@ if ($modecompta == 'CREANCES-DETTES') { print '
'; + // Code and Label + print ''; print dol_escape_htmltag($cat['code']); - print ''; + print ''; print dol_escape_htmltag($cat['label']); print ''.$rshort.''.price($r).''.price($r).''.price($r).''.price($r).''.price($r).''.price($r).'
'; + print ''; print dol_escape_htmltag($cat['code']); print ''; - print dol_escape_htmltag($cat['label']); + $labeltoshow = dol_escape_htmltag($cat['label']); if (count($cpts) > 0 && !empty($cpts[0])) { // Show example of 5 first accounting accounts $i = 0; foreach ($cpts as $cpt) { if ($i > 5) { - print '...)'; + $labeltoshow .= '...)'; break; } if ($i > 0) { - print ', '; + $labeltoshow .= ', '; } else { - print ' ('; + $labeltoshow .= ' ('; } - print dol_escape_htmltag($cpt['account_number']); + $labeltoshow .= dol_escape_htmltag($cpt['account_number']); $i++; } if ($i <= 5) { - print ')'; + $labeltoshow .= ')'; } } else { - print ' - '.$langs->trans("GroupIsEmptyCheckSetup").''; + $labeltoshow .= ' - '.$langs->trans("GroupIsEmptyCheckSetup").''; } + print ''; + print $labeltoshow; print ''.price($totCat['NP']).''.price($totCat['N']).''.price($totCat['N']).'
'; - print '     '.length_accountg($cpt['account_number']); - print ' - '; - print $cpt['account_label']; + + if (isset($cpt['account_number'])) { + $labeldetail = '     '.length_accountg($cpt['account_number']).' - '.$cpt['account_label']; + } else { + $labeldetail = '-'; + } + + print ''; + print dol_escape_htmltag($labeldetail); print ''.price($resultNP).''.price($resultN).''.price($resultN).''.price($resultM).''.price($resultM).'
'; print '
'; if ($action == 'editmode') { - $form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'mode_reglement_id'); + $form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', '', 1, 1); } else { $form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'none'); } diff --git a/htdocs/compta/sociales/class/chargesociales.class.php b/htdocs/compta/sociales/class/chargesociales.class.php index 37b3540a0f5..3619ebfad7a 100644 --- a/htdocs/compta/sociales/class/chargesociales.class.php +++ b/htdocs/compta/sociales/class/chargesociales.class.php @@ -749,4 +749,41 @@ class ChargeSociales extends CommonObject $this->type = 1; $this->type_label = 'Type of social contribution'; } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $conf, $langs; + + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(0) : $this->ref).''; + if (property_exists($this, 'label')) { + $return .= '  
'.$this->label.'
'; + } + if (property_exists($this, 'date_ech')) { + $return .= '
'.$langs->trans("DateEnd").' : '.dol_print_date($this->date_ech, 'day').''; + } + if (property_exists($this, 'amount')) { + $return .= '
'; + $return .= ''.price($this->amount, 0, $langs, 1, -1, -1, $conf->currency).''; + } + if (method_exists($this, 'LibStatut')) { + $return .= '
'.$this->LibStatut($this->paye, 5, $this->alreadypaid).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php index 0bf402c6c21..73d101d7ae6 100644 --- a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php +++ b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php @@ -365,20 +365,17 @@ class PaymentSocialContribution extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."paiementcharge SET"; - - $sql .= " fk_charge=".(isset($this->fk_charge) ? $this->fk_charge : "null").","; + $sql .= " fk_charge=".(isset($this->fk_charge) ? ((int) $this->fk_charge) : "null").","; $sql .= " datec=".(dol_strlen($this->datec) != 0 ? "'".$this->db->idate($this->datec)."'" : 'null').","; $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null').","; $sql .= " datep=".(dol_strlen($this->datep) != 0 ? "'".$this->db->idate($this->datep)."'" : 'null').","; - $sql .= " amount=".(isset($this->amount) ? $this->amount : "null").","; - $sql .= " fk_typepaiement=".(isset($this->fk_typepaiement) ? $this->fk_typepaiement : "null").","; + $sql .= " amount=".(isset($this->amount) ? price2num($this->amount) : "null").","; + $sql .= " fk_typepaiement=".(isset($this->fk_typepaiement) ? ((int) $this->fk_typepaiement) : "null").","; $sql .= " num_paiement=".(isset($this->num_payment) ? "'".$this->db->escape($this->num_payment)."'" : "null").","; $sql .= " note=".(isset($this->note) ? "'".$this->db->escape($this->note)."'" : "null").","; - $sql .= " fk_bank=".(isset($this->fk_bank) ? $this->fk_bank : "null").","; - $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? $this->fk_user_creat : "null").","; - $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null").""; - - + $sql .= " fk_bank=".(isset($this->fk_bank) ? ((int) $this->fk_bank) : "null").","; + $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? ((int) $this->fk_user_creat) : "null").","; + $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? ((int) $this->fk_user_modif) : "null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); diff --git a/htdocs/compta/sociales/list.php b/htdocs/compta/sociales/list.php index f70ed44de0c..a925fe6968d 100644 --- a/htdocs/compta/sociales/list.php +++ b/htdocs/compta/sociales/list.php @@ -47,6 +47,8 @@ $massaction = GETPOST('massaction', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); $optioncss = GETPOST('optioncss', 'alpha'); $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'sclist'; +$mode = GETPOST('mode', 'alpha'); + $search_ref = GETPOST('search_ref', 'int'); $search_label = GETPOST('search_label', 'alpha'); @@ -294,6 +296,9 @@ $num = $db->num_rows($resql); $i = 0; $param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -367,6 +372,8 @@ if ($search_date_limit_endyear) { } $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')); if ($user->rights->tax->charges->creer) { $newcardbutton .= dolGetButtonTitle($langs->trans('MenuNewSocialContribution'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/compta/sociales/card.php?action=create'); } @@ -382,6 +389,8 @@ print ''; print ''; print ''; print ''; +print ''; + $center = ''; @@ -501,9 +510,9 @@ if (!empty($arrayfields['cs.amount']['checked'])) { // Filter: Status if (!empty($arrayfields['cs.paye']['checked'])) { - print '
'; + print ''; $liststatus = array('0'=>$langs->trans("Unpaid"), '1'=>$langs->trans("Paid")); - print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100 onrightofpage', 1); + print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1); print '
'.(($offset * $limit) + $i).'
'; + print '
'; } - } + // Output Kanban - // Ref - if (!empty($arrayfields['cs.rowid']['checked'])) { - print '
'.$chargesociale_static->getNomUrl(1, '20').'
'.dol_escape_htmltag($obj->label).''.dol_escape_htmltag($typelabeltoshow).''.dol_print_date($db->jdate($obj->date_ech), 'day').''.dol_print_date($db->jdate($obj->periode), 'day').''; - if ($obj->project_id > 0) { - print $projectstatic->getNomUrl(1); - } - print ''; - if (!empty($obj->fk_user)) { - if (!empty($TLoadedUsers[$obj->fk_user])) { - $ustatic = $TLoadedUsers[$obj->fk_user]; - } else { - $ustatic = new User($db); - $ustatic->fetch($obj->fk_user); - $TLoadedUsers[$obj->fk_user] = $ustatic; + // Line number + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { + print ''.(($offset * $limit) + $i).''.$chargesociale_static->getNomUrl(1, '20').''.dol_escape_htmltag($obj->label).''.dol_escape_htmltag($typelabeltoshow).''.dol_print_date($db->jdate($obj->date_ech), 'day').''.dol_print_date($db->jdate($obj->periode), 'day').''; + if ($obj->project_id > 0) { + print $projectstatic->getNomUrl(1); + } + print ''; + if (!empty($obj->fk_user)) { + if (!empty($TLoadedUsers[$obj->fk_user])) { + $ustatic = $TLoadedUsers[$obj->fk_user]; + } else { + $ustatic = new User($db); + $ustatic->fetch($obj->fk_user); + $TLoadedUsers[$obj->fk_user] = $ustatic; + } + print $ustatic->getNomUrl(-1); + } + print "payment_code)).'">'; + if (!empty($obj->payment_code)) { + print $langs->trans("PaymentTypeShort".$obj->payment_code); + } + print ''; + if ($obj->fk_account > 0) { + $bankstatic->id = $obj->fk_account; + $bankstatic->ref = $obj->bref; + $bankstatic->number = $obj->bnumber; + $bankstatic->iban = $obj->iban; + $bankstatic->bic = $obj->bic; + $bankstatic->currency_code = $langs->trans("Currency".$obj->currency_code); + $bankstatic->account_number = $obj->account_number; + $bankstatic->clos = $obj->clos; + + //$accountingjournal->fetch($obj->fk_accountancy_journal); + //$bankstatic->accountancy_journal = $accountingjournal->getNomUrl(0, 1, 1, '', 1); + + $bankstatic->label = $obj->blabel; + print $bankstatic->getNomUrl(1); + } + print ''.price($obj->amount).''.$chargesociale_static->LibStatut($obj->paye, 5, $obj->alreadypayed).'
payment_code)).'">'; - if (!empty($obj->payment_code)) { - print $langs->trans("PaymentTypeShort".$obj->payment_code); - } - print ''; - if ($obj->fk_account > 0) { - $bankstatic->id = $obj->fk_account; - $bankstatic->ref = $obj->bref; - $bankstatic->number = $obj->bnumber; - $bankstatic->iban = $obj->iban; - $bankstatic->bic = $obj->bic; - $bankstatic->currency_code = $langs->trans("Currency".$obj->currency_code); - $bankstatic->account_number = $obj->account_number; - $bankstatic->clos = $obj->clos; - - //$accountingjournal->fetch($obj->fk_accountancy_journal); - //$bankstatic->accountancy_journal = $accountingjournal->getNomUrl(0, 1, 1, '', 1); - - $bankstatic->label = $obj->blabel; - print $bankstatic->getNomUrl(1); - } - print ''.price($obj->amount).''.$chargesociale_static->LibStatut($obj->paye, 5, $obj->alreadypayed).'
'.price($totalpermonth[$j]).''.price(empty($totalpermonth[$j]) ? 0 : $totalpermonth[$j]).''.price($totalpermonth['total']).''.price(empty($totalpermonth['total']) ? 0 : $totalpermonth['total']).'
'; if ($annee < $year_end || ($annee == $year_end && $mois <= $month_end)) { - if ($cum[$case]) { + if (!empty($cum[$case])) { $now_show_delta = 1; // On a trouve le premier mois de la premiere annee generant du chiffre. if ($modecompta != 'BOOKKEEPING') { print ''; @@ -455,22 +455,22 @@ for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) { //var_dump($annee.' '.$year_end.' '.$mois.' '.$month_end); if ($annee < $year_end || ($annee == $year_end && $mois <= $month_end)) { if ($annee_decalage > $minyear && $case <= $casenow) { - if ($cum[$caseprev] && $cum[$case]) { + if (!empty($cum[$caseprev]) && !empty($cum[$case])) { $percent = (round(($cum[$case] - $cum[$caseprev]) / $cum[$caseprev], 4) * 100); //print "X $cum[$case] - $cum[$caseprev] - $cum[$caseprev] - $percent X"; print ($percent >= 0 ? "+$percent" : "$percent").'%'; } - if ($cum[$caseprev] && !$cum[$case]) { + if (!empty($cum[$caseprev]) && empty($cum[$case])) { print '-100%'; } - if (!$cum[$caseprev] && $cum[$case]) { + if (empty($cum[$caseprev]) && !empty($cum[$case])) { //print '+Inf%'; - print ($total_ht[$annee] ?price($total_ht[$annee]) : "0"); + print (empty($total_ht[$annee]) ? '0' : price($total_ht[$annee])); print " '; - print ($total[$annee] ?price($total[$annee]) : "0"); + print (empty($total[$annee]) ? '0' : price($total[$annee])); print " '; print ($percent >= 0 ? "+$percent" : "$percent").'%'; print '-100%+'.$langs->trans('Inf').'%+0%'; - if ($total[$annee] || ($minyear <= $annee && $annee <= max($nowyear, $maxyear))) { + if (!empty($total[$annee]) || ($minyear <= $annee && $annee <= max($nowyear, $maxyear))) { print '-'; } else { print ' '; diff --git a/htdocs/compta/stats/supplier_turnover.php b/htdocs/compta/stats/supplier_turnover.php index 88e04e89303..7e673c05f75 100644 --- a/htdocs/compta/stats/supplier_turnover.php +++ b/htdocs/compta/stats/supplier_turnover.php @@ -186,7 +186,10 @@ $moreparam = array(); if (!empty($modecompta)) { $moreparam['modecompta'] = $modecompta; } -report_header($name, $namelink, $period, $periodlink, $description, $builddate, $exportlink, $moreparam, $calcmode); + +$exportlink = ''; + +report_header($name, '', $period, $periodlink, $description, $builddate, $exportlink, $moreparam, $calcmode); if (isModEnabled('accounting') && $modecompta != 'BOOKKEEPING') { print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1); @@ -347,7 +350,7 @@ for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) { if ($modecompta == 'CREANCES-DETTES') { // Valeur CA du mois w/o VAT print ''; - if ($cum_ht[$case]) { + if (!empty($cum_ht[$case])) { $now_show_delta = 1; // On a trouve le premier mois de la premiere annee generant du chiffre. print ''.price($cum_ht[$case], 1).''; } else { @@ -362,7 +365,7 @@ for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) { // Valeur CA du mois print ''; - if ($cum[$case]) { + if (!empty($cum[$case])) { $now_show_delta = 1; // On a trouve le premier mois de la premiere annee generant du chiffre. if ($modecompta != 'BOOKKEEPING') { print ''; @@ -382,22 +385,22 @@ for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) { // Pourcentage du mois if ($annee_decalage > $minyear && $case <= $casenow) { - if ($cum[$caseprev] && $cum[$case]) { + if (!empty($cum[$caseprev]) && !empty($cum[$case])) { $percent = (round(($cum[$case] - $cum[$caseprev]) / $cum[$caseprev], 4) * 100); //print "X $cum[$case] - $cum[$caseprev] - $cum[$caseprev] - $percent X"; print ''.($percent >= 0 ? "+$percent" : "$percent").'%-100%+Inf%-+0%-
'; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -389,16 +392,6 @@ if ($refresh === true) { $hookmanager->initHooks(array('externalbalance')); $reshook = $hookmanager->executeHooks('addVatLine', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks - if (!is_array($x_coll) && $coll_listbuy == -1) { - $langs->load("errors"); - print ''; - break; - } - if (!is_array($x_paye) && $coll_listbuy == -2) { - print ''; - break; - } - print ''; print ''; diff --git a/htdocs/compta/tva/list.php b/htdocs/compta/tva/list.php index 1c70cf93c22..c839625a705 100644 --- a/htdocs/compta/tva/list.php +++ b/htdocs/compta/tva/list.php @@ -44,6 +44,7 @@ $massaction = GETPOST('massaction', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); $optioncss = GETPOST('optioncss', 'alpha'); $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'salestaxeslist'; +$mode = GETPOST('mode', 'alpha'); $search_ref = GETPOST('search_ref', 'alpha'); $search_label = GETPOST('search_label', 'alpha'); @@ -230,6 +231,9 @@ if (!$resql) { $num = $db->num_rows($resql); $param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER['PHP_SELF']) { $param .= '&contextpage='.$contextpage; } @@ -317,7 +321,10 @@ $url = DOL_URL_ROOT.'/compta/tva/card.php?action=create'; if (!empty($socid)) { $url .= '&socid='.$socid; } -$newcardbutton = dolGetButtonTitle($langs->trans('NewVATPayment'), '', 'fa fa-plus-circle', $url, '', $user->rights->tax->charges->creer); +$newcardbutton = ''; +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('NewVATPayment'), '', 'fa fa-plus-circle', $url, '', $user->rights->tax->charges->creer); print_barre_liste($langs->trans("VATDeclarations"), $page, $_SERVER['PHP_SELF'], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1); $varpage = empty($contextpage) ? $_SERVER['PHP_SELF'] : $contextpage; @@ -398,9 +405,9 @@ if (!empty($arrayfields['t.amount']['checked'])) { // Status if (!empty($arrayfields['t.status']['checked'])) { - print ''; } @@ -461,116 +468,134 @@ while ($i < min($num, $limit)) { $tva_static->id = $obj->rowid; $tva_static->ref = $obj->rowid; $tva_static->label = $obj->label; + $tva_static->paiementtype = $obj->paye; + $tva_static->type_payment = $obj->payment_code; + $tva_static->datev = $obj->datev; + $tva_static->amount = $obj->amount; - print ''; - - // No - if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; - if (!$i) { - $totalarray['nbfield']++; + print $tva_static->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print ''; + print ''; } - } + } else { + print ''; - // Label - if (!empty($arrayfields['t.label']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // No + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Date end period - if (!empty($arrayfields['t.datev']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Ref + if (!empty($arrayfields['t.rowid']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Date payment - /*if (!empty($arrayfields['t.datep']['checked'])) { - print ''; - if (!$i) $totalarray['nbfield']++; - }*/ - - // Type - if (!empty($arrayfields['t.fk_typepayment']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Label + if (!empty($arrayfields['t.label']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Account - if (!empty($arrayfields['t.fk_account']['checked'])) { - print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - print ''; - if (!$i) $totalarray['nbfield']++; - } - // Amount - if (!empty($arrayfields['t.amount']['checked'])) { - $total = $total + $obj->amount; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - $totalarray['pos'][$totalarray['nbfield']] = 'amount'; - if (empty($totalarray['val']['amount'])) { - $totalarray['val']['amount'] = $obj->amount; - } else { - $totalarray['val']['amount'] += $obj->amount; - } - } + // Date payment + /*if (!empty($arrayfields['t.datep']['checked'])) { + print ''; + if (!$i) $totalarray['nbfield']++; + }*/ - if (!empty($arrayfields['t.status']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Type + if (!empty($arrayfields['t.fk_typepayment']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } + + // Account + if (!empty($arrayfields['t.fk_account']['checked'])) { + print ''; + if (!$i) $totalarray['nbfield']++; + } + + // Amount if (!empty($arrayfields['t.amount']['checked'])) { - $totalarray['pos'][$totalarray['nbfield']] = ''; + $total = $total + $obj->amount; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + $totalarray['pos'][$totalarray['nbfield']] = 'amount'; + if (empty($totalarray['val']['amount'])) { + $totalarray['val']['amount'] = $obj->amount; + } else { + $totalarray['val']['amount'] += $obj->amount; + } } + + if (!empty($arrayfields['t.status']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!empty($arrayfields['t.amount']['checked'])) { + $totalarray['pos'][$totalarray['nbfield']] = ''; + } + } + + // Buttons + print ''; + + print ''; } - // Buttons - print ''; - - print ''; - $i++; } diff --git a/htdocs/contact/agenda.php b/htdocs/contact/agenda.php index 29706f48b49..d0d2211c21c 100644 --- a/htdocs/contact/agenda.php +++ b/htdocs/contact/agenda.php @@ -81,7 +81,7 @@ if (GETPOST('actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); } $search_agenda_label = GETPOST('search_agenda_label'); @@ -262,11 +262,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { if (is_object($objthirdparty) && get_class($objthirdparty) == 'Societe') { $out .= '&originid='.$objthirdparty->id.($objthirdparty->id > 0 ? '&socid='.$objthirdparty->id : ''); } - $out .= (!empty($objcon->id) ? '&contactid='.$objcon->id : '').'&origin=contact&originid='.$object->id.'&percentage=-1&backtopage='.urlencode($_SERVER['PHP_SELF'].($objcon->id > 0 ? '?id='.$objcon->id : '')); + $out .= (!empty($objcon->id) ? '&contactid='.$objcon->id : '').'&origin=contact&originid='.$object->id.'&backtopage='.urlencode($_SERVER['PHP_SELF'].($objcon->id > 0 ? '?id='.$objcon->id : '')); $out .= '&datep='.urlencode(dol_print_date(dol_now(), 'dayhourlog')); } - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { $newcardbutton .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out); } } diff --git a/htdocs/contact/canvas/default/actions_contactcard_default.class.php b/htdocs/contact/canvas/default/actions_contactcard_default.class.php index 846f7440f97..f126b8c32a0 100644 --- a/htdocs/contact/canvas/default/actions_contactcard_default.class.php +++ b/htdocs/contact/canvas/default/actions_contactcard_default.class.php @@ -115,30 +115,5 @@ class ActionsContactCardDefault extends ActionsContactCardCommon $this->tpl['action_delete'] = $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$this->object->id, $langs->trans("DeleteContact"), $langs->trans("ConfirmDeleteContact"), "confirm_delete", '', 0, 1); } } - - if ($action == 'list') { - $this->LoadListDatas($limit, $offset, $sortfield, $sortorder); - } - } - - - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Fetch datas list and save into ->list_datas - * - * @param int $limit Limit number of responses - * @param int $offset Offset for first response - * @param string $sortfield Sort field - * @param string $sortorder Sort order ('ASC' or 'DESC') - * @return void - */ - public function LoadListDatas($limit, $offset, $sortfield, $sortorder) - { - // phpcs:enable - global $conf, $langs; - - //$this->getFieldList(); - - $this->list_datas = array(); } } diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index c5184a18454..cd94f4ebbac 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -213,11 +213,6 @@ if (empty($reshook)) { $object->town = (string) GETPOST("town", 'alpha'); $object->country_id = (int) GETPOST("country_id", 'int'); $object->state_id = (int) GETPOST("state_id", 'int'); - //$object->jabberid = GETPOST("jabberid", 'alpha'); - //$object->skype = GETPOST("skype", 'alpha'); - //$object->twitter = GETPOST("twitter", 'alpha'); - //$object->facebook = GETPOST("facebook", 'alpha'); - //$object->linkedin = GETPOST("linkedin", 'alpha'); $object->socialnetworks = array(); if (isModEnabled('socialnetworks')) { foreach ($socialnetworks as $key => $value) { @@ -322,9 +317,6 @@ if (empty($reshook)) { $result = $object->fetch($id); $object->oldcopy = clone $object; - $object->old_lastname = (string) GETPOST("old_lastname", 'alpha'); - $object->old_firstname = (string) GETPOST("old_firstname", 'alpha'); - $result = $object->delete(); // TODO Add $user as first param if ($result > 0) { setEventMessages("RecordDeleted", null, 'mesgs'); @@ -362,7 +354,7 @@ if (empty($reshook)) { if (!$error) { $contactid = GETPOST("contactid", 'int'); $object->fetch($contactid); - $object->fetchRoles($contactid); + $object->fetchRoles(); // Photo save $dir = $conf->societe->multidir_output[$object->entity]."/contact/".$object->id."/photos"; @@ -408,9 +400,6 @@ if (empty($reshook)) { $object->oldcopy = clone $object; - $object->old_lastname = (string) GETPOST("old_lastname", 'alpha'); - $object->old_firstname = (string) GETPOST("old_firstname", 'alpha'); - $object->socid = GETPOST("socid", 'int'); $object->lastname = (string) GETPOST("lastname", 'alpha'); $object->firstname = (string) GETPOST("firstname", 'alpha'); @@ -425,11 +414,6 @@ if (empty($reshook)) { $object->email = (string) GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL); $object->no_email = GETPOST("no_email", "int"); - //$object->jabberid = GETPOST("jabberid", 'alpha'); - //$object->skype = GETPOST("skype", 'alpha'); - //$object->twitter = GETPOST("twitter", 'alpha'); - //$object->facebook = GETPOST("facebook", 'alpha'); - //$object->linkedin = GETPOST("linkedin", 'alpha'); $object->socialnetworks = array(); if (isModEnabled('socialnetworks')) { foreach ($socialnetworks as $key => $value) { @@ -862,23 +846,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''; } - + // Social network if (isModEnabled('socialnetworks')) { - foreach ($socialnetworks as $key => $value) { - if ($value['active']) { - print ''; - print ''; - print ''; - print ''; - } elseif (!empty($object->socialnetworks[$key])) { - print ''; - } - } + $object->showSocialNetwork($socialnetworks, ($conf->browser->layout == 'phone' ? 2 : 4)); } // Visibility @@ -986,7 +956,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { /* set country at end because it will trigger page refresh */ console.log("Set country id to '.dol_escape_js($objsoc->country_id).'"); $(\'select[name="country_id"]\').val("'.dol_escape_js($objsoc->country_id).'").trigger("change"); /* trigger required to update select2 components */ - }); + }); })'."\n"; print ''."\n"; } @@ -996,8 +966,6 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''; print ''; print ''; - print ''; - print ''; if (!empty($backtopage)) { print ''; } @@ -1047,7 +1015,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
'; print ''; print '
'; - if ($conf->use_javascript_ajax) { + if (!empty($conf->use_javascript_ajax)) { print ''.$langs->trans('CopyAddressFromSoc').'
'; } print '
'; @@ -1150,22 +1118,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''; } + // Social network if (isModEnabled('socialnetworks')) { - foreach ($socialnetworks as $key => $value) { - if ($value['active']) { - print ''; - print ''; - print ''; - print ''; - } elseif (!empty($object->socialnetworks[$key])) { - print ''; - } - } + $object->showSocialNetwork($socialnetworks, ($conf->browser->layout == 'phone' ? 2 : 4)); } // Visibility diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index d535da76199..52ea2b69c8d 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -32,6 +32,7 @@ * \brief File of contacts class */ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonsocialnetworks.class.php'; /** @@ -39,6 +40,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; */ class Contact extends CommonObject { + use CommonSocialNetworks; + /** * @var string ID to identify managed object */ @@ -130,6 +133,16 @@ class Contact extends CommonObject public $civility_code; public $civility; + /** + * @var int egroupware_id + */ + public $egroupware_id; + + /** + * @var int birthday_alert + */ + public $birthday_alert; + /** * @var string The civilite code, not an integer * @deprecated @@ -137,6 +150,11 @@ class Contact extends CommonObject */ public $civilite; + /** + * @var string fullname + */ + public $fullname; + /** * @var string Address */ @@ -353,9 +371,9 @@ class Contact extends CommonObject $this->fields['fk_soc']['searchall'] = 0; } - if (empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES)) { // Default behaviour - $this->field['fk_stcommcontact']['enabled'] = 0; - $this->field['fk_prospectcontactlevel']['enabled'] = 0; + if (!empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES)) { // Default behaviour + $this->fields['fk_stcommcontact']['enabled'] = 0; + $this->fields['fk_prospectlevel']['enabled'] = 0; } // Unset fields that are disabled @@ -608,7 +626,7 @@ class Contact extends CommonObject $sql .= ", phone_perso = ".(isset($this->phone_perso) ? "'".$this->db->escape($this->phone_perso)."'" : "NULL"); $sql .= ", phone_mobile = ".(isset($this->phone_mobile) ? "'".$this->db->escape($this->phone_mobile)."'" : "NULL"); $sql .= ", priv = '".$this->db->escape($this->priv)."'"; - $sql .= ", fk_prospectcontactlevel = '".$this->db->escape($this->fk_prospectlevel)."'"; + $sql .= ", fk_prospectlevel = '".$this->db->escape($this->fk_prospectlevel)."'"; if (isset($this->stcomm_id)) { $sql .= ", fk_stcommcontact = ".($this->stcomm_id > 0 || $this->stcomm_id == -1 ? $this->stcomm_id : "0"); } @@ -684,22 +702,6 @@ class Contact extends CommonObject $tmpobj->socialnetworks = $this->socialnetworks; $usermustbemodified++; } - // if ($tmpobj->skype != $this->skype) { - // $tmpobj->skype = $this->skype; - // $usermustbemodified++; - // } - // if ($tmpobj->twitter != $this->twitter) { - // $tmpobj->twitter = $this->twitter; - // $usermustbemodified++; - // } - // if ($tmpobj->facebook != $this->facebook) { - // $tmpobj->facebook = $this->facebook; - // $usermustbemodified++; - // } - // if ($tmpobj->linkedin != $this->linkedin) { - // $tmpobj->linkedin = $this->linkedin; - // $usermustbemodified++; - // } if ($usermustbemodified) { $result = $tmpobj->update($user, 0, 1, 1, 1); if ($result < 0) { @@ -832,9 +834,6 @@ class Contact extends CommonObject if ($this->fax && !empty($conf->global->LDAP_CONTACT_FIELD_FAX)) { $info[$conf->global->LDAP_CONTACT_FIELD_FAX] = $this->fax; } - if ($this->skype && !empty($conf->global->LDAP_CONTACT_FIELD_SKYPE)) { - $info[$conf->global->LDAP_CONTACT_FIELD_SKYPE] = $this->skype; - } if ($this->note_private && !empty($conf->global->LDAP_CONTACT_FIELD_DESCRIPTION)) { $info[$conf->global->LDAP_CONTACT_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note_private, 2); } @@ -987,7 +986,7 @@ class Contact extends CommonObject $sql .= " c.socialnetworks,"; $sql .= " c.photo,"; $sql .= " c.priv, c.note_private, c.note_public, c.default_lang, c.canvas,"; - $sql .= " c.fk_prospectcontactlevel, c.fk_stcommcontact, st.libelle as stcomm, st.picto as stcomm_picto,"; + $sql .= " c.fk_prospectlevel, c.fk_stcommcontact, st.libelle as stcomm, st.picto as stcomm_picto,"; $sql .= " c.import_key,"; $sql .= " c.datec as date_creation, c.tms as date_modification,"; $sql .= " co.label as country, co.code as country_code,"; @@ -1054,7 +1053,7 @@ class Contact extends CommonObject $this->poste = $obj->poste; $this->statut = $obj->statut; - $this->fk_prospectlevel = $obj->fk_prospectcontactlevel; + $this->fk_prospectlevel = $obj->fk_prospectlevel; $transcode = $langs->trans('StatusProspect'.$obj->fk_stcommcontact); $libelle = ($transcode != 'StatusProspect'.$obj->fk_stcommcontact ? $transcode : $obj->stcomm); @@ -1700,8 +1699,8 @@ class Contact extends CommonObject * Adds it to non existing supplied categories. * Existing categories are left untouch. * - * @param int[]|int $categories Category or categories IDs - * @return void + * @param int[]|int $categories Category or categories IDs + * @return int <0 if KO, >0 if OK */ public function setCategories($categories) { @@ -1712,18 +1711,18 @@ class Contact extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'socpeople', 'societe_contacts' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -1789,6 +1788,8 @@ class Contact extends CommonObject $sql = "SELECT sc.fk_socpeople as id, sc.fk_c_type_contact"; $sql .= " FROM ".MAIN_DB_PREFIX."c_type_contact tc"; $sql .= ", ".MAIN_DB_PREFIX."societe_contacts sc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."socpeople sp"; + $sql .= " ON sc.fk_socpeople = sp.rowid AND sp.statut = 1"; $sql .= " WHERE sc.fk_soc =".((int) $this->socid); $sql .= " AND sc.fk_c_type_contact=tc.rowid"; $sql .= " AND tc.element = '".$this->db->escape($element)."'"; @@ -2115,4 +2116,48 @@ class Contact extends CommonObject } return 0; } + + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + //var_dump($this->photo);exit; + if (property_exists($this, 'photo') && !is_null($this->photo)) { + $return.= Form::showphoto('contact', $this, 0, 60, 0, 'photokanban photoref photowithmargin photologintooltip', 'small', 0, 1); + } else { + $return .= img_picto('', $this->picto); + } + $return .= ''; + $return .= '
'; + $return .= '
'.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).'
'; + + if (property_exists($this, 'thirdparty') && is_object($this->thirdparty)) { + $return .= '
'.$this->thirdparty->getNomUrl(1).'
'; + } + /*if (property_exists($this, 'phone_pro') && !empty($this->phone_pro)) { + $return .= '
'.img_picto($langs->trans("Phone"), 'phone'); + $return .= ' '.$this->phone_pro.''; + }*/ + /*if (method_exists($this, 'LibPubPriv')) { + $return .= '
'.$langs->trans("Visibility").''; + $return .= ' : '.$this->LibPubPriv($this->priv).''; + }*/ + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index e8c4174af71..f34c477ff71 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -53,6 +53,7 @@ $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'contactlist'; +$mode = GETPOST('mode', 'alpha'); // Security check $id = GETPOST('id', 'int'); @@ -72,6 +73,7 @@ $search_firstlast_only = GETPOST("search_firstlast_only", 'alpha'); $search_lastname = GETPOST("search_lastname", 'alpha'); $search_firstname = GETPOST("search_firstname", 'alpha'); $search_societe = GETPOST("search_societe", 'alpha'); +$search_societe_alias = GETPOST("search_societe_alias", 'alpha'); $search_poste = GETPOST("search_poste", 'alpha'); $search_phone_perso = GETPOST("search_phone_perso", 'alpha'); $search_phone_pro = GETPOST("search_phone_pro", 'alpha'); @@ -99,10 +101,10 @@ $search_type = GETPOST('search_type', 'alpha'); $search_address = GETPOST('search_address', 'alpha'); $search_zip = GETPOST('search_zip', 'alpha'); $search_town = GETPOST('search_town', 'alpha'); -$search_import_key = GETPOST("search_import_key", "alpha"); +$search_import_key = GETPOST("search_import_key", 'alpha'); $search_country = GETPOST("search_country", 'intcomma'); $search_roles = GETPOST("search_roles", 'array'); -$search_level = GETPOST("search_level", "array"); +$search_level = GETPOST("search_level", 'array'); $search_stcomm = GETPOST('search_stcomm', 'int'); if ($search_status === '') { @@ -192,6 +194,7 @@ foreach ($object->fields as $key => $val) { // Add none object fields for "search in all" if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) { $fieldstosearchall['s.nom'] = "ThirdParty"; + $fieldstosearchall['s.name_alias'] = "AliasNames"; } // Definition of fields for list @@ -213,6 +216,7 @@ foreach ($object->fields as $key => $val) { $arrayfields['country.code_iso'] = array('label'=>"Country", 'position'=>66, 'checked'=>0); if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) { $arrayfields['s.nom'] = array('label'=>"ThirdParty", 'position'=>113, 'checked'=> 1); + $arrayfields['s.name_alias'] = array('label'=>"AliasNameShort", 'position'=>114, 'checked'=> 1); } $arrayfields['unsubscribed'] = array( @@ -277,6 +281,7 @@ if (empty($reshook)) { $search_lastname = ""; $search_firstname = ""; $search_societe = ""; + $search_societe_alias = ""; $search_town = ""; $search_address = ""; $search_zip = ""; @@ -345,13 +350,21 @@ $formother = new FormOther($db); $formcompany = new FormCompany($db); $contactstatic = new Contact($db); -$morejs=array(); +$morejs = array(); $morecss = array(); +// Page Header +$title = $langs->trans("Contacts")." - ".$langs->trans("List"); +$help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'; +llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'bodyforlist'); + if (!empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES)) { $contactstatic->loadCacheOfProspStatus(); } +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + // Select every potentiels, and note each potentiels which fit in search parameters $tab_level = array(); $sql = "SELECT code, label, sortorder"; @@ -372,13 +385,14 @@ if ($resql) { dol_print_error($db); } -$sql = "SELECT s.rowid as socid, s.nom as name,"; +$sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias as alias,"; $sql .= " p.rowid, p.lastname as lastname, p.statut, p.firstname, p.address, p.zip, p.town, p.poste, p.email,"; $sql .= " p.socialnetworks, p.photo,"; $sql .= " p.phone as phone_pro, p.phone_mobile, p.phone_perso, p.fax, p.fk_pays, p.priv, p.datec as date_creation, p.tms as date_update,"; $sql .= " p.import_key,"; -$sql .= " st.libelle as stcomm, st.picto as stcomm_picto, p.fk_stcommcontact as stcomm_id, p.fk_prospectcontactlevel,"; +$sql .= " st.libelle as stcomm, st.picto as stcomm_picto, p.fk_stcommcontact as stcomm_id, p.fk_prospectlevel,"; $sql .= " co.label as country, co.code as country_code"; + // Add fields from extrafields if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { @@ -388,13 +402,15 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { if (isModEnabled('mailing')) { $sql .= ", (SELECT count(*) FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE email = p.email) as unsubscribed"; } -// Add fields from hooks + +// Add fields from hooks - ListSelect $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; $sqlfields = $sql; // $sql fields to remove for count total +// SQL Table Aliase $sql .= " FROM ".MAIN_DB_PREFIX."socpeople as p"; 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 (p.rowid = ef.fk_object)"; @@ -405,6 +421,11 @@ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_stcommcontact as st ON st.id = p.fk_stco if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc"; } + +// Add fields from hooks - ListFrom +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +$sql .= $hookmanager->resPrint; $sql .= ' WHERE p.entity IN ('.getEntity('contact').')'; if (empty($user->rights->societe->client->voir) && !$socid) { //restriction $sql .= " AND (sc.fk_user = ".((int) $user->id)." OR p.fk_soc IS NULL)"; @@ -413,7 +434,7 @@ if (!empty($userid)) { // propre au commercial $sql .= " AND p.fk_user_creat=".((int) $userid); } if ($search_level) { - $sql .= natural_search("p.fk_prospectcontactlevel", join(',', $search_level), 3); + $sql .= natural_search("p.fk_prospectlevel", join(',', $search_level), 3); } if ($search_stcomm != '' && $search_stcomm != -2) { $sql .= natural_search("p.fk_stcommcontact", $search_stcomm, 2); @@ -431,9 +452,13 @@ if ($search_priv != '0' && $search_priv != '1') { } } + +// Search Categories + + // Search Contact Categories $searchCategoryContactList = $search_categ ? array($search_categ) : array(); $searchCategoryContactOperator = 0; -// Search for tag/category ($searchCategoryContactList is an array of ID) + // Search for tag/category ($searchCategoryContactList is an array of ID) if (!empty($searchCategoryContactList)) { $searchCategoryContactSqlList = array(); $listofcategoryid = ''; @@ -461,9 +486,11 @@ if (!empty($searchCategoryContactList)) { } } } + + // Search Customer Categories $searchCategoryCustomerList = $search_categ_thirdparty ? array($search_categ_thirdparty) : array(); $searchCategoryCustomerOperator = 0; -// Search for tag/category ($searchCategoryCustomerList is an array of ID) + // Search for tag/category ($searchCategoryCustomerList is an array of ID) if (!empty($searchCategoryCustomerList)) { $searchCategoryCustomerSqlList = array(); $listofcategoryid = ''; @@ -491,9 +518,11 @@ if (!empty($searchCategoryCustomerList)) { } } } + + // Search Supplier Categories $searchCategorySupplierList = $search_categ_supplier ? array($search_categ_supplier) : array(); $searchCategorySupplierOperator = 0; -// Search for tag/category ($searchCategorySupplierList is an array of ID) + // Search for tag/category ($searchCategorySupplierList is an array of ID) if (!empty($searchCategorySupplierList)) { $searchCategorySupplierSqlList = array(); $listofcategoryid = ''; @@ -544,8 +573,15 @@ if ($search_lastname) { if ($search_firstname) { $sql .= natural_search('p.firstname', $search_firstname); } -if ($search_societe) { - $sql .= natural_search(empty($conf->global->SOCIETE_DISABLE_CONTACTS) ? 's.nom' : 'p.fk_soc', $search_societe); +if (empty($arrayfields['s.name_alias']['checked']) && $search_societe) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_societe); +} else { + if ($search_societe) { + $sql .= natural_search('s.nom', $search_societe); + } + if ($search_societe_alias) { + $sql .= natural_search('s.name_alias', $search_societe_alias); + } } if ($search_country) { $sql .= " AND p.fk_pays IN (".$db->sanitize($search_country).')'; @@ -581,6 +617,7 @@ if (isModEnabled('socialnetworks')) { } } //print $sql; + if (strlen($search_email)) { $sql .= natural_search('p.email', $search_email); } @@ -608,20 +645,22 @@ if ($search_status != '' && $search_status >= 0) { if ($search_import_key) { $sql .= natural_search("p.import_key", $search_import_key); } -if ($type == "o") { // filtre sur type +if ($type == "o") { // filter on type $sql .= " AND p.fk_soc IS NULL"; -} elseif ($type == "f") { // filtre sur type +} elseif ($type == "f") { // filter on type $sql .= " AND s.fournisseur = 1"; -} elseif ($type == "c") { // filtre sur type +} elseif ($type == "c") { // filter on type $sql .= " AND s.client IN (1, 3)"; -} elseif ($type == "p") { // filtre sur type +} elseif ($type == "p") { // filter on type $sql .= " AND s.client IN (2, 3)"; } if (!empty($socid)) { $sql .= " AND s.rowid = ".((int) $socid); } + // 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, $action); // Note that $action and $object may have been modified by hook @@ -676,10 +715,12 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && ( exit; } -$help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'; -llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'bodyforlist'); + $param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -712,6 +753,9 @@ if ($search_firstname != '') { if ($search_societe != '') { $param .= '&search_societe='.urlencode($search_societe); } +if ($search_societe_alias != '') { + $param .= '&search_societe_alias='.urlencode($search_societe_alias); +} if ($search_address != '') { $param .= '&search_address='.urlencode($search_address); } @@ -774,7 +818,7 @@ 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->societe->creer) $arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisCustomer"); @@ -789,7 +833,10 @@ if (in_array($massaction, array('presend', 'predelete','preaffecttag'))) { } $massactionbutton = $form->selectMassAction('', $arrayofmassactions); -$newcardbutton = dolGetButtonTitle($langs->trans('NewContactAddress'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/contact/card.php?action=create', '', $user->rights->societe->contact->creer); +$newcardbutton = ''; +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('NewContactAddress'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/contact/card.php?action=create', '', $user->rights->societe->contact->creer); print ''; if ($optioncss != '') { @@ -802,6 +849,8 @@ print ''; //print ''; print ''; print ''; +print ''; + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'address', 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -918,20 +967,25 @@ if (!empty($arrayfields['p.town']['checked'])) { print ''; print ''; } + +/* // State -/*if (!empty($arrayfields['state.nom']['checked'])) + if (!empty($arrayfields['state.nom']['checked'])) { print ''; } + // Region if (!empty($arrayfields['region.nom']['checked'])) { print ''; - }*/ + } +*/ + // Country if (!empty($arrayfields['country.code_iso']['checked'])) { print ''; } +// Alias of ThirdParty +if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; +} if (!empty($arrayfields['p.priv']['checked'])) { print ''; } // Prospect level -if (!empty($arrayfields['p.fk_prospectcontactlevel']['checked'])) { +if (!empty($arrayfields['p.fk_prospectlevel']['checked'])) { print ''; @@ -1025,8 +1085,8 @@ if (!empty($arrayfields['p.tms']['checked'])) { } // Status if (!empty($arrayfields['p.statut']['checked'])) { - print ''; } if (!empty($arrayfields['p.import_key']['checked'])) { @@ -1043,7 +1103,7 @@ if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { } print ''; -// Ligne des titres +// Title line print ''; if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); @@ -1105,11 +1165,14 @@ if (!empty($arrayfields['p.fk_soc']['checked'])) { if (!empty($arrayfields['s.nom']['checked'])) { print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], "s.nom", $begin, $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", $begin, $param, '', $sortfield, $sortorder); +} if (!empty($arrayfields['p.priv']['checked'])) { print_liste_field_titre($arrayfields['p.priv']['label'], $_SERVER["PHP_SELF"], "p.priv", $begin, $param, '', $sortfield, $sortorder, 'center '); } -if (!empty($arrayfields['p.fk_prospectcontactlevel']['checked'])) { - print_liste_field_titre($arrayfields['p.fk_prospectcontactlevel']['label'], $_SERVER["PHP_SELF"], "p.fk_prospectcontactlevel", "", $param, '', $sortfield, $sortorder, 'center '); +if (!empty($arrayfields['p.fk_prospectlevel']['checked'])) { + print_liste_field_titre($arrayfields['p.fk_prospectlevel']['label'], $_SERVER["PHP_SELF"], "p.fk_prospectlevel", "", $param, '', $sortfield, $sortorder, 'center '); } if (!empty($arrayfields['p.fk_stcommcontact']['checked'])) { print_liste_field_titre($arrayfields['p.fk_stcommcontact']['label'], $_SERVER["PHP_SELF"], "p.fk_stcommcontact", "", $param, '', $sortfield, $sortorder, 'center '); @@ -1168,267 +1231,317 @@ while ($i < min($num, $limit)) { $contactstatic->photo = $obj->photo; $contactstatic->import_key = $obj->import_key; - $contactstatic->fk_prospectlevel = $obj->fk_prospectcontactlevel; + $contactstatic->fk_prospectlevel = $obj->fk_prospectlevel; - print ''; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + } + } else { + print ''; - // Action column - if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { - print ''; } - print ''; - } - // ID - if (!empty($arrayfields['p.rowid']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; + + // ID + if (!empty($arrayfields['p.rowid']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Name - if (!empty($arrayfields['p.lastname']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // (Last) Name + if (!empty($arrayfields['p.lastname']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Firstname - if (!empty($arrayfields['p.firstname']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Firstname + if (!empty($arrayfields['p.firstname']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Job position - if (!empty($arrayfields['p.poste']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Job position + if (!empty($arrayfields['p.poste']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Address - if (!empty($arrayfields['p.address']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Address + if (!empty($arrayfields['p.address']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Zip - if (!empty($arrayfields['p.zip']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Zip + if (!empty($arrayfields['p.zip']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Town - if (!empty($arrayfields['p.town']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Town + if (!empty($arrayfields['p.town']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // State - /*if (!empty($arrayfields['state.nom']['checked'])) - { - print "\n"; - if (! $i) $totalarray['nbfield']++; - } - // Region - if (!empty($arrayfields['region.nom']['checked'])) - { - print "\n"; - if (! $i) $totalarray['nbfield']++; - }*/ - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + /* + // State + if (!empty($arrayfields['state.nom']['checked'])) + { + print "\n"; + if (! $i) $totalarray['nbfield']++; } - } - // Phone - if (!empty($arrayfields['p.phone']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Region + if (!empty($arrayfields['region.nom']['checked'])) + { + print "\n"; + if (! $i) $totalarray['nbfield']++; + }*/ + + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Phone perso - if (!empty($arrayfields['p.phone_perso']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Phone pro + if (!empty($arrayfields['p.phone']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Phone mobile - if (!empty($arrayfields['p.phone_mobile']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Phone perso + if (!empty($arrayfields['p.phone_perso']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // Fax - if (!empty($arrayfields['p.fax']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Phone mobile + if (!empty($arrayfields['p.phone_mobile']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // EMail - if (!empty($arrayfields['p.email']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Fax + if (!empty($arrayfields['p.fax']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - // No EMail - if (!empty($arrayfields['unsubscribed']['checked'])) { - print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // No EMail Subscription + if (!empty($arrayfields['unsubscribed']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - if (isModEnabled('socialnetworks')) { - foreach ($socialnetworks as $key => $value) { - if ($value['active'] && !empty($arrayfields['p.'.$key]['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + + // Social Networks + if (isModEnabled('socialnetworks')) { + foreach ($socialnetworks as $key => $value) { + if ($value['active'] && !empty($arrayfields['p.'.$key]['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } } } - } - // Company - if (!empty($arrayfields['p.fk_soc']['checked']) || !empty($arrayfields['s.nom']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Private/Public - if (!empty($arrayfields['p.priv']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; + // Company / Third Party + if (!empty($arrayfields['p.fk_soc']['checked']) || !empty($arrayfields['s.nom']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - } - if (!empty($arrayfields['p.fk_prospectcontactlevel']['checked'])) { - // Prospect level - print '"; - if (!$i) { - $totalarray['nbfield']++; + // Alias name + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Private/Public + if (!empty($arrayfields['p.priv']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Prospect Level + if (!empty($arrayfields['p.fk_prospectlevel']['checked'])) { + print '"; + if (!$i) { + $totalarray['nbfield']++; + } } - } - if (!empty($arrayfields['p.fk_stcommcontact']['checked'])) { // Prospect status - print ''; + if (!$i) { + $totalarray['nbfield']++; } } - 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, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Date creation - if (!empty($arrayfields['p.datec']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date modification - if (!empty($arrayfields['p.tms']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['p.statut']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Import key - if (!empty($arrayfields['p.import_key']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Action column - if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { - print ''; + if (!$i) { + $totalarray['nbfield']++; } - print ''; } - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - print "\n"; + // Date modification + if (!empty($arrayfields['p.tms']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Status + if (!empty($arrayfields['p.statut']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Import key + if (!empty($arrayfields['p.import_key']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print "\n"; + } $i++; } diff --git a/htdocs/contact/vcard.php b/htdocs/contact/vcard.php index fe11c90c0b9..d366d1c2b17 100644 --- a/htdocs/contact/vcard.php +++ b/htdocs/contact/vcard.php @@ -92,18 +92,23 @@ if ($company->id) { } elseif (empty(trim($contact->email))) { // when contact e-mail is empty, use only company e-mail $v->setEmail($company->email); - } elseif (strtolower(end(explode("@", $contact->email))) == strtolower(end(explode("@", $company->email)))) { - // when e-mail domain of contact and company are the same, use contact e-mail at first (and company e-mail at second) - $v->setEmail($contact->email); - - // support by Microsoft Outlook (2019 and possible earlier) - $v->setEmail($company->email, 'INTERNET'); } else { - // when e-mail of contact and company complete different use company e-mail at first (and contact e-mail at second) - $v->setEmail($company->email); + $tmpcontact = explode("@", trim($contact->email)); + $tmpcompany = explode("@", trim($company->email)); - // support by Microsoft Outlook (2019 and possible earlier) - $v->setEmail($contact->email, 'INTERNET'); + if (strtolower(end($tmpcontact)) == strtolower(end($tmpcompany))) { + // when e-mail domain of contact and company are the same, use contact e-mail at first (and company e-mail at second) + $v->setEmail($contact->email); + + // support by Microsoft Outlook (2019 and possible earlier) + $v->setEmail($company->email, 'INTERNET'); + } else { + // when e-mail of contact and company complete different use company e-mail at first (and contact e-mail at second) + $v->setEmail($company->email); + + // support by Microsoft Outlook (2019 and possible earlier) + $v->setEmail($contact->email, 'INTERNET'); + } } // Si contact lie a un tiers non de type "particulier" diff --git a/htdocs/contrat/agenda.php b/htdocs/contrat/agenda.php index 3a3c5440b30..e631c6a4a60 100644 --- a/htdocs/contrat/agenda.php +++ b/htdocs/contrat/agenda.php @@ -41,7 +41,7 @@ if (GETPOST('actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); } $search_agenda_label = GETPOST('search_agenda_label'); @@ -54,7 +54,11 @@ $ref = GETPOST('ref', 'alpha'); if ($user->socid) { $socid = $user->socid; } -$result = restrictedArea($user, 'contrat', $id, ''); + +// Security check +$fieldvalue = (!empty($id) ? $id : (!empty($ref) ? $ref : '')); +$fieldtype = (!empty($id) ? 'rowid' : 'ref'); +$result = restrictedArea($user, 'contrat', $fieldvalue, '', '', '', $fieldtype); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -73,6 +77,13 @@ if (!$sortorder) { $sortorder = 'DESC,DESC'; } + +$object = new Contrat($db); + +if ($id > 0 || !empty($ref)) { + $result = $object->fetch($id, $ref); +} + // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('agendacontract', 'globalcard')); @@ -83,7 +94,7 @@ $permissiontoadd = $user->rights->contrat->creer; // Used by the include * Actions */ -$parameters = array('id'=>$id); +$parameters = array('id' => $id, 'ref' => $ref); $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'); @@ -104,8 +115,6 @@ if (empty($reshook)) { } - - /* * View */ @@ -116,7 +125,7 @@ if (isModEnabled('project')) { $formproject = new FormProjets($db); } -if ($id > 0) { +if ($object->id > 0) { // Load object modContract $module = (!empty($conf->global->CONTRACT_ADDON) ? $conf->global->CONTRACT_ADDON : 'mod_contract_serpis'); if (substr($module, 0, 13) == 'mod_contract_' && substr($module, -3) == 'php') { @@ -130,8 +139,6 @@ if ($id > 0) { require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; - $object = new Contrat($db); - $result = $object->fetch($id); $object->fetch_thirdparty(); $title = $langs->trans("Agenda"); @@ -181,7 +188,7 @@ if ($id > 0) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -195,13 +202,13 @@ if ($id > 0) { } $morehtmlref .= ''; - dol_banner_tab($object, 'id', $linkback, 1, 'ref', 'none', $morehtmlref); + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'none', $morehtmlref); print '
'; print '
'; - $object->info($id); + $object->info($object->id); dol_print_object_info($object, 1); print '
'; @@ -221,7 +228,7 @@ if ($id > 0) { { //$out.='trans("AddAnAction"),'filenew'); //$out.=""; @@ -234,7 +241,7 @@ if ($id > 0) { $newcardbutton = ''; if (isModEnabled('agenda')) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { $backtopage = $_SERVER['PHP_SELF'].'?id='.$object->id; $out = '&origin='.$object->element.'&originid='.$object->id.'&backtopage='.urlencode($backtopage); $newcardbutton .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out); @@ -244,7 +251,7 @@ if ($id > 0) { if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { print '
'; - $param = '&id='.$id; + $param = '&id='.$object->id; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.$contextpage; } diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index b691524ad92..54779bb692d 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -143,7 +143,16 @@ if (empty($reshook)) { include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php'; // Must be include, not include_once if ($action == 'confirm_active' && $confirm == 'yes' && $user->rights->contrat->activer) { - $result = $object->active_line($user, GETPOST('ligne', 'int'), GETPOST('date'), GETPOST('dateend'), GETPOST('comment')); + $date_start = ''; + $date_end = ''; + if (GETPOST('startmonth') && GETPOST('startday') && GETPOST('startyear')) { + $date_start = dol_mktime(GETPOST('starthour'), GETPOST('startmin'), 0, GETPOST('startmonth'), GETPOST('startday'), GETPOST('startyear')); + } + if (GETPOST('endmonth') && GETPOST('endday') && GETPOST('endyear')) { + $date_end = dol_mktime(GETPOST('endhour'), GETPOST('endmin'), 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear')); + } + + $result = $object->active_line($user, GETPOST('ligne', 'int'), $date_start, $date_end, GETPOST('comment')); if ($result > 0) { header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); @@ -152,12 +161,16 @@ if (empty($reshook)) { setEventMessages($object->error, $object->errors, 'errors'); } } elseif ($action == 'confirm_closeline' && $confirm == 'yes' && $user->rights->contrat->activer) { - if (!GETPOST('dateend')) { + $date_end = ''; + if (GETPOST('endmonth') && GETPOST('endday') && GETPOST('endyear')) { + $date_end = dol_mktime(GETPOST('endhour'), GETPOST('endmin'), 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear')); + } + if (!$date_end) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateEnd")), null, 'errors'); } if (!$error) { - $result = $object->close_line($user, GETPOST('ligne', 'int'), GETPOST('dateend'), urldecode(GETPOST('comment'))); + $result = $object->close_line($user, GETPOST('ligne', 'int'), $date_end, urldecode(GETPOST('comment'))); if ($result > 0) { header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); exit; @@ -374,6 +387,7 @@ if (empty($reshook)) { $reshook = $hookmanager->executeHooks('createFrom', $parameters, $object, $action); // Note that $action and $object may have been // modified by hook if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); $error++; } } else { @@ -424,12 +438,12 @@ if (empty($reshook)) { if (GETPOST('prod_entry_mode', 'alpha') == 'free') { $idprod = 0; - $tva_tx = (GETPOST('tva_tx', 'alpha') ? price2num(preg_replace('/\s*\(.*\)/', '', GETPOST('tva_tx', 'alpha'))) : 0); } else { $idprod = GETPOST('idprod', 'int'); - $tva_tx = ''; } + $tva_tx = GETPOST('tva_tx', 'alpha'); + $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS'); $remise_percent = (GETPOSTISSET('remise_percent'.$predef) ? price2num(GETPOST('remise_percent'.$predef), 2) : 0); if (empty($remise_percent)) { @@ -467,36 +481,27 @@ if (empty($reshook)) { // Clean parameters $date_start = dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start'.$predef.'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year')); $date_end = dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end'.$predef.'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year')); - $price_base_type = (GETPOST('price_base_type', 'alpha') ?GETPOST('price_base_type', 'alpha') : 'HT'); - // Ecrase $pu par celui du produit - // Ecrase $desc par celui du produit - // Ecrase $tva_tx par celui du produit - // Ecrase $base_price_type par celui du produit + // Ecrase $tva_tx par celui du produit. TODO Remove this once vat selection is open + // Get and check minimum price if ($idprod > 0) { $prod = new Product($db); $prod->fetch($idprod); // Update if prices fields are defined - $tva_tx = get_default_tva($mysoc, $object->thirdparty, $prod->id); + /*$tva_tx = get_default_tva($mysoc, $object->thirdparty, $prod->id); $tva_npr = get_default_npr($mysoc, $object->thirdparty, $prod->id); if (empty($tva_tx)) { $tva_npr = 0; - } + }*/ - $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; // On defini prix unitaire if ($conf->global->PRODUIT_MULTIPRICES && $object->thirdparty->price_level) { - $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]; } elseif (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { // If price per customer require_once DOL_DOCUMENT_ROOT.'/product/class/productcustomerprice.class.php'; @@ -508,19 +513,16 @@ if (empty($reshook)) { $result = $prodcustprice->fetchAll('', '', 0, 0, $filter); if ($result) { if (count($prodcustprice->lines) > 0) { - $pu_ht = price($prodcustprice->lines[0]->price); - $pu_ttc = price($prodcustprice->lines[0]->price_ttc); $price_min = price($prodcustprice->lines[0]->price_min); $price_min_ttc = price($prodcustprice->lines[0]->price_min_ttc); - $price_base_type = $prodcustprice->lines[0]->price_base_type; - $tva_tx = $prodcustprice->lines[0]->tva_tx; + /*$tva_tx = $prodcustprice->lines[0]->tva_tx; if ($prodcustprice->lines[0]->default_vat_code && !preg_match('/\(.*\)/', $tva_tx)) { $tva_tx .= ' ('.$prodcustprice->lines[0]->default_vat_code.')'; } $tva_npr = $prodcustprice->lines[0]->recuperableonly; if (empty($tva_tx)) { $tva_npr = 0; - } + }*/ } } } @@ -532,16 +534,11 @@ if (empty($reshook)) { if (!empty($price_ht) || $price_ht === '0') { $pu_ht = price2num($price_ht, 'MU'); $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); + $price_base_type = 'HT'; } 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) { - // Is this still used ? - if ($price_base_type != 'HT') { - $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); - } else { - $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); - } + $price_base_type = 'TTC'; } $desc = $prod->description; @@ -571,8 +568,16 @@ if (empty($reshook)) { $pu_ht_devise = price2num($price_ht_devise, 'MU'); $pu_ttc_devise = price2num($price_ttc_devise, 'MU'); - $price_base_type = 'HT'; - if ($pu_ttc && !$pu_ht) { + $tmpvat = price2num(preg_replace('/\s*\(.*\)/', '', $tva_tx)); + + // Set unit price to use + if (!empty($price_ht) || $price_ht === '0') { + $pu_ht = price2num($price_ht, 'MU'); + $pu_ttc = price2num($pu_ht * (1 + ((float) $tmpvat / 100)), 'MU'); + $price_base_type = 'HT'; + } elseif (!empty($price_ttc) || $price_ttc === '0') { + $pu_ttc = price2num($price_ttc, 'MU'); + $pu_ht = price2num($pu_ttc / (1 + ((float) $tmpvat / 100)), 'MU'); $price_base_type = 'TTC'; } } @@ -679,6 +684,7 @@ if (empty($reshook)) { } } elseif ($action == 'updateline' && $user->rights->contrat->creer && !GETPOST('cancel', 'alpha')) { $error = 0; + $predef = ''; if (!empty($date_start_update) && !empty($date_end_update) && $date_start_update > $date_end_update) { setEventMessages($langs->trans("Error").': '.$langs->trans("DateStartPlanned").' > '.$langs->trans("DateEndPlanned"), null, 'errors'); @@ -708,7 +714,7 @@ if (empty($reshook)) { $date_end_real_update = $objectline->date_end_real; } - $vat_rate = GETPOST('eltva_tx'); + $vat_rate = GETPOST('eltva_tx', 'alpha'); // Define info_bits $info_bits = 0; if (preg_match('/\*/', $vat_rate)) { @@ -754,7 +760,7 @@ if (empty($reshook)) { $objectline->date_end = $date_end_update; $objectline->date_end_real = $date_end_real_update; $objectline->fk_user_cloture = $user->id; - $objectline->fk_fournprice = $fk_fournprice; + //$objectline->fk_fournprice = $fk_fournprice; $objectline->pa_ht = $pa_ht; $objectline->rang = $objectline->rang; @@ -1386,7 +1392,7 @@ if ($action == 'create') { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -1522,7 +1528,7 @@ if ($action == 'create') { // print ''; //} print ''; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { print ''; } print ''; @@ -1603,7 +1609,7 @@ if ($action == 'create') { // Quantity print ''; // Unit - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { print ''; } // Discount @@ -1644,9 +1650,9 @@ if ($action == 'create') { if ($objp->subprice >= 0) { $colspan = 6; - if ($conf->margin->enabled && $conf->global->PRODUCT_USE_UNITS) { + if ($conf->margin->enabled && getDolGlobalString('PRODUCT_USE_UNITS')) { $colspan = 8; - } elseif ($conf->margin->enabled || $conf->global->PRODUCT_USE_UNITS) { + } elseif ($conf->margin->enabled || getDolGlobalString('PRODUCT_USE_UNITS')) { $colspan = 7; } @@ -1710,7 +1716,7 @@ if ($action == 'create') { if (empty($senderissupplier)) { print $form->select_produits((!empty($object->lines[$cursorline - 1]->fk_product) ? $object->lines[$cursorline - 1]->fk_product : 0), 'idprod'); } else { - print $form->select_produits_fournisseurs((!empty($object->lines[$cursorline - 1]->fk_product) ? $object->lines[$cursorline - 1]->fk_product : 0), 'idprod'); + $form->select_produits_fournisseurs((!empty($object->lines[$cursorline - 1]->fk_product) ? $object->lines[$cursorline - 1]->fk_product : 0), 'idprod'); } } print '
'; @@ -1748,7 +1754,7 @@ if ($action == 'create') { print ''; // Unit - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { print ''; @@ -1774,7 +1780,7 @@ if ($action == 'create') { if (isModEnabled('margin') && !empty($conf->global->MARGIN_SHOW_ON_CONTRACT)) { $colspan++; } - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $colspan++; } @@ -1845,34 +1851,6 @@ if ($action == 'create') { print '
' . $langs->trans("Year") . " " . $y . '' . $langs->trans("Year") . '' . $langs->trans("VATToPay") . '' . $langs->trans("VATToCollect") . '' . $langs->trans("Balance") . '
' . $langs->trans("ErrorNoAccountancyModuleLoaded") . '
' . $langs->trans("FeatureNotYetAvailable") . '
' . dol_print_date(dol_mktime(0, 0, 0, $m, 1, $y), "%b %Y") . ''; + print ''; $liststatus = array('0' => $langs->trans("Unpaid"), '1' => $langs->trans("Paid")); - print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'onrightofpage'); + print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage'); print '
'.(($offset * $limit) + $i).'
'; + print '
'; } - } + // Output Kanban - // Ref - if (!empty($arrayfields['t.rowid']['checked'])) { - print '
'; - print $tva_static->getNomUrl(1); - $filename = dol_sanitizeFileName($tva_static->ref); - $filedir = $conf->tax->dir_output.'/vat/'.dol_sanitizeFileName($tva_static->ref); - $urlsource = $_SERVER['PHP_SELF'].'?id='.$tva_static->id; - print $formfile->getDocumentsLink($tva_static->element, $filename, $filedir, '', 'valignmiddle paddingleft2imp'); - print '
'.dol_trunc($obj->label, 40).''.(($offset * $limit) + $i).''.dol_print_date($db->jdate($obj->datev), 'day').''; + print $tva_static->getNomUrl(1); + $filename = dol_sanitizeFileName($tva_static->ref); + $filedir = $conf->tax->dir_output.'/vat/'.dol_sanitizeFileName($tva_static->ref); + $urlsource = $_SERVER['PHP_SELF'].'?id='.$tva_static->id; + print $formfile->getDocumentsLink($tva_static->element, $filename, $filedir, '', 'valignmiddle paddingleft2imp'); + print ''.dol_print_date($db->jdate($obj->datep), 'day').''; - if (!empty($obj->payment_code)) print $langs->trans("PaymentTypeShort".$obj->payment_code); - print ''.dol_trunc($obj->label, 40).''; - if ($obj->fk_account > 0) { - $bankstatic->id = $obj->fk_account; - $bankstatic->ref = $obj->bref; - $bankstatic->number = $obj->bnumber; - $bankstatic->iban = $obj->iban; - $bankstatic->bic = $obj->bic; - $bankstatic->currency_code = $langs->trans("Currency".$obj->currency_code); - $bankstatic->account_number = $obj->account_number; - $bankstatic->clos = $obj->clos; - - //$accountingjournal->fetch($obj->fk_accountancy_journal); - //$bankstatic->accountancy_journal = $accountingjournal->getNomUrl(0, 1, 1, '', 1); - - $bankstatic->label = $obj->blabel; - print $bankstatic->getNomUrl(1); + // Date end period + if (!empty($arrayfields['t.datev']['checked'])) { + print ''.dol_print_date($db->jdate($obj->datev), 'day').'' . price($obj->amount) . ''.dol_print_date($db->jdate($obj->datep), 'day').'' . $tva_static->LibStatut($obj->paye, 5, $obj->alreadypayed) . ''; + if (!empty($obj->payment_code)) print $langs->trans("PaymentTypeShort".$obj->payment_code); + print ''; + if ($obj->fk_account > 0) { + $bankstatic->id = $obj->fk_account; + $bankstatic->ref = $obj->bref; + $bankstatic->number = $obj->bnumber; + $bankstatic->iban = $obj->iban; + $bankstatic->bic = $obj->bic; + $bankstatic->currency_code = $langs->trans("Currency".$obj->currency_code); + $bankstatic->account_number = $obj->account_number; + $bankstatic->clos = $obj->clos; + + //$accountingjournal->fetch($obj->fk_accountancy_journal); + //$bankstatic->accountancy_journal = $accountingjournal->getNomUrl(0, 1, 1, '', 1); + + $bankstatic->label = $obj->blabel; + print $bankstatic->getNomUrl(1); + } + print '' . price($obj->amount) . '' . $tva_static->LibStatut($obj->paye, 5, $obj->alreadypayed) . '
'; - if (!empty($value['icon'])) { - print ''; - } - print ''; - print '
'; - if (!empty($value['icon'])) { - print ''; - } - print ''; - print '
'; print ''; print ''; print ''; print ''; @@ -984,6 +1038,12 @@ if (!empty($arrayfields['p.fk_soc']['checked']) || !empty($arrayfields['s.nom'][ print ''; print ''; + print ''; + print ''; $selectarray = array('0'=>$langs->trans("ContactPublic"), '1'=>$langs->trans("ContactPrivate")); @@ -991,7 +1051,7 @@ if (!empty($arrayfields['p.priv']['checked'])) { print ''; print $form->multiselectarray('search_level', $tab_level, $search_level, 0, 0, 'width75', 0, 0, '', '', '', 2); print ''; - print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('ActivityCeased'), '1'=>$langs->trans('InActivity')), $search_status, 0, 0, 0, '', 0, 0, 0, '', 'minwidth75 onrightofpage'); + print ''; + print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('ActivityCeased'), '1'=>$langs->trans('InActivity')), $search_status, 0, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage'); print '
'; + print '
'; + } + $contactstatic->photo = $obj->photo; + if ($obj->socid > 0) { + $contactstatic->fetch_thirdparty($obj->socid); + } + print $contactstatic->getKanbanView(''); + if ($i == min($num, $limit) - 1) { + print '
'; + print '
'; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print ''; - print dol_escape_htmltag($obj->rowid); - print "'; + print dol_escape_htmltag($obj->rowid); + print "'; - print $contactstatic->getNomUrl(1); - print ''; + print $contactstatic->getNomUrl(1); + print ''.dol_escape_htmltag($obj->firstname).''.dol_escape_htmltag($obj->firstname).''.dol_escape_htmltag($obj->poste).''.dol_escape_htmltag($obj->poste).''.dol_escape_htmltag($obj->address).''.dol_escape_htmltag($obj->address).''.dol_escape_htmltag($obj->zip).''.dol_escape_htmltag($obj->zip).''.dol_escape_htmltag($obj->town).''.dol_escape_htmltag($obj->town).'".$obj->state_name."".$obj->region_name."'; - $tmparray = getCountry($obj->fk_pays, 'all'); - print dol_escape_htmltag($tmparray['label']); - print '".$obj->state_name."'.dol_print_phone($obj->phone_pro, $obj->country_code, $obj->rowid, $obj->socid, 'AC_TEL', ' ', 'phone').'".$obj->region_name."'; + $tmparray = getCountry($obj->fk_pays, 'all'); + print dol_escape_htmltag($tmparray['label']); + print ''.dol_print_phone($obj->phone_perso, $obj->country_code, $obj->rowid, $obj->socid, 'AC_TEL', ' ', 'phone').''.dol_print_phone($obj->phone_pro, $obj->country_code, $obj->rowid, $obj->socid, 'AC_TEL', ' ', 'phone').''.dol_print_phone($obj->phone_mobile, $obj->country_code, $obj->rowid, $obj->socid, 'AC_TEL', ' ', 'mobile').''.dol_print_phone($obj->phone_perso, $obj->country_code, $obj->rowid, $obj->socid, 'AC_TEL', ' ', 'phone').''.dol_print_phone($obj->fax, $obj->country_code, $obj->rowid, $obj->socid, 'AC_TEL', ' ', 'fax').''.dol_print_phone($obj->phone_mobile, $obj->country_code, $obj->rowid, $obj->socid, 'AC_TEL', ' ', 'mobile').''.dol_print_email($obj->email, $obj->rowid, $obj->socid, 'AC_EMAIL', 18, 0, 1).''.dol_print_phone($obj->fax, $obj->country_code, $obj->rowid, $obj->socid, 'AC_TEL', ' ', 'fax').''; - if (empty($obj->email)) { - //print ''.$langs->trans("NoEmail").''; - } else { - print yn(($obj->unsubscribed > 0) ? 1 : 0); + + // EMail + if (!empty($arrayfields['p.email']['checked'])) { + print ''.dol_print_email($obj->email, $obj->rowid, $obj->socid, 'AC_EMAIL', 18, 0, 1).''; + if (empty($obj->email)) { + //print ''.$langs->trans("NoEmail").''; + } else { + print yn(($obj->unsubscribed > 0) ? 1 : 0); + } + print ''.(empty($arraysocialnetworks[$key]) ? '' : dol_print_socialnetworks($arraysocialnetworks[$key], $obj->rowid, $obj->socid, $key, $socialnetworks)).''.(empty($arraysocialnetworks[$key]) ? '' : dol_print_socialnetworks($arraysocialnetworks[$key], $obj->rowid, $obj->socid, $key, $socialnetworks)).''; - if ($obj->socid) { - $objsoc = new Societe($db); - $objsoc->fetch($obj->socid); - print $objsoc->getNomUrl(1); - } else { - print ' '; - } - print ''.$contactstatic->LibPubPriv($obj->priv).''; + if ($obj->socid) { + $objsoc = new Societe($db); + $objsoc->fetch($obj->socid); + print $objsoc->getNomUrl(1, '', 100, 0, 1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); + } else { + print ' '; + } + print ''; - print $contactstatic->getLibProspLevel(); - print "'; + print dol_escape_htmltag($obj->alias); + print ''.$contactstatic->LibPubPriv($obj->priv).''; + print $contactstatic->getLibProspLevel(); + print "
'; - print '
'.$contactstatic->libProspCommStatut($obj->stcomm_id, 2, $contactstatic->cacheprospectstatus[$obj->stcomm_id]['label'], $obj->stcomm_picto); - print '
-
'; - foreach ($contactstatic->cacheprospectstatus as $key => $val) { - $titlealt = 'default'; - if (!empty($val['code']) && !in_array($val['code'], array('ST_NO', 'ST_NEVER', 'ST_TODO', 'ST_PEND', 'ST_DONE'))) { - $titlealt = $val['label']; + if (!empty($arrayfields['p.fk_stcommcontact']['checked'])) { + print '
'; + print '
'.$contactstatic->libProspCommStatut($obj->stcomm_id, 2, $contactstatic->cacheprospectstatus[$obj->stcomm_id]['label'], $obj->stcomm_picto); + print '
-
'; + foreach ($contactstatic->cacheprospectstatus as $key => $val) { + $titlealt = 'default'; + if (!empty($val['code']) && !in_array($val['code'], array('ST_NO', 'ST_NEVER', 'ST_TODO', 'ST_PEND', 'ST_DONE'))) { + $titlealt = $val['label']; + } + if ($obj->stcomm_id != $val['id']) { + print ''.img_action($titlealt, $val['code'], $val['picto']).''; + } } - if ($obj->stcomm_id != $val['id']) { - print ''.img_action($titlealt, $val['code'], $val['picto']).''; + print '
'; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''.$contactstatic->getLibStatut(5).''; - 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; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (!empty($arrayfields['p.datec']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print '
'; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''.$contactstatic->getLibStatut(5).''; + 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("PriceUHTCurrency").''.$langs->trans("Qty").''.$langs->trans("Unit").''.$langs->trans("ReductionShort").''.$objp->qty.''.$langs->trans($object->lines[$cursorline - 1]->getLabelOfUnit()).''; print $form->selectUnits($objp->fk_unit, "unit"); print '
'; } - /* - * Confirmation de la validation activation - */ - if ($action == 'active' && !$cancel && $user->rights->contrat->activer && $object->lines[$cursorline - 1]->id == GETPOST('ligne', 'int')) { - $dateactstart = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')); - $dateactend = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear')); - $comment = GETPOST('comment', 'alpha'); - print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id."&ligne=".GETPOST('ligne', 'int')."&date=".$dateactstart."&dateend=".$dateactend."&comment=".urlencode($comment), $langs->trans("ActivateService"), $langs->trans("ConfirmActivateService", dol_print_date($dateactstart, "%A %d %B %Y")), "confirm_active", '', 0, 1); - print '
'; - } - - /* - * Confirmation de la validation fermeture - */ - if ($action == 'closeline' && !$cancel && $user->rights->contrat->activer && $object->lines[$cursorline - 1]->id == GETPOST('ligne', 'int')) { - $dateactstart = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')); - $dateactend = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear')); - $comment = GETPOST('comment', 'alpha'); - - if (empty($dateactend)) { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateEndReal")), null, 'errors'); - } else { - print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id."&ligne=".GETPOST('ligne', 'int')."&date=".$dateactstart."&dateend=".$dateactend."&comment=".urlencode($comment), $langs->trans("CloseService"), $langs->trans("ConfirmCloseService", dol_print_date($dateactend, "%A %d %B %Y")), "confirm_closeline", '', 0, 1); - } - print '
'; - } - - // Area with status and activation info of line if ($object->statut > 0) { print ''; @@ -1938,8 +1916,12 @@ if ($action == 'create') { // Form to activate line if ($user->rights->contrat->activer && $action == 'activateline' && $object->lines[$cursorline - 1]->id == GETPOST('ligne', 'int')) { - print ''; + print ''; print ''; + print ''; + print ''; + print ''; + print ''; print '
'; @@ -1964,7 +1946,7 @@ if ($action == 'create') { print ''; print ''; print ''; print ''; if ($num) { - $companystatic = new Societe($db); - $i = 0; //$tot_ttc = 0; while ($i < $num) { @@ -276,22 +274,29 @@ if (isModEnabled('contrat') && $user->rights->contrat->lire) { $staticcontrat->ref = $obj->ref; $staticcontrat->id = $obj->rowid; - $companystatic->id = $obj->socid; - $companystatic->name = $obj->name; - $companystatic->client = 1; + $staticcompany->id = $obj->socid; + $staticcompany->name = $obj->name; + $staticcompany->name_alias = $obj->name_alias; + $staticcompany->photo = 1; + $staticcompany->code_client = $obj->code_client; + $staticcompany->code_fournisseur = $obj->code_fournisseur; + $staticcompany->code_compta = $obj->code_compta; + $staticcompany->code_compta_fournisseur = $obj->code_compta_fournisseur; + $staticcompany->client = $obj->client; + $staticcompany->fournisseur = $obj->fournisseur; print ''; print ''; print ''; //$tot_ttc+=$obj->total_ttc; $i++; } } else { - print ''; + print ''; } print "
'.$langs->trans("DateServiceActivate").''; - print $form->selectDate($dateactstart, '', $usehm, $usehm, '', "active", 1, 0); + print $form->selectDate($dateactstart, 'start', $usehm, $usehm, '', "active", 1, 0); print ''.$langs->trans("DateEndPlanned").''; print $form->selectDate($dateactend, "end", $usehm, $usehm, '', "active", 1, 0); @@ -1992,10 +1974,10 @@ if ($action == 'create') { * Disable a contract line */ print ''."\n"; - print ''; - + print ''; print ''; - print ''; + print ''; + print ''; print ''; @@ -2034,7 +2016,7 @@ if ($action == 'create') { print ''; print ''; - print ''; + print ''; print ''; print ''; - print ''; + print ''; print "\n"; } if ($status == 4 && !$bool) { @@ -224,7 +224,7 @@ foreach ($listofstatus as $status) { if (empty($conf->use_javascript_ajax)) { print ''; print ''; - print ''; + print ''; if ($status == 4 && !$bool) { $bool = true; } else { @@ -241,7 +241,7 @@ print "
'.$langs->trans("Comment").''.$langs->trans("Comment").''; print '   '; print ''; @@ -2055,11 +2037,12 @@ if ($action == 'create') { $dateSelector = 1; print "\n"; - print ' + print ' + '; print '
'; @@ -2214,7 +2197,7 @@ if ($action == 'create') { $delallowed = $user->rights->contrat->creer; - print $formfile->showdocuments('contract', $filename, $filedir, $urlsource, $genallowed, $delallowed, ($object->model_pdf ? $object->model_pdf : $conf->global->CONTRACT_ADDON_PDF), 1, 0, 0, 28, 0, '', 0, '', $soc->default_lang, '', $object); + print $formfile->showdocuments('contract', $filename, $filedir, $urlsource, $genallowed, $delallowed, ($object->model_pdf ? $object->model_pdf : getDolGlobalString('CONTRACT_ADDON_PDF')), 1, 0, 0, 28, 0, '', 0, '', $soc->default_lang, '', $object); // Show links to link elements @@ -2222,7 +2205,7 @@ if ($action == 'create') { $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); // Show online signature link - if ($object->statut != Contrat::STATUS_DRAFT && $conf->global->CONTRACT_ALLOW_ONLINESIGN) { + if ($object->statut != Contrat::STATUS_DRAFT && getDolGlobalString('CONTRACT_ALLOW_ONLINESIGN')) { print '
'; require_once DOL_DOCUMENT_ROOT.'/core/lib/signature.lib.php'; diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index 7d43da46b37..ad2cbcea84b 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -225,24 +225,24 @@ class Contrat extends CommonObject */ public $fields = array( 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>10), - 'ref' =>array('type'=>'varchar(50)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>-1, 'showoncombobox'=>1, 'position'=>15), + 'ref' =>array('type'=>'varchar(50)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>-1, 'showoncombobox'=>1, 'position'=>15, 'searchall'=>1), 'ref_ext' =>array('type'=>'varchar(255)', 'label'=>'Ref ext', 'enabled'=>1, 'visible'=>0, 'position'=>20), - 'ref_supplier' =>array('type'=>'varchar(50)', 'label'=>'Ref supplier', 'enabled'=>1, 'visible'=>-1, 'position'=>25), + 'ref_customer' =>array('type'=>'varchar(50)', 'label'=>'RefCustomer', 'enabled'=>1, 'visible'=>-1, 'position'=>25, 'searchall'=>1), + 'ref_supplier' =>array('type'=>'varchar(50)', 'label'=>'RefSupplier', 'enabled'=>1, 'visible'=>-1, 'position'=>26, 'searchall'=>1), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>30, 'index'=>1), 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>35), 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'position'=>40), 'date_contrat' =>array('type'=>'datetime', 'label'=>'Date contrat', 'enabled'=>1, 'visible'=>-1, 'position'=>45), - 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>70), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'isModEnabled("societe")', 'visible'=>-1, 'notnull'=>1, 'position'=>70), 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Project', 'enabled'=>"isModEnabled('project')", 'visible'=>-1, 'position'=>75), 'fk_commercial_signature' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'SaleRepresentative Signature', 'enabled'=>1, 'visible'=>-1, 'position'=>80), 'fk_commercial_suivi' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'SaleRepresentative follower', 'enabled'=>1, 'visible'=>-1, 'position'=>85), 'fk_user_author' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>90), - 'note_public' =>array('type'=>'text', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>105), - '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'=>105, 'searchall'=>1), + 'note_private' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>110, 'searchall'=>1), 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>1, 'visible'=>0, 'position'=>115), 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>120), 'extraparams' =>array('type'=>'varchar(255)', 'label'=>'Extraparams', 'enabled'=>1, 'visible'=>-1, 'position'=>125), - 'ref_customer' =>array('type'=>'varchar(50)', 'label'=>'Ref customer', 'enabled'=>1, 'visible'=>-1, 'position'=>130), 'fk_user_modif' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>135), 'last_main_doc' =>array('type'=>'varchar(255)', 'label'=>'Last main doc', 'enabled'=>1, 'visible'=>-1, 'position'=>140), 'statut' =>array('type'=>'smallint(6)', 'label'=>'Statut', 'enabled'=>1, 'visible'=>-1, 'position'=>500, 'notnull'=>1, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Validated', 2=>'Closed')) @@ -320,15 +320,15 @@ class Contrat extends CommonObject * * @param User $user Objet User who activate contract * @param int $line_id Id of line to activate - * @param int $date Opening date + * @param int $date_start Opening date * @param int|string $date_end Expected end date * @param string $comment A comment typed by user * @return int <0 if KO, >0 if OK */ - public function active_line($user, $line_id, $date, $date_end = '', $comment = '') + public function active_line($user, $line_id, $date_start, $date_end = '', $comment = '') { // phpcs:enable - $result = $this->lines[$this->lines_id_index_mapper[$line_id]]->active_line($user, $date, $date_end, $comment); + $result = $this->lines[$this->lines_id_index_mapper[$line_id]]->active_line($user, $date_start, $date_end, $comment); if ($result < 0) { $this->error = $this->lines[$this->lines_id_index_mapper[$line_id]]->error; $this->errors = $this->lines[$this->lines_id_index_mapper[$line_id]]->errors; @@ -718,7 +718,7 @@ class Contrat extends CommonObject $this->socid = $obj->fk_soc; $this->fk_soc = $obj->fk_soc; $this->last_main_doc = $obj->last_main_doc; - $this->extraparams = (array) json_decode($obj->extraparams, true); + $this->extraparams = (isset($obj->extraparams) ? (array) json_decode($obj->extraparams, true) : null); $this->db->free($resql); @@ -1368,8 +1368,8 @@ class Contrat extends CommonObject $sql .= " fk_commercial_suivi=".(isset($this->fk_commercial_suivi) ? $this->fk_commercial_suivi : "null").","; $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; - $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null").""; - //$sql.= " extraparams=".(isset($this->extraparams)?"'".$this->db->escape($this->extraparams)."'":"null").""; + $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null"); + //$sql.= " extraparams=".(isset($this->extraparams)?"'".$this->db->escape($this->extraparams)."'":"null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); @@ -2249,15 +2249,15 @@ class Contrat extends CommonObject $warning_delay = $conf->contrat->services->inactifs->warning_delay; $label = $langs->trans("BoardNotActivatedServices"); $labelShort = $langs->trans("BoardNotActivatedServicesShort"); - $url = DOL_URL_ROOT.'/contrat/services_list.php?mainmenu=commercial&leftmenu=contracts&mode=0&sortfield=cd.date_fin_validite&sortorder=asc'; + $url = DOL_URL_ROOT.'/contrat/services_list.php?mainmenu=commercial&leftmenu=contracts&search_status=0&sortfield=cd.date_fin_validite&sortorder=asc'; } elseif ($mode == 'expired') { $warning_delay = $conf->contrat->services->expires->warning_delay; - $url = DOL_URL_ROOT.'/contrat/services_list.php?mainmenu=commercial&leftmenu=contracts&mode=4&filter=expired&sortfield=cd.date_fin_validite&sortorder=asc'; + $url = DOL_URL_ROOT.'/contrat/services_list.php?mainmenu=commercial&leftmenu=contracts&search_status=4&filter=expired&sortfield=cd.date_fin_validite&sortorder=asc'; $label = $langs->trans("BoardExpiredServices"); $labelShort = $langs->trans("BoardExpiredServicesShort"); } else { $warning_delay = $conf->contrat->services->expires->warning_delay; - $url = DOL_URL_ROOT.'/contrat/services_list.php?mainmenu=commercial&leftmenu=contracts&mode=4&sortfield=cd.date_fin_validite&sortorder=asc'; + $url = DOL_URL_ROOT.'/contrat/services_list.php?mainmenu=commercial&leftmenu=contracts&search_status=4&sortfield=cd.date_fin_validite&sortorder=asc'; //$url.= '&op2day='.$arraydatetouse['mday'].'&op2month='.$arraydatetouse['mon'].'&op2year='.$arraydatetouse['year']; //if ($warning_delay >= 0) $url.='&filter=expired'; $label = $langs->trans("BoardRunningServices"); @@ -2474,18 +2474,18 @@ class Contrat extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'contrat' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -2602,6 +2602,8 @@ class Contrat extends CommonObject $action = ''; $reshook = $hookmanager->executeHooks('createFrom', $parameters, $clonedObj, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { + $this->errors += $hookmanager->errors; + $this->error = $hookmanager->error; $error++; } } @@ -2789,6 +2791,39 @@ class Contrat extends CommonObject return ($error ? 1: 0); } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + //$return .= ''; // Can be image + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).''; + if (property_exists($this, 'societe')) { + $return .= '
'.$this->societe.''; + } + if (property_exists($this, 'date_contrat')) { + $return .= '
'.$langs->trans("DateContract").' : '.dol_print_date($this->date_contrat).''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } @@ -2865,23 +2900,6 @@ class ContratLigne extends CommonObjectLine public $date_start_real; // date start real public $date_end; // date end planned public $date_end_real; // date end real - // For backward compatibility - /** - * @deprecated Use date_start - */ - //public $date_ouverture_prevue; // date start planned - /** - * @deprecated Use date_start_real - */ - //public $date_ouverture; // date start real - /** - * @deprecated Use date_end - */ - //public $date_fin_validite; // date end planned - /** - * @deprecated Use date_end_real - */ - //public $date_cloture; // date end real public $tva_tx; public $vat_src_code; @@ -2961,7 +2979,7 @@ class ContratLigne extends CommonObjectLine 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>10), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>30, 'index'=>1), 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>35), - 'qty' =>array('type'=>'integer', 'label'=>'Quantity', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>35, 'isameasure'=>1), + 'qty' =>array('type'=>'integer', 'label'=>'Quantity', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>35, 'isameasure'=>1), 'total_ht' =>array('type'=>'integer', 'label'=>'AmountHT', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>36, 'isameasure'=>1), 'total_tva' =>array('type'=>'integer', 'label'=>'AmountVAT', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>37, 'isameasure'=>1), 'total_ttc' =>array('type'=>'integer', 'label'=>'AmountTTC', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>38, 'isameasure'=>1), @@ -3303,15 +3321,11 @@ class ContratLigne extends CommonObjectLine $this->date_end_real = $this->date_end_real; } - - // Check parameters - // Put here code to add control on parameters values - // Calcul du total TTC et de la TVA pour la ligne a partir de // qty, pu, remise_percent et txtva // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. - $localtaxes_type = getLocalTaxesFromRate($this->txtva, 0, $this->societe, $mysoc); + $localtaxes_type = getLocalTaxesFromRate($this->txtva, 0, $this->thirdparty, $mysoc); $tabprice = calcul_price_total($this->qty, $this->price_ht, $this->remise_percent, $this->tva_tx, $this->localtax1_tx, $this->localtax2_tx, 0, 'HT', 0, 1, $mysoc, $localtaxes_type); $this->total_ht = $tabprice[0]; @@ -3455,11 +3469,11 @@ class ContratLigne extends CommonObjectLine // Mise a jour ligne en base $sql = "UPDATE ".MAIN_DB_PREFIX."contratdet SET"; - $sql .= " total_ht=".price2num($this->total_ht, 'MT').""; - $sql .= ",total_tva=".price2num($this->total_tva, 'MT').""; - $sql .= ",total_localtax1=".price2num($this->total_localtax1, 'MT').""; - $sql .= ",total_localtax2=".price2num($this->total_localtax2, 'MT').""; - $sql .= ",total_ttc=".price2num($this->total_ttc, 'MT').""; + $sql .= " total_ht=".price2num($this->total_ht, 'MT'); + $sql .= ",total_tva=".price2num($this->total_tva, 'MT'); + $sql .= ",total_localtax1=".price2num($this->total_localtax1, 'MT'); + $sql .= ",total_localtax2=".price2num($this->total_localtax2, 'MT'); + $sql .= ",total_ttc=".price2num($this->total_ttc, 'MT'); $sql .= " WHERE rowid = ".((int) $this->id); dol_syslog(get_class($this)."::update_total", LOG_DEBUG); @@ -3573,7 +3587,7 @@ class ContratLigne extends CommonObjectLine * Activate a contract line * * @param User $user Objet User who activate contract - * @param int $date Date activation + * @param int $date Date real activation * @param int|string $date_end Date planned end. Use '-1' to keep it unchanged. * @param string $comment A comment typed by user * @return int <0 if KO, >0 if OK @@ -3588,13 +3602,13 @@ class ContratLigne extends CommonObjectLine $this->db->begin(); $this->statut = ContratLigne::STATUS_OPEN; - $this->date_start = $date; + $this->date_start_real = $date; $this->date_end = $date_end; $this->fk_user_ouverture = $user->id; $this->date_end_real = null; $this->commentaire = $comment; - $sql = "UPDATE ".MAIN_DB_PREFIX."contratdet SET statut = ".$this->statut.","; + $sql = "UPDATE ".MAIN_DB_PREFIX."contratdet SET statut = ".((int) $this->statut).","; $sql .= " date_ouverture = ".(dol_strlen($this->date_start_real) != 0 ? "'".$this->db->idate($this->date_start_real)."'" : "null").","; if ($date_end >= 0) { $sql .= " date_fin_validite = ".(dol_strlen($this->date_end) != 0 ? "'".$this->db->idate($this->date_end)."'" : "null").","; @@ -3633,7 +3647,7 @@ class ContratLigne extends CommonObjectLine * Close a contract line * * @param User $user Objet User who close contract - * @param int $date_end_real Date end + * @param int $date_end_real Date end * @param string $comment A comment typed by user * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers * @return int <0 if KO, >0 if OK @@ -3645,6 +3659,7 @@ class ContratLigne extends CommonObjectLine // Update object $this->date_cloture = $date_end_real; + $this->date_end_real = $date_end_real; $this->fk_user_cloture = $user->id; $this->commentaire = $comment; diff --git a/htdocs/contrat/contact.php b/htdocs/contrat/contact.php index e5557c28a5b..6ca7b9b86ef 100644 --- a/htdocs/contrat/contact.php +++ b/htdocs/contrat/contact.php @@ -165,7 +165,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/contrat/document.php b/htdocs/contrat/document.php index 652738f10b5..3fb6ce25a6d 100644 --- a/htdocs/contrat/document.php +++ b/htdocs/contrat/document.php @@ -152,7 +152,7 @@ if ($object->id) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/contrat/index.php b/htdocs/contrat/index.php index d537934a299..c40453ec7af 100644 --- a/htdocs/contrat/index.php +++ b/htdocs/contrat/index.php @@ -194,7 +194,7 @@ foreach ($listofstatus as $status) { if (empty($conf->use_javascript_ajax)) { print '
'.$staticcontratligne->LibStatut($status, 0, ($bool ? 1 : 0)).''.($nb[$status.$bool] ? $nb[$status.$bool] : 0).' '.$staticcontratligne->LibStatut($status, 3, ($bool ? 1 : 0)).''.($nb[$status.$bool] ? $nb[$status.$bool] : 0).' '.$staticcontratligne->LibStatut($status, 3, ($bool ? 1 : 0)).'
'.$staticcontratligne->LibStatut($status, 0, ($bool ? 1 : 0)).''.($nb[$status.$bool] ? $nb[$status.$bool] : 0).' '.$staticcontratligne->LibStatut($status, 3, ($bool ? 1 : 0)).''.($nb[$status.$bool] ? $nb[$status.$bool] : 0).' '.$staticcontratligne->LibStatut($status, 3, ($bool ? 1 : 0)).'

"; if (isModEnabled('contrat') && $user->rights->contrat->lire) { $sql = "SELECT c.rowid, c.ref,"; - $sql .= " s.nom as name, s.rowid as socid"; + $sql .= " s.nom as name, s.name_alias, s.logo, s.rowid as socid, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur"; $sql .= " FROM ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."societe as s"; if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; @@ -266,8 +266,6 @@ if (isModEnabled('contrat') && $user->rights->contrat->lire) { print '
'.$langs->trans("DraftContracts").($num ? ''.$num.'' : '').'
'; print $staticcontrat->getNomUrl(1, ''); print ''; - print $companystatic->getNomUrl(1, '', 16); + print $staticcompany->getNomUrl(1, '', 16); print '
'.$langs->trans("NoContracts").'
'.$langs->trans("NoContracts").'

"; $db->free($resql); @@ -312,7 +317,8 @@ $sql .= " sum(".$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NULL OR cd. $sql .= " sum(".$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NOT NULL AND cd.date_fin_validite < '".$db->idate($now)."')", 1, 0).') as nb_expired,'; $sql .= " sum(".$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NOT NULL AND cd.date_fin_validite < '".$db->idate($now - $conf->contrat->services->expires->warning_delay)."')", 1, 0).') as nb_late,'; $sql .= " sum(".$db->ifsql("cd.statut=5", 1, 0).') as nb_closed,'; -$sql .= " c.rowid as cid, c.ref, c.datec, c.tms, c.statut, s.nom as name, s.rowid as socid"; +$sql .= " c.rowid as cid, c.ref, c.datec, c.tms, c.statut,"; +$sql .= " s.nom as name, s.name_alias, s.logo, s.rowid as socid, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s,"; if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= " ".MAIN_DB_PREFIX."societe_commerciaux as sc,"; @@ -328,7 +334,8 @@ if (empty($user->rights->societe->client->voir) && !$socid) { if ($socid) { $sql .= " AND s.rowid = ".((int) $socid); } -$sql .= " GROUP BY c.rowid, c.ref, c.datec, c.tms, c.statut, s.nom, s.rowid"; +$sql .= " GROUP BY c.rowid, c.ref, c.datec, c.tms, c.statut,"; +$sql .= " s.nom, s.name_alias, s.logo, s.rowid, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur"; $sql .= " ORDER BY c.tms DESC"; $sql .= $db->plimit($max); @@ -356,6 +363,14 @@ if ($result) { $staticcompany->id = $obj->socid; $staticcompany->name = $obj->name; + $staticcompany->name_alias = $obj->name_alias; + $staticcompany->photo = 1; + $staticcompany->code_client = $obj->code_client; + $staticcompany->code_fournisseur = $obj->code_fournisseur; + $staticcompany->code_compta = $obj->code_compta; + $staticcompany->code_compta_fournisseur = $obj->code_compta_fournisseur; + $staticcompany->client = $obj->client; + $staticcompany->fournisseur = $obj->fournisseur; print '
'; @@ -389,9 +404,9 @@ if ($result) { print '
'; // Last modified services -$sql = "SELECT c.ref, c.fk_soc, "; +$sql = "SELECT c.ref, c.fk_soc as socid,"; $sql .= " cd.rowid as cid, cd.statut, cd.label, cd.fk_product, cd.description as note, cd.fk_contrat, cd.date_fin_validite,"; -$sql .= " s.nom as name,"; +$sql .= " s.nom as name, s.name_alias, s.logo, s.rowid as socid, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,"; $sql .= " p.rowid as pid, p.ref as pref, p.label as plabel, p.fk_product_type as ptype, p.entity as pentity"; $sql .= " FROM (".MAIN_DB_PREFIX."contrat as c"; $sql .= ", ".MAIN_DB_PREFIX."societe as s"; @@ -427,9 +442,23 @@ if ($resql) { print '
'; + $staticcontrat->ref = ($obj->ref ? $obj->ref : $obj->fk_contrat); $staticcontrat->id = $obj->fk_contrat; + + $staticcompany->id = $obj->socid; + $staticcompany->name = $obj->name; + $staticcompany->name_alias = $obj->name_alias; + $staticcompany->photo = 1; + $staticcompany->code_client = $obj->code_client; + $staticcompany->code_fournisseur = $obj->code_fournisseur; + $staticcompany->code_compta = $obj->code_compta; + $staticcompany->code_compta_fournisseur = $obj->code_compta_fournisseur; + $staticcompany->client = $obj->client; + $staticcompany->fournisseur = $obj->fournisseur; + print $staticcontrat->getNomUrl(1, 16); + //if (1 == 1) print img_warning($langs->trans("Late")); print ''; @@ -449,8 +478,6 @@ if ($resql) { } print ''; - $staticcompany->id = $obj->fk_soc; - $staticcompany->name = $obj->name; print $staticcompany->getNomUrl(1, '', 20); print ''; @@ -471,7 +498,7 @@ print '
'; // Not activated services $sql = "SELECT c.ref, c.fk_soc, cd.rowid as cid, cd.statut, cd.label, cd.fk_product, cd.description as note, cd.fk_contrat,"; -$sql .= " s.nom as name,"; +$sql .= " s.nom as name, s.name_alias, s.logo, s.rowid as socid, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,"; $sql .= " p.rowid as pid, p.ref as pref, p.label as plabel, p.fk_product_type as ptype, p.entity as pentity"; $sql .= " FROM (".MAIN_DB_PREFIX."contrat as c"; $sql .= ", ".MAIN_DB_PREFIX."societe as s"; @@ -507,19 +534,32 @@ if ($resql) { while ($i < $num) { $obj = $db->fetch_object($resql); + $staticcompany->id = $obj->fk_soc; + $staticcompany->name = $obj->name; + $staticcompany->name_alias = $obj->name_alias; + $staticcompany->photo = 1; + $staticcompany->code_client = $obj->code_client; + $staticcompany->code_fournisseur = $obj->code_fournisseur; + $staticcompany->code_compta = $obj->code_compta; + $staticcompany->code_compta_fournisseur = $obj->code_compta_fournisseur; + $staticcompany->client = $obj->client; + $staticcompany->fournisseur = $obj->fournisseur; + + $staticcontrat->ref = ($obj->ref ? $obj->ref : $obj->fk_contrat); + $staticcontrat->id = $obj->fk_contrat; + + $productstatic->id = $obj->fk_product; + $productstatic->type = $obj->ptype; + $productstatic->ref = $obj->pref; + $productstatic->entity = $obj->pentity; + print '
'; - $staticcontrat->ref = ($obj->ref ? $obj->ref : $obj->fk_contrat); - $staticcontrat->id = $obj->fk_contrat; print $staticcontrat->getNomUrl(1, 16); print ''; if ($obj->fk_product > 0) { - $productstatic->id = $obj->fk_product; - $productstatic->type = $obj->ptype; - $productstatic->ref = $obj->pref; - $productstatic->entity = $obj->pentity; print $productstatic->getNomUrl(1, '', 20); } else { print ''.img_object($langs->trans("ShowService"), "service"); @@ -531,8 +571,6 @@ if ($resql) { } print ''; - $staticcompany->id = $obj->fk_soc; - $staticcompany->name = $obj->name; print $staticcompany->getNomUrl(1, '', 20); print ''; @@ -553,7 +591,7 @@ print '
'; // Expired services $sql = "SELECT c.ref, c.fk_soc, cd.rowid as cid, cd.statut, cd.label, cd.fk_product, cd.description as note, cd.fk_contrat,"; -$sql .= " s.nom as name,"; +$sql .= " s.nom as name, s.name_alias, s.logo, s.rowid as socid, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,"; $sql .= " p.rowid as pid, p.ref as pref, p.label as plabel, p.fk_product_type as ptype, p.entity as pentity"; $sql .= " FROM (".MAIN_DB_PREFIX."contrat as c"; $sql .= ", ".MAIN_DB_PREFIX."societe as s"; @@ -584,25 +622,38 @@ if ($resql) { print '
'; print ''; - print ''; + print ''; print "\n"; while ($i < $num) { $obj = $db->fetch_object($resql); + $staticcompany->id = $obj->fk_soc; + $staticcompany->name = $obj->name; + $staticcompany->name_alias = $obj->name_alias; + $staticcompany->photo = 1; + $staticcompany->code_client = $obj->code_client; + $staticcompany->code_fournisseur = $obj->code_fournisseur; + $staticcompany->code_compta = $obj->code_compta; + $staticcompany->code_compta_fournisseur = $obj->code_compta_fournisseur; + $staticcompany->client = $obj->client; + $staticcompany->fournisseur = $obj->fournisseur; + + $staticcontrat->ref = ($obj->ref ? $obj->ref : $obj->fk_contrat); + $staticcontrat->id = $obj->fk_contrat; + + $productstatic->id = $obj->fk_product; + $productstatic->type = $obj->ptype; + $productstatic->ref = $obj->pref; + $productstatic->entity = $obj->pentity; + print ''; print ''; print ''; print ''; print ''; - // Action column - if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - } - // Ref - if (!empty($arrayfields['c.ref']['checked'])) { - print ''; - - print ''; - } - - // Ref thirdparty - if (!empty($arrayfields['c.ref_customer']['checked'])) { - print ''; - } - if (!empty($arrayfields['c.ref_supplier']['checked'])) { - print ''; - } - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; } - print ''; - } - // Email - if (!empty($arrayfields['s.email']['checked'])) { - print ''; - } - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type ent - if (!empty($arrayfields['typent.code']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['sale_representative']['checked'])) { - // Sales representatives - print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; } - print ''; - } - // Date - if (!empty($arrayfields['c.date_contrat']['checked'])) { - print ''; - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Date creation - if (!empty($arrayfields['c.datec']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date modification - if (!empty($arrayfields['c.tms']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date lower end date - if (!empty($arrayfields['lower_planned_end_date']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['status']['checked'])) { - print ''; - print ''; - print ''; - print ''; - } - // Action column - if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - print "\n"; + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->contrat->multidir_output[$obj->entity].'/'.dol_sanitizeFileName($obj->ref); + $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; + print $formfile->getDocumentsLink($contracttmp->element, $filename, $filedir); + print ''; + + print ''; + } + + // Ref thirdparty + if (!empty($arrayfields['c.ref_customer']['checked'])) { + print ''; + } + if (!empty($arrayfields['c.ref_supplier']['checked'])) { + print ''; + } + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + } + // Email + if (!empty($arrayfields['s.email']['checked'])) { + print ''; + } + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['sale_representative']['checked'])) { + // Sales representatives + print ''; + } + // Date + if (!empty($arrayfields['c.date_contrat']['checked'])) { + print ''; + } + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (!empty($arrayfields['c.datec']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date modification + if (!empty($arrayfields['c.tms']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date lower end date + if (!empty($arrayfields['lower_planned_end_date']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['status']['checked'])) { + print ''; + print ''; + print ''; + print ''; + } + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print "\n"; + } $i++; } diff --git a/htdocs/contrat/note.php b/htdocs/contrat/note.php index f17cc11f748..576d3ce5fe2 100644 --- a/htdocs/contrat/note.php +++ b/htdocs/contrat/note.php @@ -121,7 +121,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/contrat/services_list.php b/htdocs/contrat/services_list.php index cfc888e229a..47818081448 100644 --- a/htdocs/contrat/services_list.php +++ b/htdocs/contrat/services_list.php @@ -36,6 +36,7 @@ require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php"; $langs->loadLangs(array('products', 'contracts', 'companies')); $optioncss = GETPOST('optioncss', 'aZ09'); +$mode = GETPOST("mode"); $massaction = GETPOST('massaction', 'alpha'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; @@ -55,9 +56,13 @@ if (!$sortorder) { $sortorder = "ASC"; } -$mode = GETPOST("mode"); -$filter = GETPOST("filter"); +$filter = GETPOST("filter", 'alpha'); $search_name = GETPOST("search_name", 'alpha'); +$search_subprice = GETPOST("search_subprice", 'alpha'); +$search_qty = GETPOST("search_qty", 'alpha'); +$search_total_ht = GETPOST("search_total_ht", 'alpha'); +$search_total_tva = GETPOST("search_total_tva", 'alpha'); +$search_total_ttc = GETPOST("search_total_ttc", 'alpha'); $search_contract = GETPOST("search_contract", 'alpha'); $search_service = GETPOST("search_service", 'alpha'); $search_status = GETPOST("search_status", 'alpha'); @@ -105,7 +110,6 @@ $result = restrictedArea($user, 'contrat', $contratid); if ($search_status != '') { $tmp = explode('&', $search_status); - $mode = $tmp[0]; if (empty($tmp[1])) { $filter = ''; } else { @@ -116,14 +120,6 @@ if ($search_status != '') { $filter = 'expired'; } } -} else { - $search_status = $mode; - if ($filter == 'expired') { - $search_status .= '&filter=expired'; - } - if ($filter == 'notexpired') { - $search_status .= '&filter=notexpired'; - } } $staticcontrat = new Contrat($db); @@ -136,13 +132,13 @@ $arrayfields = array( 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1, 'position'=>90), 'cd.tva_tx'=>array('label'=>"VATRate", 'checked'=>-1, 'position'=>100), 'cd.subprice'=>array('label'=>"PriceUHT", 'checked'=>-1, 'position'=>105), - 'cd.qty'=>array('label'=>"Qty", 'checked'=>-1, 'position'=>108), - 'cd.total_ht'=>array('label'=>"TotalHT", 'checked'=>-1, 'position'=>109), + 'cd.qty'=>array('label'=>"Qty", 'checked'=>1, 'position'=>108), + 'cd.total_ht'=>array('label'=>"TotalHT", 'checked'=>-1, 'position'=>109, 'isameasure'=>1), 'cd.total_tva'=>array('label'=>"TotalVAT", 'checked'=>-1, 'position'=>110), - 'cd.date_ouverture_prevue'=>array('label'=>"DateStartPlannedShort", 'checked'=>(($mode == "" || $mode == -1) || $mode == "0"), 'position'=>150), - 'cd.date_ouverture'=>array('label'=>"DateStartRealShort", 'checked'=>(($mode == "" || $mode == -1) || $mode > 0), 'position'=>160), - 'cd.date_fin_validite'=>array('label'=>"DateEndPlannedShort", 'checked'=>(($mode == "" || $mode == -1) || $mode < 5), 'position'=>170), - 'cd.date_cloture'=>array('label'=>"DateEndRealShort", 'checked'=>(($mode == "" || $mode == -1) || $mode >= 5), 'position'=>180), + 'cd.date_ouverture_prevue'=>array('label'=>"DateStartPlannedShort", 'checked'=>1, 'position'=>150), + 'cd.date_ouverture'=>array('label'=>"DateStartRealShort", 'checked'=>1, 'position'=>160), + 'cd.date_fin_validite'=>array('label'=>"DateEndPlannedShort", 'checked'=>1, 'position'=>170), + 'cd.date_cloture'=>array('label'=>"DateEndRealShort", 'checked'=>1, 'position'=>180), //'cd.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500), 'cd.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500), 'status'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000) @@ -180,6 +176,11 @@ if (empty($reshook)) { 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_product_category = 0; $search_name = ""; + $search_subprice = ""; + $search_qty = ""; + $search_total_ht = ""; + $search_total_tva = ""; + $search_total_ttc = ""; $search_contract = ""; $search_service = ""; $search_status = -1; @@ -199,7 +200,6 @@ if (empty($reshook)) { $opclotureday = ""; $opclotureyear = ""; $filter_opcloture = ""; - $mode = ''; $filter = ''; $toselect = array(); $search_array_options = array(); @@ -217,7 +217,7 @@ $form = new Form($db); $sql = "SELECT c.rowid as cid, c.ref, c.statut as cstatut, c.ref_customer, c.ref_supplier,"; $sql .= " s.rowid as socid, s.nom as name, s.email, s.client, s.fournisseur,"; -$sql .= " cd.rowid, cd.description, cd.statut,"; +$sql .= " cd.rowid, cd.description, cd.statut, cd.product_type as type,"; $sql .= " p.rowid as pid, p.ref as pref, p.label as label, p.fk_product_type as ptype, p.tobuy, p.tosell, p.barcode, p.entity as pentity,"; if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= " sc.fk_soc, sc.fk_user,"; @@ -256,7 +256,7 @@ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON cd.fk_product = p.rowid"; if ($search_product_category > 0) { $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=cd.fk_product'; } -$sql .= " WHERE c.entity = ".$conf->entity; +$sql .= " WHERE c.entity IN (".getEntity($object->element).")"; $sql .= " AND c.rowid = cd.fk_contrat"; if ($search_product_category > 0) { $sql .= " AND cp.fk_categorie = ".((int) $search_product_category); @@ -265,13 +265,13 @@ $sql .= " AND c.fk_soc = s.rowid"; if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } -if ($mode == "0") { +if ($search_status == "0") { $sql .= " AND cd.statut = 0"; } -if ($mode == "4") { +if ($search_status == "4") { $sql .= " AND cd.statut = 4"; } -if ($mode == "5") { +if ($search_status == "5") { $sql .= " AND cd.statut = 5"; } if ($filter == "expired") { @@ -280,14 +280,29 @@ if ($filter == "expired") { if ($filter == "notexpired") { $sql .= " AND cd.date_fin_validite >= '".$db->idate($now)."'"; } +if ($search_subprice) { + $sql .= natural_search("cd.subprice", $search_subprice, 1); +} +if ($search_qty) { + $sql .= natural_search("cd.qty", $search_qty, 1); +} +if ($search_total_ht) { + $sql .= natural_search("cd.total_ht", $search_total_ht, 1); +} +if ($search_total_tva) { + $sql .= natural_search("cd.total_tva", $search_total_tva, 1); +} +if ($search_total_ttc) { + $sql .= natural_search("cd.total_ttc", $search_total_ttc, 1); +} if ($search_name) { - $sql .= " AND s.nom LIKE '%".$db->escape($search_name)."%'"; + $sql .= natural_search("s.nom", $search_name); } if ($search_contract) { - $sql .= " AND c.ref LIKE '%".$db->escape($search_contract)."%' "; + $sql .= natural_search("c.ref", $search_contract); } if ($search_service) { - $sql .= " AND (p.ref LIKE '%".$db->escape($search_service)."%' OR p.description LIKE '%".$db->escape($search_service)."%' OR cd.description LIKE '%".$db->escape($search_service)."%')"; + $sql .= natural_search(array("p.ref", "p.description", "cd.description"), $search_service); } if ($socid > 0) { $sql .= " AND s.rowid = ".((int) $socid); @@ -392,17 +407,35 @@ if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.$limit; } +if ($mode) { + $param .= '&mode='.urlencode($mode); +} if ($search_contract) { $param .= '&search_contract='.urlencode($search_contract); } if ($search_name) { $param .= '&search_name='.urlencode($search_name); } +if ($search_subprice) { + $param .= '&search_subprice='.urlencode($search_subprice); +} +if ($search_qty) { + $param .= '&search_qty='.urlencode($search_qty); +} +if ($search_total_ht) { + $param .= '&search_total_ht='.urlencode($search_total_ht); +} +if ($search_total_tva) { + $param .= '&search_total_tva='.urlencode($search_total_tva); +} +if ($search_total_ttc) { + $param .= '&search_total_ttc='.urlencode($search_total_ttc); +} if ($search_service) { $param .= '&search_service='.urlencode($search_service); } -if ($mode) { - $param .= '&mode='.urlencode($mode); +if ($search_status) { + $param .= '&search_status='.urlencode($search_status); } if ($filter) { $param .= '&filter='.urlencode($filter); @@ -460,16 +493,16 @@ print ''; print ''; $title = $langs->trans("ListOfServices"); -if ($mode == "0") { +if ($search_status == "0") { $title = $langs->trans("ListOfInactiveServices"); // Must use == "0" } -if ($mode == "4" && $filter != "expired") { +if ($search_status == "4" && $filter != "expired") { $title = $langs->trans("ListOfRunningServices"); } -if ($mode == "4" && $filter == "expired") { +if ($search_status == "4" && $filter == "expired") { $title = $langs->trans("ListOfExpiredServices"); } -if ($mode == "5") { +if ($search_status == "5") { $title = $langs->trans("ListOfClosedServices"); } @@ -517,67 +550,13 @@ $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfi print '
'; print '
'.$langs->trans("ListOfExpiredServices").' '.$num.'
'.$langs->trans("ListOfExpiredServices").' '.$num.'
'; - $staticcontrat->ref = ($obj->ref ? $obj->ref : $obj->fk_contrat); - $staticcontrat->id = $obj->fk_contrat; print $staticcontrat->getNomUrl(1, 16); print ''; if ($obj->fk_product > 0) { - $productstatic->id = $obj->fk_product; - $productstatic->type = $obj->ptype; - $productstatic->ref = $obj->pref; - $productstatic->entity = $obj->pentity; print $productstatic->getNomUrl(1, '', 20); } else { print ''.img_object($langs->trans("ShowService"), "service"); @@ -614,8 +665,6 @@ if ($resql) { } print ''; - $staticcompany->id = $obj->fk_soc; - $staticcompany->name = $obj->name; print $staticcompany->getNomUrl(1, '', 20); print ''; diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php index 07cf120f4cc..38c37c1389e 100644 --- a/htdocs/contrat/list.php +++ b/htdocs/contrat/list.php @@ -51,6 +51,7 @@ $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'contractlist'; // To manage different context of search +$mode = GETPOST('mode', 'alpha'); $search_name = GETPOST('search_name', 'alpha'); $search_email = GETPOST('search_email', 'alpha'); @@ -62,7 +63,7 @@ $search_type_thirdparty = GETPOST("search_type_thirdparty", 'int'); $search_contract = GETPOST('search_contract', 'alpha'); $search_ref_customer = GETPOST('search_ref_customer', 'alpha'); $search_ref_supplier = GETPOST('search_ref_supplier', 'alpha'); -$sall = (GETPOST('search_all', 'alphanohtml') != '') ? GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml'); +$search_all = (GETPOST('search_all', 'alphanohtml') != '') ? GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml'); $search_status = GETPOST('search_status', 'alpha'); $socid = GETPOST('socid', 'int'); $search_user = GETPOST('search_user', 'int'); @@ -132,16 +133,23 @@ $extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // List of fields to search into when doing a "search in all" -$fieldstosearchall = array( - 'c.ref'=>'Ref', - 'c.ref_customer'=>'RefCustomer', - 'c.ref_supplier'=>'RefSupplier', - 's.nom'=>"ThirdParty", - 'c.note_public'=>'NotePublic', -); +$fieldstosearchall = array(); +foreach ($object->fields as $key => $val) { + if (!empty($val['searchall'])) { + $fieldstosearchall['c.'.$key] = $val['label']; + } +} +$fieldstosearchall["s.nom"] = "ThirdParty"; if (empty($user->socid)) { $fieldstosearchall["c.note_private"] = "NotePrivate"; } +$parameters = array('fieldstosearchall'=>$fieldstosearchall); +$reshook = $hookmanager->executeHooks('completeFieldsToSearchAll', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook > 0) { + $fieldstosearchall = $hookmanager->resArray['fieldstosearchall']; +} elseif ($reshook == 0) { + $fieldstosearchall = array_merge($fieldstosearchall, $hookmanager->resArray['fieldstosearchall']); +} $arrayfields = array( 'c.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1, 'position'=>10), @@ -166,9 +174,12 @@ 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 = $user->rights->contrat->lire; +$permissiontodelete = $user->rights->contrat->supprimer; + /* - * Action + * Actions */ if (GETPOST('cancel', 'alpha')) { @@ -212,7 +223,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_date_endyear = ''; $search_date_start = ''; $search_date_end = ''; - $sall = ""; + $search_all = ""; $search_status = ""; $toselect = array(); $search_type_thirdparty = ''; @@ -223,8 +234,6 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' if (empty($reshook)) { $objectclass = 'Contrat'; $objectlabel = 'Contracts'; - $permissiontoread = $user->rights->contrat->lire; - $permissiontodelete = $user->rights->contrat->supprimer; $uploaddir = $conf->contrat->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -264,6 +273,9 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."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)"; @@ -324,8 +336,8 @@ if ($search_country && $search_country != '-1') { if ($search_sale > 0) { $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $search_sale); } -if ($sall) { - $sql .= natural_search(array_keys($fieldstosearchall), $sall); +if ($search_all) { + $sql .= natural_search(array_keys($fieldstosearchall), $search_all); } if ($search_user > 0) { $sql .= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='contrat' AND tc.source='internal' AND ec.element_id = c.rowid AND ec.fk_socpeople = ".((int) $search_user); @@ -455,13 +467,18 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { } } } else { - $sqlforcount = preg_replace('/^SELECT[a-zA-Z0-9\._\s\(\),=<>\:\-\']+\sFROM/Ui', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); - $sqlforcount = preg_replace('/LEFT JOIN '.MAIN_DB_PREFIX.'contratdet as cd ON c.rowid = cd.fk_contrat/', '', $sqlforcount); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/LEFT JOIN '.MAIN_DB_PREFIX.'contratdet as cd ON c.rowid = cd.fk_contrat /', '', $sqlforcount); $sqlforcount = preg_replace('/GROUP BY.*$/', '', $sqlforcount); $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 resultset is smaller then paging size (filtering), goto and load page 0 @@ -484,7 +501,7 @@ 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) && $sall && !$page) { +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_URL_ROOT.'/contrat/card.php?id='.$id); @@ -510,14 +527,17 @@ if ($socid > 0) { } $param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.urlencode($limit); } -if ($sall != '') { - $param .= '&sall='.urlencode($sall); +if ($search_all != '') { + $param .= '&search_all='.urlencode($search_all); } if ($search_contract != '') { $param .= '&search_contract='.urlencode($search_contract); @@ -594,10 +614,10 @@ $arrayofmassactions = array( 'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), 'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), ); -if ($user->rights->contrat->supprimer) { +if (!empty($permissiontodelete)) { $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } -if (in_array($massaction, array('presend', 'predelete'))) { +if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) { $arrayofmassactions = array(); } $massactionbutton = $form->selectMassAction('', $arrayofmassactions); @@ -606,9 +626,12 @@ $url = DOL_URL_ROOT.'/contrat/card.php?action=create'; if (!empty($socid)) { $url .= '&socid='.((int) $socid); } -$newcardbutton = dolGetButtonTitle($langs->trans('NewContractSubscription'), '', 'fa fa-plus-circle', $url, '', $user->rights->contrat->creer); +$newcardbutton = ''; +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('NewContractSubscription'), '', 'fa fa-plus-circle', $url, '', $user->rights->contrat->creer); -print ''; +print ''; if ($optioncss != '') { print ''; } @@ -617,9 +640,12 @@ print ''; print ''; print ''; +print ''; print ''; +print ''; +print ''; -print_barre_liste($langs->trans("ListOfContracts"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'contract', 0, $newcardbutton, '', $limit, 0, 0, 1); +print_barre_liste($langs->trans("Contracts"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'contract', 0, $newcardbutton, '', $limit, 0, 0, 1); $topicmail = "SendContractRef"; $modelmail = "contract"; @@ -627,11 +653,14 @@ $objecttmp = new Contrat($db); $trackid = 'con'.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; -if ($sall) { +if ($search_all) { + $setupstring = ''; foreach ($fieldstosearchall as $key => $val) { $fieldstosearchall[$key] = $langs->trans($val); + $setupstring .= $key."=".$val.";"; } - print '
'.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'
'; + print ''."\n"; + print '
'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
'."\n"; } $moreforfilter = ''; @@ -909,212 +938,227 @@ while ($i < min($num, $limit)) { $socstatic->country_code = $cacheCountryIDCode[$obj->country_id]['code']; $socstatic->country = $cacheCountryIDCode[$obj->country_id]['label']; } - - - print '
'; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; - } - print ''; - } - print ''; - print $contracttmp->getNomUrl(1); - if ($obj->nb_late) { - print img_warning($langs->trans("Late")); - } - if (!empty($obj->note_private) || !empty($obj->note_public)) { - print ' '; - print ''.img_picto($langs->trans("ViewPrivateNote"), 'note').''; - print ''; + //mode kanban + if ($mode == 'kanban') { + if ($i == 0) { + print '
'; + print '
'; } - $filename = dol_sanitizeFileName($obj->ref); - $filedir = $conf->contrat->multidir_output[$obj->entity].'/'.dol_sanitizeFileName($obj->ref); - $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; - print $formfile->getDocumentsLink($contracttmp->element, $filename, $filedir); - print '
'.$contracttmp->getFormatedCustomerRef($obj->ref_customer).''.dol_escape_htmltag($obj->ref_supplier).''; - if ($obj->socid > 0) { - // TODO Use a cache for this string - print $socstatic->getNomUrl(1, ''); + // Output Kanban + $contracttmp->societe = $socstatic->getNomUrl(); + $contracttmp->date_contrat = $obj->date_contrat; + print $contracttmp->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print ''; + print '
'.dol_print_email($obj->email, 0, $obj->socid, 0, 0, 1, 1).''; - print $obj->town; - print ''; - print $obj->zip; - print '".$obj->state_name."'; - print dol_escape_htmltag($socstatic->country); - print ''; - if (count($typenArray) == 0) { - $typenArray = $formcompany->typent_array(1); - } - print $typenArray[$obj->typent_code]; - print ''; - if ($obj->socid > 0) { - $listsalesrepresentatives = $socstatic->getSalesRepresentatives($user); - if ($listsalesrepresentatives < 0) { - dol_print_error($db); - } - $nbofsalesrepresentative = count($listsalesrepresentatives); - if ($nbofsalesrepresentative > 6) { - // We print only number - print $nbofsalesrepresentative; - } elseif ($nbofsalesrepresentative > 0) { - $userstatic = new User($db); - $j = 0; - foreach ($listsalesrepresentatives as $val) { - $userstatic->id = $val['id']; - $userstatic->lastname = $val['lastname']; - $userstatic->firstname = $val['firstname']; - $userstatic->email = $val['email']; - $userstatic->statut = $val['statut']; - $userstatic->entity = $val['entity']; - $userstatic->photo = $val['photo']; - $userstatic->login = $val['login']; - $userstatic->phone = $val['phone']; - $userstatic->job = $val['job']; - $userstatic->gender = $val['gender']; - - //print '
': - print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); - $j++; - if ($j < $nbofsalesrepresentative) { - print ' '; - } - //print '
'; + } else { + print '
'; + 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 ''; } - //else print $langs->trans("NoSalesRepresentativeAffected"); - } else { - print ' '; + print ''.dol_print_date($db->jdate($obj->date_contrat), 'day', 'tzserver').''; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''; - print dol_print_date($db->jdate($obj->lower_planned_end_date), 'day', 'tzuser'); - print ''.($obj->nb_initial > 0 ? $obj->nb_initial : '').''.($obj->nb_running > 0 ? $obj->nb_running : '').''.($obj->nb_expired > 0 ? $obj->nb_expired : '').''.($obj->nb_closed > 0 ? $obj->nb_closed : '').''; - 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; + // Ref + if (!empty($arrayfields['c.ref']['checked'])) { + print ''; + print $contracttmp->getNomUrl(1); + if ($obj->nb_late) { + print img_warning($langs->trans("Late")); + } + if (!empty($obj->note_private) || !empty($obj->note_public)) { + print ' '; + print ''.img_picto($langs->trans("ViewPrivateNote"), 'note').''; + print ''; } - print ''; - } - print '
'.$contracttmp->getFormatedCustomerRef($obj->ref_customer).''.dol_escape_htmltag($obj->ref_supplier).''; + if ($obj->socid > 0) { + // TODO Use a cache for this string + print $socstatic->getNomUrl(1, ''); + } + print ''.dol_print_email($obj->email, 0, $obj->socid, 0, 0, 1, 1).''; + print $obj->town; + print ''; + print $obj->zip; + print '".$obj->state_name."'; + print dol_escape_htmltag($socstatic->country); + print ''; + if (count($typenArray) == 0) { + $typenArray = $formcompany->typent_array(1); + } + print $typenArray[$obj->typent_code]; + print ''; + if ($obj->socid > 0) { + $listsalesrepresentatives = $socstatic->getSalesRepresentatives($user); + if ($listsalesrepresentatives < 0) { + dol_print_error($db); + } + $nbofsalesrepresentative = count($listsalesrepresentatives); + if ($nbofsalesrepresentative > 6) { + // We print only number + print $nbofsalesrepresentative; + } elseif ($nbofsalesrepresentative > 0) { + $userstatic = new User($db); + $j = 0; + foreach ($listsalesrepresentatives as $val) { + $userstatic->id = $val['id']; + $userstatic->lastname = $val['lastname']; + $userstatic->firstname = $val['firstname']; + $userstatic->email = $val['email']; + $userstatic->statut = $val['statut']; + $userstatic->entity = $val['entity']; + $userstatic->photo = $val['photo']; + $userstatic->login = $val['login']; + $userstatic->phone = $val['phone']; + $userstatic->job = $val['job']; + $userstatic->gender = $val['gender']; + + //print '
': + print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2); + $j++; + if ($j < $nbofsalesrepresentative) { + print ' '; + } + //print '
'; + } + } + //else print $langs->trans("NoSalesRepresentativeAffected"); + } else { + print ' '; + } + print '
'.dol_print_date($db->jdate($obj->date_contrat), 'day', 'tzserver').''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''; + print dol_print_date($db->jdate($obj->lower_planned_end_date), 'day', 'tzuser'); + print ''.($obj->nb_initial > 0 ? $obj->nb_initial : '').''.($obj->nb_running > 0 ? $obj->nb_running : '').''.($obj->nb_expired > 0 ? $obj->nb_expired : '').''.($obj->nb_closed > 0 ? $obj->nb_closed : '').''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
'."\n"; -print ''; -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['p.description']['checked'])) { - print_liste_field_titre($arrayfields['p.description']['label'], $_SERVER["PHP_SELF"], "p.description", "", $param, "", $sortfield, $sortorder); -} -if (!empty($arrayfields['cd.tva_tx']['checked'])) { - print_liste_field_titre($arrayfields['cd.tva_tx']['label'], $_SERVER["PHP_SELF"], "cd.tva_tx", "", $param, '', $sortfield, $sortorder, 'center nowrap '); -} -if (!empty($arrayfields['cd.subprice']['checked'])) { - print_liste_field_titre($arrayfields['cd.subprice']['label'], $_SERVER["PHP_SELF"], "cd.subprice", "", $param, '', $sortfield, $sortorder, 'center nowrap '); -} -if (!empty($arrayfields['cd.qty']['checked'])) { - print_liste_field_titre($arrayfields['cd.qty']['label'], $_SERVER["PHP_SELF"], "cd.qty", "", $param, '', $sortfield, $sortorder, 'center nowrap '); -} -if (!empty($arrayfields['cd.total_ht']['checked'])) { - print_liste_field_titre($arrayfields['cd.total_ht']['label'], $_SERVER["PHP_SELF"], "cd.total_ht", "", $param, '', $sortfield, $sortorder, 'center nowrap '); -} -if (!empty($arrayfields['cd.total_tva']['checked'])) { - print_liste_field_titre($arrayfields['cd.total_tva']['label'], $_SERVER["PHP_SELF"], "cd.total_tva", "", $param, '', $sortfield, $sortorder, 'center nowrap '); -} -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['cd.date_ouverture_prevue']['checked'])) { - print_liste_field_titre($arrayfields['cd.date_ouverture_prevue']['label'], $_SERVER["PHP_SELF"], "cd.date_ouverture_prevue", "", $param, '', $sortfield, $sortorder, 'center '); -} -if (!empty($arrayfields['cd.date_ouverture']['checked'])) { - print_liste_field_titre($arrayfields['cd.date_ouverture']['label'], $_SERVER["PHP_SELF"], "cd.date_ouverture", "", $param, '', $sortfield, $sortorder, 'center '); -} -if (!empty($arrayfields['cd.date_fin_validite']['checked'])) { - print_liste_field_titre($arrayfields['cd.date_fin_validite']['label'], $_SERVER["PHP_SELF"], "cd.date_fin_validite", "", $param, '', $sortfield, $sortorder, 'center '); -} -if (!empty($arrayfields['cd.date_cloture']['checked'])) { - print_liste_field_titre($arrayfields['cd.date_cloture']['label'], $_SERVER["PHP_SELF"], "cd.date_cloture", "", $param, '', $sortfield, $sortorder, 'center '); -} -// 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['cd.datec']['checked'])) { - print_liste_field_titre($arrayfields['cd.datec']['label'], $_SERVER["PHP_SELF"], "cd.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap '); -} -if (!empty($arrayfields['cd.tms']['checked'])) { - print_liste_field_titre($arrayfields['cd.tms']['label'], $_SERVER["PHP_SELF"], "cd.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); -} -if (!empty($arrayfields['status']['checked'])) { - print_liste_field_titre($arrayfields['status']['label'], $_SERVER["PHP_SELF"], "cd.statut,c.statut", "", $param, '', $sortfield, $sortorder, 'right '); -} -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); -print "\n"; print ''; if (!empty($arrayfields['c.ref']['checked'])) { print ''; } // Service label @@ -592,19 +571,23 @@ if (!empty($arrayfields['cd.tva_tx']['checked'])) { print ''; } if (!empty($arrayfields['cd.subprice']['checked'])) { - print ''; } if (!empty($arrayfields['cd.qty']['checked'])) { - print ''; } if (!empty($arrayfields['cd.total_ht']['checked'])) { - print ''; } if (!empty($arrayfields['cd.total_tva']['checked'])) { - print ''; } // Third party @@ -614,7 +597,6 @@ if (!empty($arrayfields['s.nom']['checked'])) { print ''; } - if (!empty($arrayfields['cd.date_ouverture_prevue']['checked'])) { print ''; } // Action column @@ -688,11 +670,67 @@ print $searchpicto; print ''; print "\n"; +print ''; +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['p.description']['checked'])) { + print_liste_field_titre($arrayfields['p.description']['label'], $_SERVER["PHP_SELF"], "p.description", "", $param, "", $sortfield, $sortorder); +} +if (!empty($arrayfields['cd.tva_tx']['checked'])) { + print_liste_field_titre($arrayfields['cd.tva_tx']['label'], $_SERVER["PHP_SELF"], "cd.tva_tx", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} +if (!empty($arrayfields['cd.subprice']['checked'])) { + print_liste_field_titre($arrayfields['cd.subprice']['label'], $_SERVER["PHP_SELF"], "cd.subprice", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} +if (!empty($arrayfields['cd.qty']['checked'])) { + print_liste_field_titre($arrayfields['cd.qty']['label'], $_SERVER["PHP_SELF"], "cd.qty", "", $param, '', $sortfield, $sortorder, 'right nowrap '); +} +if (!empty($arrayfields['cd.total_ht']['checked'])) { + print_liste_field_titre($arrayfields['cd.total_ht']['label'], $_SERVER["PHP_SELF"], "cd.total_ht", "", $param, '', $sortfield, $sortorder, 'right nowrap '); +} +if (!empty($arrayfields['cd.total_tva']['checked'])) { + print_liste_field_titre($arrayfields['cd.total_tva']['label'], $_SERVER["PHP_SELF"], "cd.total_tva", "", $param, '', $sortfield, $sortorder, 'right nowrap '); +} +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['cd.date_ouverture_prevue']['checked'])) { + print_liste_field_titre($arrayfields['cd.date_ouverture_prevue']['label'], $_SERVER["PHP_SELF"], "cd.date_ouverture_prevue", "", $param, '', $sortfield, $sortorder, 'center '); +} +if (!empty($arrayfields['cd.date_ouverture']['checked'])) { + print_liste_field_titre($arrayfields['cd.date_ouverture']['label'], $_SERVER["PHP_SELF"], "cd.date_ouverture", "", $param, '', $sortfield, $sortorder, 'center '); +} +if (!empty($arrayfields['cd.date_fin_validite']['checked'])) { + print_liste_field_titre($arrayfields['cd.date_fin_validite']['label'], $_SERVER["PHP_SELF"], "cd.date_fin_validite", "", $param, '', $sortfield, $sortorder, 'center '); +} +if (!empty($arrayfields['cd.date_cloture']['checked'])) { + print_liste_field_titre($arrayfields['cd.date_cloture']['label'], $_SERVER["PHP_SELF"], "cd.date_cloture", "", $param, '', $sortfield, $sortorder, 'center '); +} +// 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['cd.datec']['checked'])) { + print_liste_field_titre($arrayfields['cd.datec']['label'], $_SERVER["PHP_SELF"], "cd.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} +if (!empty($arrayfields['cd.tms']['checked'])) { + print_liste_field_titre($arrayfields['cd.tms']['label'], $_SERVER["PHP_SELF"], "cd.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} +if (!empty($arrayfields['status']['checked'])) { + print_liste_field_titre($arrayfields['status']['label'], $_SERVER["PHP_SELF"], "cd.statut,c.statut", "", $param, '', $sortfield, $sortorder, 'right '); +} +print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +print "\n"; + + $contractstatic = new Contrat($db); $productstatic = new Product($db); $i = 0; -$totalarray = array(); +$totalarray = array('nbfield'=>0, 'cd.qty'=>0, 'cd.total_ht'=>0, 'cd.total_tva'=>0); while ($i < min($num, $limit)) { $obj = $db->fetch_object($resql); @@ -774,6 +812,13 @@ while ($i < min($num, $limit)) { if (!$i) { $totalarray['nbfield']++; } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cd.qty'; + } + if (!$i) { + $totalarray['val']['cd.qty'] = $obj->qty; + } + $totalarray['val']['cd.qty'] += $obj->qty; } if (!empty($arrayfields['cd.total_ht']['checked'])) { print ''; +} + $db->free($resql); $parameters = array('sql' => $sql); diff --git a/htdocs/core/actions_addupdatedelete.inc.php b/htdocs/core/actions_addupdatedelete.inc.php index 49f3b2fa302..18ab3ac5eda 100644 --- a/htdocs/core/actions_addupdatedelete.inc.php +++ b/htdocs/core/actions_addupdatedelete.inc.php @@ -285,7 +285,7 @@ if ($action == 'update' && !empty($permissiontoadd)) { $action = 'view'; $urltogo = $backtopage ? str_replace('__ID__', $result, $backtopage) : $backurlforlist; $urltogo = preg_replace('/--IDFORBACKTOPAGE--/', $object->id, $urltogo); // New method to autoselect project after a New on another form object creation - if ($urltogo && !$noback) { + if ($urltogo && empty($noback)) { header("Location: " . $urltogo); exit; } diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index dced78b6c3c..55d7ec6fdcf 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -93,11 +93,11 @@ if (!$error && $massaction == 'confirm_presend') { $objecttmp = new $objectclass($db); if ($objecttmp->element == 'expensereport') { $thirdparty = new User($db); - } - if ($objecttmp->element == 'partnership' && getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR') == 'member') { + } elseif ($objecttmp->element == 'contact') { + $thirdparty = new Contact($db); + } elseif ($objecttmp->element == 'partnership' && getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR') == 'member') { $thirdparty = new Adherent($db); - } - if ($objecttmp->element == 'holiday') { + } elseif ($objecttmp->element == 'holiday') { $thirdparty = new User($db); } @@ -110,14 +110,13 @@ if (!$error && $massaction == 'confirm_presend') { $thirdpartyid = ($objecttmp->fk_soc ? $objecttmp->fk_soc : $objecttmp->socid); if ($objecttmp->element == 'societe') { $thirdpartyid = $objecttmp->id; - } - if ($objecttmp->element == 'expensereport') { + } elseif ($objecttmp->element == 'contact') { + $thirdpartyid = $objecttmp->id; + } elseif ($objecttmp->element == 'expensereport') { $thirdpartyid = $objecttmp->fk_user_author; - } - if ($objecttmp->element == 'partnership' && getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR') == 'member') { + } elseif ($objecttmp->element == 'partnership' && getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR') == 'member') { $thirdpartyid = $objecttmp->fk_member; - } - if ($objecttmp->element == 'holiday') { + } elseif ($objecttmp->element == 'holiday') { $thirdpartyid = $objecttmp->fk_user; } if (empty($thirdpartyid)) { @@ -268,6 +267,10 @@ if (!$error && $massaction == 'confirm_presend') { $fuser = new User($db); $fuser->fetch($objectobj->fk_user_author); $sendto = $fuser->email; + } elseif ($objectobj->element == 'contact') { + $fcontact = new Contact($db); + $fcontact->fetch($objectobj->id); + $sendto = $fcontact->email; } elseif ($objectobj->element == 'partnership' && getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR') == 'member') { $fadherent = new Adherent($db); $fadherent->fetch($objectobj->fk_member); @@ -510,31 +513,28 @@ if (!$error && $massaction == 'confirm_presend') { $trackid = 'thi'.$thirdparty->id; if ($objecttmp->element == 'expensereport') { $trackid = 'use'.$thirdparty->id; - } - if ($objecttmp->element == 'holiday') { + } elseif ($objecttmp->element == 'contact') { + $trackid = 'ctc'.$thirdparty->id; + } elseif ($objecttmp->element == 'holiday') { $trackid = 'use'.$thirdparty->id; } } else { $trackid = strtolower(get_class($objecttmp)); - if (get_class($objecttmp) == 'Contrat') { + if (get_class($objecttmp) == 'Contact') { + $trackid = 'ctc'; + } elseif (get_class($objecttmp) == 'Contrat') { $trackid = 'con'; - } - if (get_class($objecttmp) == 'Propal') { + } elseif (get_class($objecttmp) == 'Propal') { $trackid = 'pro'; - } - if (get_class($objecttmp) == 'Commande') { + } elseif (get_class($objecttmp) == 'Commande') { $trackid = 'ord'; - } - if (get_class($objecttmp) == 'Facture') { + } elseif (get_class($objecttmp) == 'Facture') { $trackid = 'inv'; - } - if (get_class($objecttmp) == 'Supplier_Proposal') { + } elseif (get_class($objecttmp) == 'Supplier_Proposal') { $trackid = 'spr'; - } - if (get_class($objecttmp) == 'CommandeFournisseur') { + } elseif (get_class($objecttmp) == 'CommandeFournisseur') { $trackid = 'sor'; - } - if (get_class($objecttmp) == 'FactureFournisseur') { + } elseif (get_class($objecttmp) == 'FactureFournisseur') { $trackid = 'sin'; } @@ -592,6 +592,9 @@ if (!$error && $massaction == 'confirm_presend') { $objectobj2->actionmsg2 = $actionmsg2; // Short text $objectobj2->fk_element = $objid2; $objectobj2->elementtype = $objectobj2->element; + if (!empty($conf->global->MAIN_MAIL_REPLACE_EVENT_TITLE_BY_EMAIL_SUBJECT)) { + $objectobj2->actionmsg2 = $subjectreplaced; // Short text + } $triggername = strtoupper(get_class($objectobj2)).'_SENTBYMAIL'; if ($triggername == 'SOCIETE_SENTBYMAIL') { @@ -750,7 +753,7 @@ if (!$error && $massaction == "builddoc" && $permissiontoread && !GETPOST('butto $arrayofinclusion[] = '^'.preg_quote(dol_sanitizeFileName($tmppdf), '/').'\.pdf$'; } foreach ($listofobjectref as $tmppdf) { - $arrayofinclusion[] = '^'.preg_quote(dol_sanitizeFileName($tmppdf), '/').'_[a-zA-Z0-9-_]+\.pdf$'; // To include PDF generated from ODX files + $arrayofinclusion[] = '^'.preg_quote(dol_sanitizeFileName($tmppdf), '/').'_[a-zA-Z0-9\-\_\']+\.pdf$'; // To include PDF generated from ODX files } $listoffiles = dol_dir_list($uploaddir, 'all', 1, implode('|', $arrayofinclusion), '\.meta$|\.png', 'date', SORT_DESC, 0, true); @@ -1046,8 +1049,9 @@ if (!$error && ($massaction == 'delete' || ($action == 'delete' && $confirm == ' } if ($objectclass == 'Holiday' && ! in_array($objecttmp->statut, array(Holiday::STATUS_DRAFT, Holiday::STATUS_CANCELED, Holiday::STATUS_REFUSED))) { + $langs->load("errors"); $nbignored++; - $resaction .= '
'.$langs->trans('ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted', $objecttmp->ref).'

'; + $TMsg[] = '
'.$langs->trans('ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted', $objecttmp->ref).'

'; continue; } @@ -1562,7 +1566,7 @@ if (!$error && ($massaction == 'approveleave' || ($action == 'approveleave' && $ // If no SQL error, we redirect to the request form if (!$error) { - // Calculcate number of days consummed + // Calculcate number of days consumed $nbopenedday = num_open_day($objecttmp->date_debut_gmt, $objecttmp->date_fin_gmt, 0, 1, $objecttmp->halfday); $soldeActuel = $objecttmp->getCpforUser($objecttmp->fk_user, $objecttmp->fk_type); $newSolde = ($soldeActuel - $nbopenedday); @@ -1704,6 +1708,66 @@ if (!$error && ($massaction == 'increaseholiday' || ($action == 'increaseholiday } } +//if (!$error && $massaction == 'clonetasks' && $user->rights->projet->creer) { +if (!$error && ($massaction == 'clonetasks' || ($action == 'clonetasks' && $confirm == 'yes'))) { + $num = 0; + + dol_include_once('/projet/class/task.class.php'); + + $origin_task = new Task($db); + $clone_task = new Task($db); + + foreach (GETPOST('selected') as $task) { + $origin_task->fetch($task, $ref = '', $loadparentdata = 0); + + $defaultref = ''; + $obj = empty($conf->global->PROJECT_TASK_ADDON) ? 'mod_task_simple' : $conf->global->PROJECT_TASK_ADDON; + if (!empty($conf->global->PROJECT_TASK_ADDON) && is_readable(DOL_DOCUMENT_ROOT . "/core/modules/project/task/" . $conf->global->PROJECT_TASK_ADDON . ".php")) { + require_once DOL_DOCUMENT_ROOT . "/core/modules/project/task/" . $conf->global->PROJECT_TASK_ADDON . '.php'; + $modTask = new $obj; + $defaultref = $modTask->getNextValue(0, $clone_task); + } + + if (!$error) { + $clone_task->fk_project = GETPOST('projectid', 'int'); + $clone_task->ref = $defaultref; + $clone_task->label = $origin_task->label; + $clone_task->description = $origin_task->description; + $clone_task->planned_workload = $origin_task->planned_workload; + $clone_task->fk_task_parent = $origin_task->fk_task_parent; + $clone_task->date_c = dol_now(); + $clone_task->date_start = $origin_task->date_start; + $clone_task->date_end = $origin_task->date_end; + $clone_task->progress = $origin_task->progress; + + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost(null, $clone_task); + + $taskid = $clone_task->create($user); + + if ($taskid > 0) { + $result = $clone_task->add_contact(GETPOST("userid", 'int'), 'TASKEXECUTIVE', 'internal'); + $num++; + } else { + if ($db->lasterrno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') { + $langs->load("projects"); + setEventMessages($langs->trans('NewTaskRefSuggested'), '', 'warnings'); + $duplicate_code_error = true; + } else { + setEventMessages($clone_task->error, $clone_task->errors, 'errors'); + } + $action = 'list'; + $error++; + } + } + } + + if (!$error) { + setEventMessage($langs->trans('NumberOfTasksCloned', $num)); + header("Refresh: 1;URL=".DOL_URL_ROOT.'/projet/tasks.php?id=' . GETPOST('projectid', 'int')); + } +} + $parameters['toselect'] = (empty($toselect) ? array() : $toselect); $parameters['uploaddir'] = $uploaddir; $parameters['massaction'] = $massaction; diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php index 772d2b7ed5d..4f7580bb8ca 100644 --- a/htdocs/core/actions_sendmails.inc.php +++ b/htdocs/core/actions_sendmails.inc.php @@ -382,6 +382,9 @@ if (($action == 'send' || $action == 'relance') && !GETPOST('addfile') && !GETPO $object->actiontypecode = $actiontypecode; // Type of event ('AC_OTH', 'AC_OTH_AUTO', 'AC_XXX'...) $object->actionmsg = $message; // Long text $object->actionmsg2 = $actionmsg2; // Short text ($langs->transnoentities('MailSentBy')...); + if (!empty($conf->global->MAIN_MAIL_REPLACE_EVENT_TITLE_BY_EMAIL_SUBJECT)) { + $object->actionmsg2 = $subject; // Short text + } $object->trackid = $trackid; $object->fk_element = $object->id; diff --git a/htdocs/core/actions_setmoduleoptions.inc.php b/htdocs/core/actions_setmoduleoptions.inc.php index fbf526fd58e..deca9588444 100644 --- a/htdocs/core/actions_setmoduleoptions.inc.php +++ b/htdocs/core/actions_setmoduleoptions.inc.php @@ -127,6 +127,7 @@ if ($action == 'setModuleOptions' && !empty($user->admin)) { include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $keyforuploaddir = GETPOST('keyforuploaddir', 'aZ09'); $listofdir = explode(',', preg_replace('/[\r\n]+/', ',', trim(getDolGlobalString($keyforuploaddir)))); + foreach ($listofdir as $key => $tmpdir) { $tmpdir = trim($tmpdir); $tmpdir = preg_replace('/DOL_DATA_ROOT\/*/', '', $tmpdir); // Clean string if we found a hardcoded DOL_DATA_ROOT @@ -144,6 +145,8 @@ if ($action == 'setModuleOptions' && !empty($user->admin)) { break; // So we take the first directory found into setup $conf->global->$keyforuploaddir } } + + if ($upload_dir) { $result = dol_add_file_process($upload_dir, 1, 1, 'uploadfile', ''); if ($result <= 0) { diff --git a/htdocs/core/ajax/ajaxdirpreview.php b/htdocs/core/ajax/ajaxdirpreview.php index a987f16a8c7..76531832776 100644 --- a/htdocs/core/ajax/ajaxdirpreview.php +++ b/htdocs/core/ajax/ajaxdirpreview.php @@ -133,14 +133,19 @@ if (preg_match('/\.\./', $upload_dir) || preg_match('/[<>|]/', $upload_dir)) { exit; } +if (empty($modulepart)) { + $modulepart = $module; +} + // Check permissions if ($modulepart == 'ecm') { - if (!$user->rights->ecm->read) { + if (!$user->hasRight('ecm', 'read')) { accessforbidden(); } -} -if ($modulepart == 'medias') { +} elseif ($modulepart == 'medias' || $modulepart == 'website') { // Always allowed +} else { + accessforbidden(); } @@ -174,7 +179,7 @@ if (!dol_is_dir($upload_dir)) { exit;*/ } -print ''."\n"; +print ''."\n"; //print ''."\n"; $param = ($sortfield ? '&sortfield='.urlencode($sortfield) : '').($sortorder ? '&sortorder='.urlencode($sortorder) : ''); @@ -357,31 +362,31 @@ if ($type == 'directory') { if ($module == 'medias') { $useinecm = 6; $modulepart = 'medias'; - $perm = ($user->rights->website->write || $user->rights->emailing->creer); + $perm = ($user->hasRight("website", "write") || $user->hasRight("emailing", "creer")); $title = 'none'; } elseif ($module == 'ecm') { // DMS/ECM -> manual structure - if ($user->rights->ecm->read) { + if ($user->hasRight("ecm", "read")) { // Buttons: Preview $useinecm = 2; } - if ($user->rights->ecm->upload) { + if ($user->hasRight("ecm", "upload")) { // Buttons: Preview + Delete $useinecm = 4; } - if ($user->rights->ecm->setup) { + if ($user->hasRight("ecm", "setup")) { // Buttons: Preview + Delete + Edit $useinecm = 5; } - $perm = $user->rights->ecm->upload; + $perm = $user->hasRight("ecm", "upload"); $modulepart = 'ecm'; $title = ''; // Use default } else { $useinecm = 5; $modulepart = 'ecm'; - $perm = $user->rights->ecm->upload; + $perm = $user->hasRight("ecm", "upload"); $title = ''; // Use default } diff --git a/htdocs/core/ajax/ajaxdirtree.php b/htdocs/core/ajax/ajaxdirtree.php index c8b42bbf0e8..b3ffbc9232a 100644 --- a/htdocs/core/ajax/ajaxdirtree.php +++ b/htdocs/core/ajax/ajaxdirtree.php @@ -84,7 +84,7 @@ $fullpathselecteddir = ''; if ($modulepart == 'ecm') { $fullpathselecteddir = $conf->ecm->dir_output.'/'.($selecteddir != '/' ? $selecteddir : ''); $fullpathpreopened = $conf->ecm->dir_output.'/'.($preopened != '/' ? $preopened : ''); -} elseif ($modulepart == 'medias') { +} elseif ($modulepart == 'medias' || $modulepart == 'website') { $fullpathselecteddir = $dolibarr_main_data_root.'/medias/'.($selecteddir != '/' ? $selecteddir : ''); $fullpathpreopened = $dolibarr_main_data_root.'/medias/'.($preopened != '/' ? $preopened : ''); } @@ -99,15 +99,27 @@ if (preg_match('/\.\./', $fullpathselecteddir) || preg_match('/[<>|]/', $fullpat exit; } +if (empty($modulepart)) { + $modulepart = $module; +} + // Check permissions if ($modulepart == 'ecm') { - if (!$user->rights->ecm->read) { + if (!$user->hasRight('ecm', 'read')) { accessforbidden(); } -} elseif ($modulepart == 'medias') { +} elseif ($modulepart == 'medias' || $modulepart == 'website') { // Always allowed +} else { + accessforbidden(); } +/* + * Actions + */ + +// None + /* * View diff --git a/htdocs/core/ajax/onlineSign.php b/htdocs/core/ajax/onlineSign.php index c2823407ac6..47a7a2b6f13 100644 --- a/htdocs/core/ajax/onlineSign.php +++ b/htdocs/core/ajax/onlineSign.php @@ -219,6 +219,10 @@ if ($action == "importSignature") { if ($result < 0) { $error++; } + $result = $object->call_trigger('PROPAL_CLOSE_SIGNED_WEB', $user); + if ($result < 0) { + $error++; + } } } else { $db->rollback(); diff --git a/htdocs/core/ajax/security.php b/htdocs/core/ajax/security.php index e5dc91c05d1..b01c952662e 100644 --- a/htdocs/core/ajax/security.php +++ b/htdocs/core/ajax/security.php @@ -36,9 +36,10 @@ if (!defined('NOREQUIREAJAX')) { if (!defined('NOREQUIRESOC')) { define('NOREQUIRESOC', '1'); } -if (!defined('NOREQUIRETRAN')) { +// We need langs because the getRandomPassword may use user language to define some rules of pass generation +/*if (!defined('NOREQUIRETRAN')) { define('NOREQUIRETRAN', '1'); -} +}*/ // Load Dolibarr environment require '../../main.inc.php'; @@ -55,9 +56,9 @@ top_httphead(); //print ''."\n"; -// Registering the location of boxes +// Return a new generated password if ($action) { - if ($action == 'getrandompassword' && ($user->admin || $user->rights->api->apikey->generate)) { + if ($action == 'getrandompassword') { require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; $generic = GETPOST('generic') ? true : false; echo getRandomPassword($generic); diff --git a/htdocs/core/ajax/selectobject.php b/htdocs/core/ajax/selectobject.php index 31bc791dc10..079224c62a2 100644 --- a/htdocs/core/ajax/selectobject.php +++ b/htdocs/core/ajax/selectobject.php @@ -43,6 +43,7 @@ $objectdesc = GETPOST('objectdesc', 'alpha'); $htmlname = GETPOST('htmlname', 'aZ09'); $outjson = (GETPOST('outjson', 'int') ? GETPOST('outjson', 'int') : 0); $id = GETPOST('id', 'int'); +$filter = GETPOST('filter', 'alphanohtml'); /* @@ -84,7 +85,7 @@ $searchkey = (($id && GETPOST($id, 'alpha')) ? GETPOST($id, 'alpha') : (($htmlna // Add a security test to avoid to get content of all tables restrictedArea($user, $objecttmp->element, $id); -$arrayresult = $form->selectForFormsList($objecttmp, $htmlname, '', 0, $searchkey, '', '', '', 0, 1); +$arrayresult = $form->selectForFormsList($objecttmp, $htmlname, '', 0, $searchkey, '', '', '', 0, 1, 0, '', $filter); $db->close(); diff --git a/htdocs/core/ajax/selectsearchbox.php b/htdocs/core/ajax/selectsearchbox.php index f2e44577260..38c363654d3 100644 --- a/htdocs/core/ajax/selectsearchbox.php +++ b/htdocs/core/ajax/selectsearchbox.php @@ -68,22 +68,22 @@ $arrayresult = array(); // Define $searchform if (isModEnabled('adherent') && empty($conf->global->MAIN_SEARCHFORM_ADHERENT_DISABLED) && $user->hasRight('adherent', 'lire')) { - $arrayresult['searchintomember'] = array('position'=>8, 'shortcut'=>'M', 'img'=>'object_member', 'label'=>$langs->trans("SearchIntoMembers", $search_boxvalue), 'text'=>img_picto('', 'object_member', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoMembers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/adherents/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintomember'] = array('position'=>8, 'shortcut'=>'M', 'img'=>'object_member', 'label'=>$langs->trans("SearchIntoMembers", $search_boxvalue), 'text'=>img_picto('', 'object_member', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoMembers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/adherents/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (((isModEnabled('societe') && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_order') || isModEnabled('supplier_invoice'))) && empty($conf->global->MAIN_SEARCHFORM_SOCIETE_DISABLED) && $user->hasRight('societe', 'lire')) { - $arrayresult['searchintothirdparty'] = array('position'=>10, 'shortcut'=>'T', 'img'=>'object_company', 'label'=>$langs->trans("SearchIntoThirdparties", $search_boxvalue), 'text'=>img_picto('', 'object_company', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoThirdparties", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/societe/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintothirdparty'] = array('position'=>10, 'shortcut'=>'T', 'img'=>'object_company', 'label'=>$langs->trans("SearchIntoThirdparties", $search_boxvalue), 'text'=>img_picto('', 'object_company', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoThirdparties", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/societe/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (isModEnabled('societe') && empty($conf->global->MAIN_SEARCHFORM_CONTACT_DISABLED) && $user->hasRight('societe', 'lire')) { - $arrayresult['searchintocontact'] = array('position'=>15, 'shortcut'=>'A', 'img'=>'object_contact', 'label'=>$langs->trans("SearchIntoContacts", $search_boxvalue), 'text'=>img_picto('', 'object_contact', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoContacts", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/contact/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintocontact'] = array('position'=>15, 'shortcut'=>'A', 'img'=>'object_contact', 'label'=>$langs->trans("SearchIntoContacts", $search_boxvalue), 'text'=>img_picto('', 'object_contact', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoContacts", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/contact/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (((isModEnabled('product') && $user->hasRight('product', 'read')) || (isModEnabled('service') && $user->hasRight('service', 'read'))) && empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE_DISABLED)) { - $arrayresult['searchintoproduct'] = array('position'=>30, 'shortcut'=>'P', 'img'=>'object_product', 'label'=>$langs->trans("SearchIntoProductsOrServices", $search_boxvalue), 'text'=>img_picto('', 'object_product', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoProductsOrServices", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/product/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintoproduct'] = array('position'=>30, 'shortcut'=>'P', 'img'=>'object_product', 'label'=>$langs->trans("SearchIntoProductsOrServices", $search_boxvalue), 'text'=>img_picto('', 'object_product', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoProductsOrServices", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/product/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); // search on lot/serial numbers if (isModEnabled('productbatch')) { - $arrayresult['searchintobatch'] = array('position'=>32, 'shortcut'=>'B', 'img'=>'object_lot', 'label'=>$langs->trans("SearchIntoBatch", $search_boxvalue), 'text'=>img_picto('', 'object_lot', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoBatch", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/product/stock/productlot_list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintobatch'] = array('position'=>32, 'shortcut'=>'B', 'img'=>'object_lot', 'label'=>$langs->trans("SearchIntoBatch", $search_boxvalue), 'text'=>img_picto('', 'object_lot', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoBatch", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/product/stock/productlot_list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } } @@ -98,26 +98,26 @@ if (isModEnabled('project') && empty($conf->global->MAIN_SEARCHFORM_TASK_DISABLE } if (isModEnabled('propal') && empty($conf->global->MAIN_SEARCHFORM_CUSTOMER_PROPAL_DISABLED) && $user->hasRight('propal', 'lire')) { - $arrayresult['searchintopropal'] = array('position'=>60, 'img'=>'object_propal', 'label'=>$langs->trans("SearchIntoCustomerProposals", $search_boxvalue), 'text'=>img_picto('', 'object_propal', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoCustomerProposals", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/comm/propal/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintopropal'] = array('position'=>60, 'img'=>'object_propal', 'label'=>$langs->trans("SearchIntoCustomerProposals", $search_boxvalue), 'text'=>img_picto('', 'object_propal', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoCustomerProposals", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/comm/propal/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (isModEnabled('commande') && empty($conf->global->MAIN_SEARCHFORM_CUSTOMER_ORDER_DISABLED) && $user->hasRight('commande', 'lire')) { - $arrayresult['searchintoorder'] = array('position'=>70, 'img'=>'object_order', 'label'=>$langs->trans("SearchIntoCustomerOrders", $search_boxvalue), 'text'=>img_picto('', 'object_order', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoCustomerOrders", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/commande/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintoorder'] = array('position'=>70, 'img'=>'object_order', 'label'=>$langs->trans("SearchIntoCustomerOrders", $search_boxvalue), 'text'=>img_picto('', 'object_order', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoCustomerOrders", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/commande/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (isModEnabled('expedition') && empty($conf->global->MAIN_SEARCHFORM_CUSTOMER_SHIPMENT_DISABLED) && $user->hasRight('expedition', 'lire')) { - $arrayresult['searchintoshipment'] = array('position'=>80, 'img'=>'object_shipment', 'label'=>$langs->trans("SearchIntoCustomerShipments", $search_boxvalue), 'text'=>img_picto('', 'object_shipment', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoCustomerShipments", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/expedition/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintoshipment'] = array('position'=>80, 'img'=>'object_shipment', 'label'=>$langs->trans("SearchIntoCustomerShipments", $search_boxvalue), 'text'=>img_picto('', 'object_shipment', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoCustomerShipments", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/expedition/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (isModEnabled('facture') && empty($conf->global->MAIN_SEARCHFORM_CUSTOMER_INVOICE_DISABLED) && $user->hasRight('facture', 'lire')) { - $arrayresult['searchintoinvoice'] = array('position'=>90, 'img'=>'object_bill', 'label'=>$langs->trans("SearchIntoCustomerInvoices", $search_boxvalue), 'text'=>img_picto('', 'object_bill', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoCustomerInvoices", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/compta/facture/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintoinvoice'] = array('position'=>90, 'img'=>'object_bill', 'label'=>$langs->trans("SearchIntoCustomerInvoices", $search_boxvalue), 'text'=>img_picto('', 'object_bill', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoCustomerInvoices", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/compta/facture/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (isModEnabled('supplier_proposal') && empty($conf->global->MAIN_SEARCHFORM_SUPPLIER_PROPAL_DISABLED) && $user->hasRight('supplier_proposal', 'lire')) { - $arrayresult['searchintosupplierpropal'] = array('position'=>100, 'img'=>'object_supplier_proposal', 'label'=>$langs->trans("SearchIntoSupplierProposals", $search_boxvalue), 'text'=>img_picto('', 'object_supplier_proposal', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoSupplierProposals", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/supplier_proposal/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintosupplierpropal'] = array('position'=>100, 'img'=>'object_supplier_proposal', 'label'=>$langs->trans("SearchIntoSupplierProposals", $search_boxvalue), 'text'=>img_picto('', 'object_supplier_proposal', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoSupplierProposals", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/supplier_proposal/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight('fournisseur', 'commande', 'lire')) || (isModEnabled('supplier_order') && $user->hasRight('supplier_order', 'lire'))) && empty($conf->global->MAIN_SEARCHFORM_SUPPLIER_ORDER_DISABLED)) { $arrayresult['searchintosupplierorder'] = array('position'=>110, 'img'=>'object_supplier_order', 'label'=>$langs->trans("SearchIntoSupplierOrders", $search_boxvalue), 'text'=>img_picto('', 'object_supplier_order', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoSupplierOrders", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/fourn/commande/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight('fournisseur', 'facture', 'lire')) || (isModEnabled('supplier_invoice') && $user->hasRight('supplier_invoice', 'lire'))) && empty($conf->global->MAIN_SEARCHFORM_SUPPLIER_INVOICE_DISABLED)) { - $arrayresult['searchintosupplierinvoice'] = array('position'=>120, 'img'=>'object_supplier_invoice', 'label'=>$langs->trans("SearchIntoSupplierInvoices", $search_boxvalue), 'text'=>img_picto('', 'object_supplier_invoice', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoSupplierInvoices", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/fourn/facture/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintosupplierinvoice'] = array('position'=>120, 'img'=>'object_supplier_invoice', 'label'=>$langs->trans("SearchIntoSupplierInvoices", $search_boxvalue), 'text'=>img_picto('', 'object_supplier_invoice', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoSupplierInvoices", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/fourn/facture/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } // Customer payments @@ -127,7 +127,7 @@ if (isModEnabled('facture') && empty($conf->global->MAIN_SEARCHFORM_CUSTOMER_INV 'img'=>'object_payment', 'label'=>$langs->trans("SearchIntoCustomerPayments", $search_boxvalue), 'text'=>img_picto('', 'object_payment', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoCustomerPayments", $search_boxvalue), - 'url'=>DOL_URL_ROOT.'/compta/paiement/list.php?leftmenu=customers_bills_payment'.($search_boxvalue ? '&sall='.urlencode($search_boxvalue) : '')); + 'url'=>DOL_URL_ROOT.'/compta/paiement/list.php?leftmenu=customers_bills_payment'.($search_boxvalue ? '&search_all='.urlencode($search_boxvalue) : '')); } // Vendor payments @@ -137,7 +137,7 @@ if (((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERM 'img'=>'object_payment', 'label'=>$langs->trans("SearchIntoVendorPayments", $search_boxvalue), 'text'=>img_picto('', 'object_payment', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoVendorPayments", $search_boxvalue), - 'url'=>DOL_URL_ROOT.'/fourn/paiement/list.php?leftmenu=suppliers_bills_payment'.($search_boxvalue ? '&sall='.urlencode($search_boxvalue) : '')); + 'url'=>DOL_URL_ROOT.'/fourn/paiement/list.php?leftmenu=suppliers_bills_payment'.($search_boxvalue ? '&search_all='.urlencode($search_boxvalue) : '')); } // Miscellaneous payments @@ -147,28 +147,31 @@ if (isModEnabled('banque') && empty($conf->global->MAIN_SEARCHFORM_MISC_PAYMENTS 'img'=>'object_payment', 'label'=>$langs->trans("SearchIntoMiscPayments", $search_boxvalue), 'text'=>img_picto('', 'object_payment', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoMiscPayments", $search_boxvalue), - 'url'=>DOL_URL_ROOT.'/compta/bank/various_payment/list.php?leftmenu=tax_various'.($search_boxvalue ? '&sall='.urlencode($search_boxvalue) : '')); + 'url'=>DOL_URL_ROOT.'/compta/bank/various_payment/list.php?leftmenu=tax_various'.($search_boxvalue ? '&search_all='.urlencode($search_boxvalue) : '')); } if (isModEnabled('contrat') && empty($conf->global->MAIN_SEARCHFORM_CONTRACT_DISABLED) && $user->hasRight('contrat', 'lire')) { - $arrayresult['searchintocontract'] = array('position'=>130, 'img'=>'object_contract', 'label'=>$langs->trans("SearchIntoContracts", $search_boxvalue), 'text'=>img_picto('', 'object_contract', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoContracts", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/contrat/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintocontract'] = array('position'=>130, 'img'=>'object_contract', 'label'=>$langs->trans("SearchIntoContracts", $search_boxvalue), 'text'=>img_picto('', 'object_contract', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoContracts", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/contrat/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (isModEnabled('ficheinter') && empty($conf->global->MAIN_SEARCHFORM_FICHINTER_DISABLED) && $user->hasRight('ficheinter', 'lire')) { - $arrayresult['searchintointervention'] = array('position'=>140, 'img'=>'object_intervention', 'label'=>$langs->trans("SearchIntoInterventions", $search_boxvalue), 'text'=>img_picto('', 'object_intervention', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoInterventions", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/fichinter/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintointervention'] = array('position'=>140, 'img'=>'object_intervention', 'label'=>$langs->trans("SearchIntoInterventions", $search_boxvalue), 'text'=>img_picto('', 'object_intervention', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoInterventions", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/fichinter/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); +} +if (isModEnabled('knowledgemanagement') && empty($conf->global->MAIN_SEARCHFORM_KNOWLEDGEMANAGEMENT_DISABLED) && $user->hasRight('knowledgemanagement', 'knowledgerecord', 'read')) { + $arrayresult['searchintoknowledgemanagement'] = array('position'=>145, 'img'=>'object_knowledgemanagement', 'label'=>$langs->trans("SearchIntoKM", $search_boxvalue), 'text'=>img_picto('', 'object_knowledgemanagement', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoKM", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/knowledgemanagement/knowledgerecord_list.php?mainmenu=ticket'.($search_boxvalue ? '&search_all='.urlencode($search_boxvalue) : '')); } if (isModEnabled('ticket') && empty($conf->global->MAIN_SEARCHFORM_TICKET_DISABLED) && $user->hasRight('ticket', 'read')) { - $arrayresult['searchintotickets'] = array('position'=>145, 'img'=>'object_ticket', 'label'=>$langs->trans("SearchIntoTickets", $search_boxvalue), 'text'=>img_picto('', 'object_ticket', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoTickets", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/ticket/list.php?mainmenu=ticket'.($search_boxvalue ? '&sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintotickets'] = array('position'=>146, 'img'=>'object_ticket', 'label'=>$langs->trans("SearchIntoTickets", $search_boxvalue), 'text'=>img_picto('', 'object_ticket', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoTickets", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/ticket/list.php?mainmenu=ticket'.($search_boxvalue ? '&search_all='.urlencode($search_boxvalue) : '')); } // HR if (isModEnabled('user') && empty($conf->global->MAIN_SEARCHFORM_USER_DISABLED) && $user->hasRight('user', 'user', 'lire')) { - $arrayresult['searchintouser'] = array('position'=>200, 'shortcut'=>'U', 'img'=>'object_user', 'label'=>$langs->trans("SearchIntoUsers", $search_boxvalue), 'text'=>img_picto('', 'object_user', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoUsers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/user/list.php'.($search_boxvalue ? '?sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintouser'] = array('position'=>200, 'shortcut'=>'U', 'img'=>'object_user', 'label'=>$langs->trans("SearchIntoUsers", $search_boxvalue), 'text'=>img_picto('', 'object_user', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoUsers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/user/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : '')); } if (isModEnabled('expensereport') && empty($conf->global->MAIN_SEARCHFORM_EXPENSEREPORT_DISABLED) && $user->hasRight('expensereport', 'lire')) { - $arrayresult['searchintoexpensereport'] = array('position'=>210, 'img'=>'object_trip', 'label'=>$langs->trans("SearchIntoExpenseReports", $search_boxvalue), 'text'=>img_picto('', 'object_trip', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoExpenseReports", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm'.($search_boxvalue ? '&sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintoexpensereport'] = array('position'=>210, 'img'=>'object_trip', 'label'=>$langs->trans("SearchIntoExpenseReports", $search_boxvalue), 'text'=>img_picto('', 'object_trip', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoExpenseReports", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm'.($search_boxvalue ? '&search_all='.urlencode($search_boxvalue) : '')); } if (isModEnabled('holiday') && empty($conf->global->MAIN_SEARCHFORM_HOLIDAY_DISABLED) && $user->hasRight('holiday', 'read')) { - $arrayresult['searchintoleaves'] = array('position'=>220, 'img'=>'object_holiday', 'label'=>$langs->trans("SearchIntoLeaves", $search_boxvalue), 'text'=>img_picto('', 'object_holiday', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoLeaves", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/holiday/list.php?mainmenu=hrm'.($search_boxvalue ? '&sall='.urlencode($search_boxvalue) : '')); + $arrayresult['searchintoleaves'] = array('position'=>220, 'img'=>'object_holiday', 'label'=>$langs->trans("SearchIntoLeaves", $search_boxvalue), 'text'=>img_picto('', 'object_holiday', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoLeaves", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/holiday/list.php?mainmenu=hrm'.($search_boxvalue ? '&search_all='.urlencode($search_boxvalue) : '')); } // Execute hook addSearchEntry diff --git a/htdocs/core/boxes/box_actions.php b/htdocs/core/boxes/box_actions.php index fb0f93086d2..ac0df03184a 100644 --- a/htdocs/core/boxes/box_actions.php +++ b/htdocs/core/boxes/box_actions.php @@ -220,7 +220,9 @@ class box_actions extends ModeleBoxes if (!empty($conf->global->SHOW_DIALOG_HOMEPAGE)) { $actioncejour = false; $contents = $this->info_box_contents; - $nblines = count($contents); + if (is_countable($contents) && count($contents) > 0) { + $nblines = count($contents); + } if ($contents[0][0]['text'] != $langs->trans("NoActionsToDo")) { $out .= '
trans("ActionsToDo").'">'; $out .= '
'; print ''; print ''; - print ''; + print ''; print ''; + print ''; + print ''; print ''; + print ''; + print ''; print ''; + print ''; + print ''; print ''; + print ''; + print ''; print ''; $arrayofoperators = array('<'=>'<', '>'=>'>'); @@ -670,7 +652,7 @@ if (!empty($arrayfields['cd.tms']['checked'])) { } if (!empty($arrayfields['status']['checked'])) { // Status - print ''; + print ''; $arrayofstatus = array( '0'=>$langs->trans("ServiceStatusInitial"), '4'=>$langs->trans("ServiceStatusRunning"), @@ -678,7 +660,7 @@ if (!empty($arrayfields['status']['checked'])) { '4&filter=expired'=>$langs->trans("ServiceStatusLate"), '5'=>$langs->trans("ServiceStatusClosed") ); - print $form->selectarray('search_status', $arrayofstatus, (strstr($search_status, ',') ?-1 : $search_status), 1, 0, 0, '', 0, 0, 0, '', 'minwidth100imp maxwidth150'); + print $form->selectarray('search_status', $arrayofstatus, (strstr($search_status, ',') ?-1 : $search_status), 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage'); print '
'; @@ -912,6 +957,17 @@ while ($i < min($num, $limit)) { // Show total line include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; +// If no record found +if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print '
'.$langs->trans("NoRecordFound").'
'; diff --git a/htdocs/core/boxes/box_activity.php b/htdocs/core/boxes/box_activity.php index 56fa8172bcb..ea45580e163 100644 --- a/htdocs/core/boxes/box_activity.php +++ b/htdocs/core/boxes/box_activity.php @@ -84,7 +84,7 @@ class box_activity extends ModeleBoxes $totalnb = 0; $line = 0; $cachetime = 3600; - $fileid = '-e'.$conf->entity.'-u'.$user->id.'-s'.$user->socid.'-r'.($user->rights->societe->client->voir ? '1' : '0').'.cache'; + $fileid = '-e'.$conf->entity.'-u'.$user->id.'-s'.$user->socid.'-r'.($user->hasRight("societe", "client", "voir") ? '1' : '0').'.cache'; $now = dol_now(); $nbofperiod = 3; @@ -102,7 +102,7 @@ class box_activity extends ModeleBoxes // list the summary of the propals - if (isModEnabled("propal") && $user->rights->propal->lire) { + if (isModEnabled("propal") && $user->hasRight("propal", "lire")) { include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; $propalstatic = new Propal($this->db); @@ -155,7 +155,7 @@ class box_activity extends ModeleBoxes while ($j < count($data)) { $this->info_box_contents[$line][0] = array( 'td' => 'class="left" width="16"', - 'url' => DOL_URL_ROOT."/comm/propal/list.php?mainmenu=commercial&leftmenu=propals&search_status=".$data[$j]->fk_statut, + 'url' => DOL_URL_ROOT."/comm/propal/list.php?mainmenu=commercial&leftmenu=propals&search_status=".((int) $data[$j]->fk_statut), 'tooltip' => $langs->trans("Proposals")." ".$propalstatic->LibStatut($data[$j]->fk_statut, 0), 'logo' => 'object_propal' ); @@ -169,7 +169,7 @@ class box_activity extends ModeleBoxes 'td' => 'class="right"', 'text' => $data[$j]->nb, 'tooltip' => $langs->trans("Proposals")." ".$propalstatic->LibStatut($data[$j]->fk_statut, 0), - 'url' => DOL_URL_ROOT."/comm/propal/list.php?mainmenu=commercial&leftmenu=propals&search_status=".$data[$j]->fk_statut, + 'url' => DOL_URL_ROOT."/comm/propal/list.php?mainmenu=commercial&leftmenu=propals&search_status=".((int) $data[$j]->fk_statut), ); $totalnb += $data[$j]->nb; @@ -185,11 +185,18 @@ class box_activity extends ModeleBoxes $line++; $j++; } + if (count($data) == 0) { + $this->info_box_contents[$line][0] = array( + 'td' => 'class="center"', + 'text'=>$langs->trans("NoRecordedProposals"), + ); + $line++; + } } } // list the summary of the orders - if (isModEnabled('commande') && $user->rights->commande->lire) { + if (isModEnabled('commande') && $user->hasRight("commande", "lire")) { include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; $commandestatic = new Commande($this->db); @@ -273,12 +280,19 @@ class box_activity extends ModeleBoxes $line++; $j++; } + if (count($data) == 0) { + $this->info_box_contents[$line][0] = array( + 'td' => 'class="center"', + 'text'=>$langs->trans("NoRecordedOrders"), + ); + $line++; + } } } // list the summary of the bills - if (isModEnabled('facture') && $user->rights->facture->lire) { + if (isModEnabled('facture') && $user->hasRight("facture", "lire")) { include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $facturestatic = new Facture($this->db); @@ -329,11 +343,11 @@ class box_activity extends ModeleBoxes if (!empty($data)) { $j = 0; while ($j < count($data)) { - $billurl = "search_status=2&paye=1"; + $billurl = "search_status=2&paye=1"; $this->info_box_contents[$line][0] = array( 'td' => 'class="left" width="16"', 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(1, $data[$j]->fk_statut, 0), - 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills", + 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills", 'logo' => 'bill', ); @@ -346,7 +360,7 @@ class box_activity extends ModeleBoxes 'td' => 'class="right"', 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(1, $data[$j]->fk_statut, 0), 'text' => $data[$j]->nb, - 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills", + 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills", ); $this->info_box_contents[$line][3] = array( @@ -369,6 +383,7 @@ class box_activity extends ModeleBoxes 'td' => 'class="center"', 'text'=>$langs->trans("NoRecordedInvoices"), ); + $line++; } } @@ -412,11 +427,11 @@ class box_activity extends ModeleBoxes $j = 0; while ($j < count($data)) { - $billurl = "search_status=".$data[$j]->fk_statut."&paye=0"; + $billurl = "search_status=".$data[$j]->fk_statut."&paye=0"; $this->info_box_contents[$line][0] = array( 'td' => 'class="left" width="16"', 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(0, $data[$j]->fk_statut, 0), - 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills", + 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills", 'logo' => 'bill', ); @@ -446,8 +461,9 @@ class box_activity extends ModeleBoxes if (count($data) == 0) { $this->info_box_contents[$line][0] = array( 'td' => 'class="center"', - 'text'=>$langs->trans("NoRecordedInvoices"), + 'text'=>$langs->trans("NoRecordedUnpaidInvoices"), ); + $line++; } } } diff --git a/htdocs/core/boxes/box_birthdays_members.php b/htdocs/core/boxes/box_birthdays_members.php index fc8dc4c6745..64a1f16e624 100644 --- a/htdocs/core/boxes/box_birthdays_members.php +++ b/htdocs/core/boxes/box_birthdays_members.php @@ -2,7 +2,7 @@ /* Copyright (C) 2003-2007 Rodolphe Quiedeville * Copyright (C) 2004-2010 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin - * Copyright (C) 2015-2019 Frederic France + * Copyright (C) 2015-2023 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 @@ -115,7 +115,7 @@ class box_birthdays_members extends ModeleBoxes $this->info_box_contents[$line][] = array( 'td' => 'class="center nowraponall"', - 'text' => dol_print_date($dateb, "day", 'gmt').' - '.$age.' '.$langs->trans('DurationYears') + 'text' => dol_print_date($dateb, "day", 'tzserver').' - '.$age.' '.$langs->trans('DurationYears') ); /*$this->info_box_contents[$line][] = array( diff --git a/htdocs/core/boxes/box_bookmarks.php b/htdocs/core/boxes/box_bookmarks.php index 3e8abd587c0..17348048edf 100644 --- a/htdocs/core/boxes/box_bookmarks.php +++ b/htdocs/core/boxes/box_bookmarks.php @@ -76,7 +76,7 @@ class box_bookmarks extends ModeleBoxes 'text' => $langs->trans("BoxMyLastBookmarks", $max), 'sublink' => DOL_URL_ROOT.'/bookmarks/list.php', ); - if ($user->rights->bookmark->creer) { + if ($user->hasRight("bookmark", "creer")) { $this->info_box_head['subpicto'] = 'bookmark'; $this->info_box_head['subtext'] = $langs->trans("BookmarksManagement"); } else { @@ -121,7 +121,7 @@ class box_bookmarks extends ModeleBoxes if ($num == 0) { $mytxt = $langs->trans("NoRecordedBookmarks"); - if ($user->rights->bookmark->creer) { + if ($user->hasRight("bookmark", "creer")) { $mytxt .= ' '.$langs->trans("ClickToAdd"); } $this->info_box_contents[$line][0] = array( diff --git a/htdocs/core/boxes/box_dolibarr_state_board.php b/htdocs/core/boxes/box_dolibarr_state_board.php index 9a2e94b8a1d..6152b167863 100644 --- a/htdocs/core/boxes/box_dolibarr_state_board.php +++ b/htdocs/core/boxes/box_dolibarr_state_board.php @@ -20,7 +20,7 @@ /** * \file htdocs/core/boxes/box_dolibarr_state_board.php - * \ingroup + * \ingroup core * \brief Module Dolibarr state base */ diff --git a/htdocs/core/boxes/box_graph_invoices_peryear.php b/htdocs/core/boxes/box_graph_invoices_peryear.php index 5a9b84829f2..9ea2fe5a130 100644 --- a/htdocs/core/boxes/box_graph_invoices_peryear.php +++ b/htdocs/core/boxes/box_graph_invoices_peryear.php @@ -142,7 +142,7 @@ class box_graph_invoices_peryear extends ModeleBoxes $px2->SetData($data2); unset($data2); $i = $startyear; - $legend = array(); + /*$legend = array(); while ($i <= $endyear) { if ($startmonth != 1) { $legend[] = sprintf("%d/%d", $i - 2001, $i - 2000); @@ -150,7 +150,7 @@ class box_graph_invoices_peryear extends ModeleBoxes $legend[] = $i; } $i++; - } + }*/ $px2->SetLegend([$langs->trans("AmountOfBillsHT")]); $px2->SetMaxValue($px2->GetCeilMaxValue()); $px2->SetWidth($WIDTH); diff --git a/htdocs/core/boxes/box_graph_nb_ticket_last_x_days.php b/htdocs/core/boxes/box_graph_nb_ticket_last_x_days.php index b75d0752334..5a6dbbedd37 100644 --- a/htdocs/core/boxes/box_graph_nb_ticket_last_x_days.php +++ b/htdocs/core/boxes/box_graph_nb_ticket_last_x_days.php @@ -120,7 +120,7 @@ class box_graph_nb_ticket_last_x_days extends ModeleBoxes while ($i < $num) { $objp = $this->db->fetch_object($resql); while ($minimumdatecformated < $objp->datec) { - $dataseries[] = array('label' => dol_print_date($minimumdatecformated, 'day'), 'data' => 0); + $dataseries[] = array('label' => dol_print_date($minimumdatec, 'day'), 'data' => 0); $minimumdatec = dol_time_plus_duree($minimumdatec, $intervaltoadd, 'd'); $minimumdatecformated = dol_print_date($minimumdatec, 'dayrfc'); } @@ -130,7 +130,7 @@ class box_graph_nb_ticket_last_x_days extends ModeleBoxes $i++; } while (count($dataseries) < $days) { - $dataseries[] = array('label' => dol_print_date($minimumdatecformated, 'day'), 'data' => 0); + $dataseries[] = array('label' => dol_print_date($minimumdatec, 'day'), 'data' => 0); $minimumdatec = dol_time_plus_duree($minimumdatec, $intervaltoadd, 'd'); $minimumdatecformated = dol_print_date($minimumdatec, 'dayrfc'); $i++; diff --git a/htdocs/core/boxes/box_members_by_tags.php b/htdocs/core/boxes/box_members_by_tags.php new file mode 100644 index 00000000000..196cec30738 --- /dev/null +++ b/htdocs/core/boxes/box_members_by_tags.php @@ -0,0 +1,278 @@ + + * Copyright (C) 2004-2017 Laurent Destailleur + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2015-2020 Frederic France + * Copyright (C) 2021-2022 Waël Almoman + * + * This 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/boxes/box_members_by_tags.php + * \ingroup adherent + * \brief Module to show box of members + */ + +include_once DOL_DOCUMENT_ROOT . '/core/boxes/modules_boxes.php'; + + +/** + * Class to manage the box to show last modofied members + */ +class box_members_by_tags extends ModeleBoxes +{ + public $boxcode = "box_members_by_tags"; + public $boximg = "object_user"; + public $boxlabel = "BoxTitleMembersByTags"; + public $depends = array("adherent", "categorie"); + + /** + * @var DoliDB Database handler. + */ + public $db; + + public $param; + public $enabled = 1; + + public $info_box_head = array(); + public $info_box_contents = array(); + + + /** + * Constructor + * + * @param DoliDB $db Database handler + * @param string $param More parameters + */ + public function __construct($db, $param = '') + { + global $conf, $user; + + $this->db = $db; + + // disable module for such cases + $listofmodulesforexternal = explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); + if (!in_array('adherent', $listofmodulesforexternal) && !empty($user->socid)) { + $this->enabled = 0; // disabled for external users + } + + $this->hidden = !(isModEnabled('adherent') && $user->rights->adherent->lire); + } + + /** + * Load data into info_box_contents array to show array later. + * + * @param int $max Maximum number of records to load + * @return void + */ + public function loadBox($max = 5) + { + global $user, $langs, $conf; + $langs->load("boxes"); + + $this->max = $max; + + include_once DOL_DOCUMENT_ROOT . '/adherents/class/adherent.class.php'; + $staticmember = new Adherent($this->db); + + $year = date('Y'); + $numberyears = empty(getDolGlobalInt("MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH")) ? 2 : getDolGlobalInt("MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH"); + + $this->info_box_head = array('text' => $langs->trans("BoxTitleMembersByTags").' ('.$year-$numberyears.' - '.$year.')'); + + if ($user->rights->adherent->lire) { + require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherentstats.class.php'; + require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $stats = new AdherentStats($this->db, $user->socid, $user->id); + + // Show array + $sumMembers= $stats->countMembersByTagAndStatus($numberyears); + if ($sumMembers) { + $line = 0; + $this->info_box_contents[$line][] = array( + 'td' => 'class=""', + 'text' => '', + ); + // Members Status To Valid + $labelstatus = $staticmember->LibStatut($staticmember::STATUS_DRAFT, 0, 0, 1); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right tdoverflowmax100" width="10%" title="'.dol_escape_htmltag($labelstatus).'"', + 'text' => $labelstatus + ); + // Waiting for subscription + $labelstatus = $staticmember->LibStatut($staticmember::STATUS_VALIDATED, 1, 0, 1); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right tdoverflowmax100" width="10%" title="'.dol_escape_htmltag($labelstatus).'"', + 'text' => $labelstatus, + ); + // Up to date + $labelstatus = $staticmember->LibStatut($staticmember::STATUS_VALIDATED, 1, dol_now() + 86400, 1); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right tdoverflowmax100" width="10%" title="'.dol_escape_htmltag($labelstatus).'"', + 'text' => $labelstatus, + ); + // Expired + $labelstatus = $staticmember->LibStatut($staticmember::STATUS_VALIDATED, 1, dol_now() - 86400, 1); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right tdoverflowmax100" width="10%" title="'.dol_escape_htmltag($labelstatus).'"', + 'text' => $labelstatus + ); + // Excluded + $labelstatus = $staticmember->LibStatut($staticmember::STATUS_EXCLUDED, 0, 0, 1); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right tdoverflowmax100" width="10%" title="'.dol_escape_htmltag($labelstatus).'"', + 'text' => $labelstatus + ); + // Resiliated + $labelstatus = $staticmember->LibStatut($staticmember::STATUS_RESILIATED, 0, 0, 1); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right tdoverflowmax100" width="10%" title="'.dol_escape_htmltag($labelstatus).'"', + 'text' => $labelstatus + ); + // Total row + $labelstatus = $staticmember->LibStatut($staticmember::STATUS_RESILIATED, 0, 0, 1); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right tdoverflowmax100" width="10%" title="'.dol_escape_htmltag($langs->trans("Total")).'"', + 'text' => $langs->trans("Total") + ); + $line++; + foreach ($sumMembers as $key => $data) { + $adhtype = new AdherentType($this->db); + $adhtype->id = $key; + + if ($key=='total') { + break; + } + $adhtype->label = $data['label']; + $AdherentType[$key] = $adhtype; + + $this->info_box_contents[$line][] = array( + 'td' => 'class="tdoverflowmax150 maxwidth150onsmartphone"', + 'text' => $adhtype->getNomUrl(1, dol_size(32)), + 'asis' => 1, + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right"', + 'text' => (isset($data['members_draft']) && $data['members_draft'] > 0 ? $data['members_draft'] : '') . ' ' . $staticmember->LibStatut(Adherent::STATUS_DRAFT, 1, 0, 3), + 'asis' => 1, + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right"', + 'text' => (isset($data['members_pending']) && $data['members_pending'] > 0 ? $data['members_pending'] : '') . ' ' . $staticmember->LibStatut(Adherent::STATUS_VALIDATED, 1, $now, 3), + 'asis' => 1, + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right"', + 'text' => (isset($data['members_uptodate']) && $data['members_uptodate'] > 0 ? $data['members_uptodate'] : '') . ' ' . $staticmember->LibStatut(Adherent::STATUS_VALIDATED, 0, 0, 3), + 'asis' => 1, + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right"', + 'text' => (isset($data['members_expired']) && $data['members_expired'] > 0 ? $data['members_expired'] : '') . ' ' . $staticmember->LibStatut(Adherent::STATUS_VALIDATED, 1, 1, 3), + 'asis' => 1, + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right"', + 'text' => (isset($data['members_excluded']) && $data['members_excluded'] > 0 ? $data['members_excluded'] : '') . ' ' . $staticmember->LibStatut(Adherent::STATUS_EXCLUDED, 1, $now, 3), + 'asis' => 1, + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right"', + 'text' => (isset($data['members_resiliated']) && $data['members_resiliated'] > 0 ? $data['members_resiliated'] : '') . ' ' . $staticmember->LibStatut(Adherent::STATUS_RESILIATED, 1, 0, 3), + 'asis' => 1, + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right"', + 'text' => (isset($data['total_adhtype']) && $data['total_adhtype'] > 0 ? $data['total_adhtype'] : ''), + 'asis' => 1, + ); + $line++; + } + + if (count($sumMembers) == 0) { + $this->info_box_contents[$line][0] = array( + 'td' => 'class="center" colspan="6"', + 'text' => $langs->trans("NoRecordedMembersByType") + ); + } else { + $this->info_box_contents[$line][] = array( + 'tr' => 'class="liste_total"', + 'td' => 'class="liste_total"', + 'text' => $langs->trans("Total") + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="liste_total right"', + 'text' => $sumMembers['total']['members_draft'].' '.$staticmember->LibStatut(Adherent::STATUS_DRAFT, 1, 0, 3), + 'asis' => 1 + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="liste_total right"', + 'text' => $sumMembers['total']['members_pending'].' '.$staticmember->LibStatut(Adherent::STATUS_VALIDATED, 1, $now, 3), + 'asis' => 1 + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="liste_total right"', + 'text' => $sumMembers['total']['members_uptodate'].' '.$staticmember->LibStatut(Adherent::STATUS_VALIDATED, 0, 0, 3), + 'asis' => 1 + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="liste_total right"', + 'text' => $sumMembers['total']['members_expired'].' '.$staticmember->LibStatut(Adherent::STATUS_VALIDATED, 1, 1, 3), + 'asis' => 1 + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="liste_total right"', + 'text' => $sumMembers['total']['members_excluded'].' '.$staticmember->LibStatut(Adherent::STATUS_EXCLUDED, 1, 0, 3), + 'asis' => 1 + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="liste_total right"', + 'text' => $sumMembers['total']['members_resiliated'].' '.$staticmember->LibStatut(Adherent::STATUS_RESILIATED, 1, 0, 3), + 'asis' => 1 + ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="liste_total right"', + 'text' => $sumMembers['total']['all'], + 'asis' => 1 + ); + } + } else { + $this->info_box_contents[0][0] = array( + 'td' => '', + 'maxlength' => 500, + 'text' => ($this->db->error() . ' sql=' . $sql) + ); + } + } else { + $this->info_box_contents[0][0] = array( + 'td' => 'class="nohover opacitymedium left"', + 'text' => $langs->trans("ReadPermissionNotAllowed") + ); + } + } + + /** + * Method to show box + * + * @param array $head Array with properties of box title + * @param array $contents Array with properties of box lines + * @param int $nooutput No print, only return string + * @return string + */ + public function showBox($head = null, $contents = null, $nooutput = 0) + { + return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput); + } +} diff --git a/htdocs/core/boxes/box_members_by_type.php b/htdocs/core/boxes/box_members_by_type.php index 2e25da59564..b3f3504cee8 100644 --- a/htdocs/core/boxes/box_members_by_type.php +++ b/htdocs/core/boxes/box_members_by_type.php @@ -92,13 +92,15 @@ class box_members_by_type extends ModeleBoxes if ($user->rights->adherent->lire) { $MembersToValidate = array(); + $MembersPending = array(); $MembersValidated = array(); $MembersUpToDate = array(); $MembersExcluded = array(); $MembersResiliated = array(); $SumToValidate = 0; - $SumValidated = 0; + $SumPending = 0; + $SumExpired = 0; $SumUpToDate = 0; $SumResiliated = 0; $SumExcluded = 0; @@ -169,43 +171,74 @@ class box_members_by_type extends ModeleBoxes } $this->db->free($result); } + // Members pendding (Waiting for first subscription) + $sql = "SELECT count(*) as somme , d.fk_adherent_type"; + $sql .= " FROM " . MAIN_DB_PREFIX . "adherent as d, " . MAIN_DB_PREFIX . "adherent_type as t"; + $sql .= " WHERE d.entity IN (" . getEntity('adherent') . ")"; + $sql .= " AND d.statut = 1 AND (d.datefin IS NULL AND t.subscription = 1)"; + $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 = $this->db->query($sql); + if ($result) { + $num2 = $this->db->num_rows($result); + $i = 0; + while ($i < $num2) { + $objp = $this->db->fetch_object($result); + $MembersPending[$objp->fk_adherent_type] = $objp->somme; + $i++; + } + $this->db->free($result); + } $line = 0; $this->info_box_contents[$line][] = array( 'td' => 'class=""', 'text' => '', ); + // Draft $labelstatus = $staticmember->LibStatut($staticmember::STATUS_DRAFT, 0, 0, 1); $this->info_box_contents[$line][] = array( 'td' => 'class="right tdoverflowmax100" width="15%" title="'.dol_escape_htmltag($labelstatus).'"', 'text' => $labelstatus ); - $labelstatus = $langs->trans("UpToDate"); + // Pending (Waiting for first subscription) + $labelstatus = $staticmember->LibStatut($staticmember::STATUS_VALIDATED, 1, 0, 1); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right tdoverflowmax100" width="15%" title="'.dol_escape_htmltag($labelstatus).'"', + 'text' => $labelstatus + ); + // Up to date $labelstatus = $staticmember->LibStatut($staticmember::STATUS_VALIDATED, 1, dol_now() + 86400, 1); $this->info_box_contents[$line][] = array( 'td' => 'class="right tdoverflowmax100" width="15%" title="'.dol_escape_htmltag($labelstatus).'"', 'text' => $labelstatus, ); - $labelstatus = $langs->trans("OutOfDate"); + // Expired $labelstatus = $staticmember->LibStatut($staticmember::STATUS_VALIDATED, 1, dol_now() - 86400, 1); $this->info_box_contents[$line][] = array( 'td' => 'class="right tdoverflowmax100" width="15%" title="'.dol_escape_htmltag($labelstatus).'"', 'text' => $labelstatus ); + // Excluded $labelstatus = $staticmember->LibStatut($staticmember::STATUS_EXCLUDED, 0, 0, 1); $this->info_box_contents[$line][] = array( 'td' => 'class="right tdoverflowmax100" width="15%" title="'.dol_escape_htmltag($labelstatus).'"', 'text' => $labelstatus ); + // Resiliated $labelstatus = $staticmember->LibStatut($staticmember::STATUS_RESILIATED, 0, 0, 1); $this->info_box_contents[$line][] = array( 'td' => 'class="right tdoverflowmax100" width="15%" title="'.dol_escape_htmltag($labelstatus).'"', 'text' => $labelstatus ); $line++; + foreach ($AdherentType as $key => $adhtype) { $SumToValidate += isset($MembersToValidate[$key]) ? $MembersToValidate[$key] : 0; - $SumValidated += isset($MembersValidated[$key]) ? $MembersValidated[$key] - (isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0) : 0; + $SumPending += isset($MembersPending[$key]) ? $MembersPending[$key] : 0; + $SumExpired += isset($MembersValidated[$key]) ? $MembersValidated[$key] - (isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0) - (isset($MembersPending[$key]) ? $MembersPending[$key] : 0): 0; $SumUpToDate += isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0; $SumExcluded += isset($MembersExcluded[$key]) ? $MembersExcluded [$key] : 0; $SumResiliated += isset($MembersResiliated[$key]) ? $MembersResiliated[$key] : 0; @@ -220,6 +253,11 @@ class box_members_by_type extends ModeleBoxes 'text' => (isset($MembersToValidate[$key]) && $MembersToValidate[$key] > 0 ? $MembersToValidate[$key] : '') . ' ' . $staticmember->LibStatut(Adherent::STATUS_DRAFT, 1, 0, 3), 'asis' => 1, ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="right"', + 'text' => (isset($MembersPending[$key]) && $MembersPending[$key] > 0 ? $MembersPending[$key] : '') . ' ' . $staticmember->LibStatut(Adherent::STATUS_VALIDATED, 1, 0, 3), + 'asis' => 1, + ); $this->info_box_contents[$line][] = array( 'td' => 'class="right"', 'text' => (isset($MembersUpToDate[$key]) && $MembersUpToDate[$key] > 0 ? $MembersUpToDate[$key] : '') . ' ' . $staticmember->LibStatut(Adherent::STATUS_VALIDATED, 1, $now, 3), @@ -260,6 +298,11 @@ class box_members_by_type extends ModeleBoxes 'text' => $SumToValidate.' '.$staticmember->LibStatut(Adherent::STATUS_DRAFT, 1, 0, 3), 'asis' => 1 ); + $this->info_box_contents[$line][] = array( + 'td' => 'class="liste_total right"', + 'text' => $SumPending.' '.$staticmember->LibStatut(Adherent::STATUS_VALIDATED, 1, 0, 3), + 'asis' => 1 + ); $this->info_box_contents[$line][] = array( 'td' => 'class="liste_total right"', 'text' => $SumUpToDate.' '.$staticmember->LibStatut(Adherent::STATUS_VALIDATED, 1, $now, 3), @@ -267,7 +310,7 @@ class box_members_by_type extends ModeleBoxes ); $this->info_box_contents[$line][] = array( 'td' => 'class="liste_total right"', - 'text' => $SumValidated.' '.$staticmember->LibStatut(Adherent::STATUS_VALIDATED, 1, 1, 3), + 'text' => $SumExpired.' '.$staticmember->LibStatut(Adherent::STATUS_VALIDATED, 1, 1, 3), 'asis' => 1 ); $this->info_box_contents[$line][] = array( diff --git a/htdocs/core/boxes/box_produits.php b/htdocs/core/boxes/box_produits.php index f036628db3b..f0f346b69a9 100644 --- a/htdocs/core/boxes/box_produits.php +++ b/htdocs/core/boxes/box_produits.php @@ -168,12 +168,14 @@ class box_produits extends ModeleBoxes $price = ''; $price_base_type = ''; if ($usercancreadprice) { - if (empty($conf->dynamicprices->enabled) || empty($objp->fk_price_expression)) { + if (!isModEnabled('dynamicprices') || empty($objp->fk_price_expression)) { $price_base_type = $langs->trans($objp->price_base_type); $price = ($objp->price_base_type == 'HT') ?price($objp->price) : $price = price($objp->price_ttc); } else { //Parse the dynamic price $productstatic->fetch($objp->rowid, '', '', 1); + + require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php'; $priceparser = new PriceParser($this->db); $price_result = $priceparser->parseProduct($productstatic); if ($price_result >= 0) { diff --git a/htdocs/core/boxes/box_produits_alerte_stock.php b/htdocs/core/boxes/box_produits_alerte_stock.php index f928ebd7c6f..e7150929a89 100644 --- a/htdocs/core/boxes/box_produits_alerte_stock.php +++ b/htdocs/core/boxes/box_produits_alerte_stock.php @@ -167,12 +167,13 @@ class box_produits_alerte_stock extends ModeleBoxes 'text' => $objp->label, ); - if (empty($conf->dynamicprices->enabled) || empty($objp->fk_price_expression)) { + if (!isModEnabled('dynamicprices') || empty($objp->fk_price_expression)) { $price_base_type = $langs->trans($objp->price_base_type); $price = ($objp->price_base_type == 'HT') ?price($objp->price) : $price = price($objp->price_ttc); - } else //Parse the dynamic price - { + } else { //Parse the dynamic price $productstatic->fetch($objp->rowid, '', '', 1); + + require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php'; $priceparser = new PriceParser($this->db); $price_result = $priceparser->parseProduct($productstatic); if ($price_result >= 0) { diff --git a/htdocs/core/boxes/box_project.php b/htdocs/core/boxes/box_project.php index 80d465f0f87..6c3db843523 100644 --- a/htdocs/core/boxes/box_project.php +++ b/htdocs/core/boxes/box_project.php @@ -175,7 +175,6 @@ class box_project extends ModeleBoxes $this->info_box_contents[$i][] = array( 'td' => 'class="liste_total"', 'text' => $langs->trans("Total")." ".$textHead, - 'text' => " ", ); $this->info_box_contents[$i][] = array( 'td' => 'class="right liste_total" ', diff --git a/htdocs/core/boxes/modules_boxes.php b/htdocs/core/boxes/modules_boxes.php index 1a29c8e1389..96928adfdff 100644 --- a/htdocs/core/boxes/modules_boxes.php +++ b/htdocs/core/boxes/modules_boxes.php @@ -464,6 +464,7 @@ class ModeleBoxes // Can't be abtract as it is instantiated to build "empty" box closedir($handle); } } + //echo "
";print_r($modules);echo "
"; asort($orders); diff --git a/htdocs/core/class/CMailFile.class.php b/htdocs/core/class/CMailFile.class.php index a7a87e1ce6e..cf0bfa6ed3b 100644 --- a/htdocs/core/class/CMailFile.class.php +++ b/htdocs/core/class/CMailFile.class.php @@ -1123,7 +1123,7 @@ class CMailFile return 'Bad value for sendmode'; } - $parameters = array(); + $parameters = array('sent' => $res); $action = ''; $reshook = $hookmanager->executeHooks('sendMailAfter', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { diff --git a/htdocs/core/class/canvas.class.php b/htdocs/core/class/canvas.class.php index 67443a7bdb8..1ed16b2e1ce 100644 --- a/htdocs/core/class/canvas.class.php +++ b/htdocs/core/class/canvas.class.php @@ -157,13 +157,14 @@ class Canvas } /** - * Return the template to display canvas (if it exists) + * Return if a template exists to display as canvas (if it exists) * * @param string $action Action code * @return int 0=Canvas template file does not exist, 1=Canvas template file exists */ public function displayCanvasExists($action) { + // template_dir should be '/'.$this->dirmodule.'/canvas/'.$this->canvas.'/tpl/', for example '/mymodule/canvas/product/tpl' if (empty($this->template_dir)) { return 0; } diff --git a/htdocs/core/class/ccountry.class.php b/htdocs/core/class/ccountry.class.php index 7b46b0a08b0..cbf4574ec48 100644 --- a/htdocs/core/class/ccountry.class.php +++ b/htdocs/core/class/ccountry.class.php @@ -122,7 +122,7 @@ class Ccountry // extends CommonObject $sql .= " ".(!isset($this->code) ? 'NULL' : "'".$this->db->escape($this->code)."'").","; $sql .= " ".(!isset($this->code_iso) ? 'NULL' : "'".$this->db->escape($this->code_iso)."'").","; $sql .= " ".(!isset($this->label) ? 'NULL' : "'".$this->db->escape($this->label)."'").","; - $sql .= " ".(!isset($this->active) ? 'NULL' : "'".$this->db->escape($this->active)."'").""; + $sql .= " ".(!isset($this->active) ? 'NULL' : "'".$this->db->escape($this->active)."'"); $sql .= ")"; $this->db->begin(); @@ -239,7 +239,7 @@ class Ccountry // extends CommonObject $sql .= " code=".(isset($this->code) ? "'".$this->db->escape($this->code)."'" : "null").","; $sql .= " code_iso=".(isset($this->code_iso) ? "'".$this->db->escape($this->code_iso)."'" : "null").","; $sql .= " label=".(isset($this->label) ? "'".$this->db->escape($this->label)."'" : "null").","; - $sql .= " active=".(isset($this->active) ? $this->active : "null").""; + $sql .= " active=".(isset($this->active) ? $this->active : "null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); diff --git a/htdocs/core/class/comment.class.php b/htdocs/core/class/comment.class.php index 960d2ac4744..4a743e5b070 100644 --- a/htdocs/core/class/comment.class.php +++ b/htdocs/core/class/comment.class.php @@ -351,16 +351,18 @@ class Comment extends CommonObject /** - * Load comments linked with current task + * Load comments linked with current task into ->comments * * @param string $element_type Element type * @param int $fk_element Id of element - * @return array Comment array + * @return int Result */ public function fetchAllFor($element_type, $fk_element) { global $db, $conf; + $this->comments = array(); + if (!empty($element_type) && !empty($fk_element)) { $sql = "SELECT"; $sql .= " c.rowid"; diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index 82012400f68..da529e33d0e 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -443,7 +443,7 @@ abstract class CommonDocGenerator } } - $date = ($object->element == 'contrat' ? $object->date_contrat : $object->date); + $date = (isset($object->element) && $object->element == 'contrat' && isset($object->date_contrat)) ? $object->date_contrat : (isset($object->date) ? $object->date : null); $resarray = array( $array_key.'_id'=>$object->id, @@ -452,7 +452,7 @@ abstract class CommonDocGenerator $array_key.'_ref_ext' => (property_exists($object, 'ref_ext') ? $object->ref_ext : ''), $array_key.'_ref_customer'=>(!empty($object->ref_client) ? $object->ref_client : (empty($object->ref_customer) ? '' : $object->ref_customer)), $array_key.'_ref_supplier'=>(!empty($object->ref_fournisseur) ? $object->ref_fournisseur : (empty($object->ref_supplier) ? '' : $object->ref_supplier)), - $array_key.'_source_invoice_ref'=>$invoice_source->ref, + $array_key.'_source_invoice_ref'=>((empty($invoice_source) || empty($invoice_source->ref)) ? '' : $invoice_source->ref), // Dates $array_key.'_hour'=>dol_print_date($date, 'hour'), $array_key.'_date'=>dol_print_date($date, 'day'), @@ -651,7 +651,7 @@ abstract class CommonDocGenerator ); // Units - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $resarray['line_unit'] = $outputlangs->trans($line->getLabelOfUnit('long')); $resarray['line_unit_short'] = $outputlangs->trans($line->getLabelOfUnit('short')); } @@ -687,7 +687,7 @@ abstract class CommonDocGenerator $resql = $this->db->fetch_object($resql); foreach ($extralabels as $key => $label) { - $resarray['line_product_supplier_'.$key] = $resql->{$key}; + $resarray['line_product_supplier_'.$key] = $resql->$key; } } } @@ -1016,12 +1016,10 @@ abstract class CommonDocGenerator * @param int $hidedetails Do not show line details * @param int $hidedesc Do not show desc * @param int $hideref Do not show ref - * @return null + * @return void */ public function prepareArrayColumnField($object, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0) { - global $conf; - $this->defineColumnField($object, $outputlangs, $hidedetails, $hidedesc, $hideref); @@ -1106,14 +1104,14 @@ abstract class CommonDocGenerator public function getColumnContentXStart($colKey) { $colDef = $this->cols[$colKey]; - return $colDef['xStartPos'] + $colDef['content']['padding'][3]; + return (isset($colDef['xStartPos']) ? $colDef['xStartPos'] : 0) + $colDef['content']['padding'][3]; } /** - * get column position rank from column key + * get column position rank from column key * - * @param string $colKey the column key - * @return int rank on success and -1 on error + * @param string $colKey the column key + * @return int rank on success and -1 on error */ public function getColumnRank($colKey) { @@ -1126,11 +1124,11 @@ abstract class CommonDocGenerator /** * get column position rank from column key * - * @param string $newColKey the new column key - * @param array $defArray a single column definition array - * @param string $targetCol target column used to place the new column beside - * @param bool $insertAfterTarget insert before or after target column ? - * @return int new rank on success and -1 on error + * @param string $newColKey the new column key + * @param array $defArray a single column definition array + * @param string $targetCol target column used to place the new column beside + * @param bool $insertAfterTarget insert before or after target column ? + * @return int new rank on success and -1 on error */ public function insertNewColumnDef($newColKey, $defArray, $targetCol = false, $insertAfterTarget = false) { @@ -1171,11 +1169,11 @@ abstract class CommonDocGenerator /** * print standard column content * - * @param TCPDF $pdf pdf object - * @param float $curY curent Y position - * @param string $colKey the column key - * @param string $columnText column text - * @return null + * @param TCPDF $pdf pdf object + * @param float $curY curent Y position + * @param string $colKey the column key + * @param string $columnText column text + * @return int <0 if KO, >= if OK */ public function printStdColumnContent($pdf, &$curY, $colKey, $columnText = '') { @@ -1193,7 +1191,7 @@ abstract class CommonDocGenerator } if (!$reshook) { if (empty($columnText)) { - return; + return 0; } $pdf->SetXY($this->getColumnContentXStart($colKey), $curY); // Set curent position $colDef = $this->cols[$colKey]; @@ -1206,22 +1204,24 @@ abstract class CommonDocGenerator // restore cell padding $pdf->setCellPaddings($curentCellPaddinds['L'], $curentCellPaddinds['T'], $curentCellPaddinds['R'], $curentCellPaddinds['B']); } + + return 0; } /** * print description column content * - * @param TCPDF $pdf pdf object - * @param float $curY curent Y position - * @param string $colKey the column key - * @param object $object CommonObject - * @param int $i the $object->lines array key - * @param Translate $outputlangs Output language - * @param int $hideref hide ref - * @param int $hidedesc hide desc - * @param int $issupplierline if object need supplier product - * @return null + * @param TCPDF $pdf pdf object + * @param float $curY curent Y position + * @param string $colKey the column key + * @param object $object CommonObject + * @param int $i the $object->lines array key + * @param Translate $outputlangs Output language + * @param int $hideref hide ref + * @param int $hidedesc hide desc + * @param int $issupplierline if object need supplier product + * @return void */ public function printColDescContent($pdf, &$curY, $colKey, $object, $i, $outputlangs, $hideref = 0, $hidedesc = 0, $issupplierline = 0) { @@ -1265,7 +1265,7 @@ abstract class CommonDocGenerator global $hookmanager; if (empty($object->table_element)) { - return; + return ''; } $extrafieldsKeyPrefix = "options_"; @@ -1279,7 +1279,7 @@ abstract class CommonDocGenerator $extrafieldOptionsKey = $extrafieldsKeyPrefix.$extrafieldKey; - // Load extrafiels if not allready does + // Load extra fields if they haven't been loaded already. if (empty($this->extrafieldsCache)) { $this->extrafieldsCache = new ExtraFields($this->db); } @@ -1288,7 +1288,8 @@ abstract class CommonDocGenerator } $extrafields = $this->extrafieldsCache; - $extrafieldOutputContent = $extrafields->showOutputField($extrafieldKey, $object->array_options[$extrafieldOptionsKey], '', $object->table_element); + $extrafieldOutputContent = ''; + if (isset($object->array_options[$extrafieldOptionsKey])) $extrafieldOutputContent = $extrafields->showOutputField($extrafieldKey, $object->array_options[$extrafieldOptionsKey], '', $object->table_element); // TODO : allow showOutputField to be pdf public friendly, ex: in a link to object, clean getNomUrl to remove link and images... like a getName methode ... if ($extrafields->attributes[$object->table_element]['type'][$extrafieldKey] == 'link') { @@ -1317,10 +1318,10 @@ abstract class CommonDocGenerator /** * display extrafields columns content * - * @param object $object line of common object - * @param Translate $outputlangs Output language - * @param array $params array of additionals parameters - * @return double max y value + * @param object $object line of common object + * @param Translate $outputlangs Output language + * @param array $params array of additionals parameters + * @return string Html string */ public function getExtrafieldsInHtml($object, $outputlangs, $params = array()) { @@ -1330,7 +1331,7 @@ abstract class CommonDocGenerator return; } - // Load extrafiels if not allready does + // Load extrafields if not allready done if (empty($this->extrafieldsCache)) { $this->extrafieldsCache = new ExtraFields($this->db); } @@ -1366,7 +1367,6 @@ abstract class CommonDocGenerator $params = $params + $defaultParams; - /** * @var $extrafields ExtraFields */ @@ -1593,21 +1593,19 @@ abstract class CommonDocGenerator * @param object $object common object det * @param Translate $outputlangs langs * @param int $hidedetails Do not show line details - * @return null + * @return int <0 if KO, >=0 if OK */ public function defineColumnExtrafield($object, $outputlangs, $hidedetails = 0) { - global $conf; - if (!empty($hidedetails)) { - return; + return 0; } if (empty($object->table_element)) { - return; + return 0; } - // Load extrafiels if not allready does + // Load extra fields if they haven't been loaded already. if (empty($this->extrafieldsCache)) { $this->extrafieldsCache = new ExtraFields($this->db); } @@ -1617,7 +1615,7 @@ abstract class CommonDocGenerator $extrafields = $this->extrafieldsCache; - if (!empty($extrafields->attributes[$object->table_element]) && is_array($extrafields->attributes[$object->table_element]['label'])) { + if (!empty($extrafields->attributes[$object->table_element]) && is_array($extrafields->attributes[$object->table_element]) && array_key_exists('label', $extrafields->attributes[$object->table_element]) && is_array($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $label) { // Dont display separator yet even is set to be displayed (not compatible yet) if ($extrafields->attributes[$object->table_element]['type'][$key] == 'separate') { @@ -1674,5 +1672,7 @@ abstract class CommonDocGenerator $this->insertNewColumnDef("options_".$key, $def); } } + + return 1; } } diff --git a/htdocs/core/class/commoninvoice.class.php b/htdocs/core/class/commoninvoice.class.php index 3f53c3c4e94..dd0ec988062 100644 --- a/htdocs/core/class/commoninvoice.class.php +++ b/htdocs/core/class/commoninvoice.class.php @@ -332,6 +332,7 @@ abstract class CommonInvoice extends CommonObject $field = 'fk_facture'; $field2 = 'fk_paiement'; $field3 = ', p.ref_ext'; + $field4 = ', p.fk_bank'; // Bank line id $sharedentity = 'facture'; if ($this->element == 'facture_fourn' || $this->element == 'invoice_supplier') { $table = 'paiementfourn_facturefourn'; @@ -342,7 +343,7 @@ abstract class CommonInvoice extends CommonObject $sharedentity = 'facture_fourn'; } - $sql = "SELECT p.ref, pf.amount, pf.multicurrency_amount, p.fk_paiement, p.datep, p.num_paiement as num, t.code".$field3; + $sql = "SELECT p.ref, pf.amount, pf.multicurrency_amount, p.fk_paiement, p.datep, p.num_paiement as num, t.code".$field3 . $field4; $sql .= " FROM ".$this->db->prefix().$table." as pf, ".$this->db->prefix().$table2." as p, ".$this->db->prefix()."c_paiement as t"; $sql .= " WHERE pf.".$field." = ".((int) $this->id); $sql .= " AND pf.".$field2." = p.rowid"; @@ -363,6 +364,9 @@ abstract class CommonInvoice extends CommonObject if (!empty($field3)) { $tmp['ref_ext'] = $obj->ref_ext; } + if (!empty($field4)) { + $tmp['fk_bank_line'] = $obj->fk_bank; + } $retarray[] = $tmp; $i++; } @@ -865,7 +869,7 @@ abstract class CommonInvoice extends CommonObject /** - * Create a withdrawal request for a direct debit order or a credit transfer order. + * Create a withdrawal request, from a prelevement_demande, to Stripe for a direct debit order or a credit transfer order. * Use the remain to pay excluding all existing open direct debit requests. * * @param User $fuser User asking the direct debit transfer @@ -900,6 +904,8 @@ abstract class CommonInvoice extends CommonObject $sql = "SELECT rowid, date_demande, amount, fk_facture, fk_facture_fourn"; $sql .= " FROM ".$this->db->prefix()."prelevement_demande"; + $sql .= " AND fk_facture = ".((int) $this->fk_facture); // Add a protection to not pay another invoice than current one + $sql .= " AND traite = 0"; // Add a protection to not process twice $sql .= " WHERE rowid = ".((int) $did); dol_syslog(get_class($this)."::makeStripeSepaRequest 1", LOG_DEBUG); @@ -1035,9 +1041,9 @@ abstract class CommonInvoice extends CommonObject } - dol_syslog("makeStripeSepaRequest get stripe account", LOG_DEBUG); + dol_syslog("makeStripeSepaRequest get stripe connet account", LOG_DEBUG); $stripeacc = $stripe->getStripeAccount($service, $this->socid); // Get Stripe OAuth connect account if it exists (no network access here) - dol_syslog("makeStripeSepaRequest get stripe account return " . json_encode($stripeacc), LOG_DEBUG); + dol_syslog("makeStripeSepaRequest get stripe connect account return " . json_encode($stripeacc), LOG_DEBUG); if ($foundalternativestripeaccount) { if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage @@ -1072,101 +1078,68 @@ abstract class CommonInvoice extends CommonObject } if (!$error) { // Payment was not canceled - //erics card or sepa ? $sepaMode = false; + $stripecard = null; if ($companypaymentmode->type == 'ban') { $sepaMode = true; + // Check into societe_rib if a payment mode for Stripe and ban payment exists + // To make a Stripe SEPA payment request, we must have the payment mode source already saved into societe_rib and retreived with ->sepaStripe + // The payment mode source is created when we create the bank account on Stripe with paymentmodes.php?action=create $stripecard = $stripe->sepaStripe($customer, $companypaymentmode, $stripeacc, $servicestatus, 0); - } else { - $stripecard = $stripe->cardStripe($customer, $companypaymentmode, $stripeacc, $servicestatus, 0); } - if ($stripecard) { // Can be card_... (old mode) or pm_... (new mode) + if ($stripecard) { // Can be src_... (for sepa) or pm_... (new card mode). Note that card_... (old card mode) should not happen here. $FULLTAG = 'INV=' . $this->id . '-CUS=' . $thirdparty->id; - $description = 'Stripe payment from doTakePaymentStripeForThirdparty: ' . $FULLTAG . ' ref=' . $this->ref; + $description = 'Stripe payment from makeStripeSepaRequest: ' . $FULLTAG . ' ref=' . $this->ref; $stripefailurecode = ''; $stripefailuremessage = ''; $stripefailuredeclinecode = ''; - if (preg_match('/^card_/', $stripecard->id)) { // Using old method - dol_syslog("* Create charge on card " . $stripecard->id . ", amountstripe=" . $amountstripe . ", FULLTAG=" . $FULLTAG, LOG_DEBUG); + // Using new SCA method + dol_syslog("* Create payment on SEPA " . $stripecard->id . ", amounttopay=" . $amounttopay . ", amountstripe=" . $amountstripe . ", FULLTAG=" . $FULLTAG, LOG_DEBUG); - $ipaddress = getUserRemoteIP(); + // Create payment intent and charge payment (confirmnow = true) + $paymentintent = $stripe->getPaymentIntent($amounttopay, $currency, $FULLTAG, $description, $this, $customer->id, $stripeacc, $servicestatus, 0, 'automatic', true, $stripecard->id, 1); - $charge = null; // Force reset of $charge, so, if already set from a previous fetch, it will be empty even if there is an exception at next step - try { - $charge = \Stripe\Charge::create([ - 'amount' => price2num($amountstripe, 'MU'), - 'currency' => $currency, - 'capture' => true, // Charge immediatly - 'description' => $description, - 'metadata' => ["FULLTAG" => $FULLTAG, 'Recipient' => $mysoc->name, 'dol_version' => DOL_VERSION, 'dol_entity' => $conf->entity, 'ipaddress' => $ipaddress], - 'customer' => $customer->id, - //'customer' => 'bidon_to_force_error', // To use to force a stripe error - 'source' => $stripecard, - 'statement_descriptor' => dol_trunc('INV=' . $this->id, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) - ]); - } catch (\Stripe\Error\Card $e) { - // Since it's a decline, Stripe_CardError will be caught - $body = $e->getJsonBody(); - $err = $body['error']; + $charge = new stdClass(); - $stripefailurecode = $err['code']; - $stripefailuremessage = $err['message']; - $stripefailuredeclinecode = $err['decline_code']; - } catch (Exception $e) { - $stripefailurecode = 'UnknownChargeError'; - $stripefailuremessage = $e->getMessage(); - } - } else { // Using new SCA method - if ($sepaMode) { - dol_syslog("* Create payment on SEPA " . $stripecard->id . ", amounttopay=" . $amounttopay . ", amountstripe=" . $amountstripe . ", FULLTAG=" . $FULLTAG, LOG_DEBUG); - } else { - dol_syslog("* Create payment on card " . $stripecard->id . ", amounttopay=" . $amounttopay . ", amountstripe=" . $amountstripe . ", FULLTAG=" . $FULLTAG, LOG_DEBUG); - } + if ($paymentintent->status === 'succeeded' || $paymentintent->status === 'processing') { + $charge->status = 'ok'; + $charge->id = $paymentintent->id; + $charge->customer = $customer->id; + } elseif ($paymentintent->status === 'requires_action') { + //paymentintent->status may be => 'requires_action' (no error in such a case) + dol_syslog(var_export($paymentintent, true), LOG_DEBUG); - // Create payment intent and charge payment (confirmnow = true) - $paymentintent = $stripe->getPaymentIntent($amounttopay, $currency, $FULLTAG, $description, $invoice, $customer->id, $stripeacc, $servicestatus, 0, 'automatic', true, $stripecard->id, 1); + $charge->status = 'failed'; + $charge->customer = $customer->id; + $charge->failure_code = $stripe->code; + $charge->failure_message = $stripe->error; + $charge->failure_declinecode = $stripe->declinecode; + $stripefailurecode = $stripe->code; + $stripefailuremessage = 'Action required. Contact the support at ';// . $conf->global->SELLYOURSAAS_MAIN_EMAIL; + $stripefailuredeclinecode = $stripe->declinecode; + } else { + dol_syslog(var_export($paymentintent, true), LOG_DEBUG); - $charge = new stdClass(); - //erics add processing sepa is like success ? - if ($paymentintent->status === 'succeeded' || $paymentintent->status === 'processing') { - $charge->status = 'ok'; - $charge->id = $paymentintent->id; - $charge->customer = $customer->id; - } elseif ($paymentintent->status === 'requires_action') { - //paymentintent->status may be => 'requires_action' (no error in such a case) - dol_syslog(var_export($paymentintent, true), LOG_DEBUG); - - $charge->status = 'failed'; - $charge->customer = $customer->id; - $charge->failure_code = $stripe->code; - $charge->failure_message = $stripe->error; - $charge->failure_declinecode = $stripe->declinecode; - $stripefailurecode = $stripe->code; - $stripefailuremessage = 'Action required. Contact the support at ';// . $conf->global->SELLYOURSAAS_MAIN_EMAIL; - $stripefailuredeclinecode = $stripe->declinecode; - } else { - dol_syslog(var_export($paymentintent, true), LOG_DEBUG); - - $charge->status = 'failed'; - $charge->customer = $customer->id; - $charge->failure_code = $stripe->code; - $charge->failure_message = $stripe->error; - $charge->failure_declinecode = $stripe->declinecode; - $stripefailurecode = $stripe->code; - $stripefailuremessage = $stripe->error; - $stripefailuredeclinecode = $stripe->declinecode; - } - - //var_dump("stripefailurecode=".$stripefailurecode." stripefailuremessage=".$stripefailuremessage." stripefailuredeclinecode=".$stripefailuredeclinecode); - //exit; + $charge->status = 'failed'; + $charge->customer = $customer->id; + $charge->failure_code = $stripe->code; + $charge->failure_message = $stripe->error; + $charge->failure_declinecode = $stripe->declinecode; + $stripefailurecode = $stripe->code; + $stripefailuremessage = $stripe->error; + $stripefailuredeclinecode = $stripe->declinecode; } + //var_dump("stripefailurecode=".$stripefailurecode." stripefailuremessage=".$stripefailuremessage." stripefailuredeclinecode=".$stripefailuredeclinecode); + //exit; + + // Return $charge = array('id'=>'ch_XXXX', 'status'=>'succeeded|pending|failed', 'failure_code'=>, 'failure_message'=>...) if (empty($charge) || $charge->status == 'failed') { - dol_syslog('Failed to charge card or payment mode ' . $stripecard->id . ' stripefailurecode=' . $stripefailurecode . ' stripefailuremessage=' . $stripefailuremessage . ' stripefailuredeclinecode=' . $stripefailuredeclinecode, LOG_WARNING); + dol_syslog('Failed to charge payment mode ' . $stripecard->id . ' stripefailurecode=' . $stripefailurecode . ' stripefailuremessage=' . $stripefailuremessage . ' stripefailuredeclinecode=' . $stripefailuredeclinecode, LOG_WARNING); // Save a stripe payment was in error $this->stripechargeerror++; @@ -1202,20 +1175,24 @@ abstract class CommonInvoice extends CommonObject $errmsg .= ($stripefailuredeclinecode ? ' - ' . $stripefailuredeclinecode : ''); } - $description = 'Stripe payment ERROR from doTakePaymentStripeForThirdparty: ' . $FULLTAG; + $description = 'Stripe payment ERROR from makeStripeSepaRequest: ' . $FULLTAG; $postactionmessages[] = $errmsg . ' (' . $stripearrayofkeys['publishable_key'] . ')'; $this->errors[] = $errmsg; } else { - dol_syslog('Successfuly charge card ' . $stripecard->id); + dol_syslog('Successfuly request direct debit ' . $stripecard->id); - $postactionmessages[] = 'Success to charge card (' . $charge->id . ' with ' . $stripearrayofkeys['publishable_key'] . ')'; + $postactionmessages[] = 'Success to request direct debit (' . $charge->id . ' with ' . $stripearrayofkeys['publishable_key'] . ')'; // Save a stripe payment was done in realy life so later we will be able to force a commit on recorded payments // even if in batch mode (method doTakePaymentStripe), we will always make all action in one transaction with a forced commit. $this->stripechargedone++; // Default description used for label of event. Will be overwrite by another value later. - $description = 'Stripe payment OK (' . $charge->id . ') from doTakePaymentStripeForThirdparty: ' . $FULLTAG; + $description = 'Stripe payment request OK (' . $charge->id . ') from makeStripeSepaRequest: ' . $FULLTAG; + + + // @TODO LMR Save request to status pending instead of done. Done should be set with a webhook. + $db = $this->db; @@ -1256,6 +1233,7 @@ abstract class CommonInvoice extends CommonObject $ispostactionok = 1; // Creation of payment line + // TODO LMR This must be move into the stripe server listening hooks public/stripe/ipn.php include_once DOL_DOCUMENT_ROOT . '/compta/paiement/class/paiement.class.php'; $paiement = new Paiement($this->db); $paiement->datepaye = $now; @@ -1300,13 +1278,8 @@ abstract class CommonInvoice extends CommonObject if (!$errorforinvoice && isModEnabled('banque')) { dol_syslog('* Add payment to bank'); + // The bank used is the one defined into Stripe setup $bankaccountid = 0; - if ($paymentmethod == 'paybox') { - $bankaccountid = $conf->global->PAYBOX_BANK_ACCOUNT_FOR_PAYMENTS; - } - if ($paymentmethod == 'paypal') { - $bankaccountid = $conf->global->PAYPAL_BANK_ACCOUNT_FOR_PAYMENTS; - } if ($paymentmethod == 'stripe') { $bankaccountid = $conf->global->STRIPE_BANK_ACCOUNT_FOR_PAYMENTS; } @@ -1323,7 +1296,7 @@ abstract class CommonInvoice extends CommonObject $error++; $errorforinvoice++; } else { - $postactionmessages[] = 'Bank transaction of payment created (by doTakePaymentStripeForThirdparty)'; + $postactionmessages[] = 'Bank transaction of payment created (by makeStripeSepaRequest)'; } } else { $postactionmessages[] = 'Setup of bank account to use in module ' . $paymentmethod . ' was not set. No way to record the payment.'; @@ -1334,13 +1307,13 @@ abstract class CommonInvoice extends CommonObject } if ($ispostactionok < 1) { - $description = 'Stripe payment OK (' . $charge->id . ' - ' . $amounttopay . ' ' . $conf->currency . ') but post action KO from doTakePaymentStripeForThirdparty: ' . $FULLTAG; + $description = 'Stripe payment OK (' . $charge->id . ' - ' . $amounttopay . ' ' . $conf->currency . ') but post action KO from makeStripeSepaRequest: ' . $FULLTAG; } else { - $description = 'Stripe payment+post action OK (' . $charge->id . ' - ' . $amounttopay . ' ' . $conf->currency . ') from doTakePaymentStripeForThirdparty: ' . $FULLTAG; + $description = 'Stripe payment+post action OK (' . $charge->id . ' - ' . $amounttopay . ' ' . $conf->currency . ') from makeStripeSepaRequest: ' . $FULLTAG; } } - $object = $invoice; + $object = $this; // Send emails $labeltouse = 'InvoicePaymentSuccess'; @@ -1366,8 +1339,8 @@ abstract class CommonInvoice extends CommonObject } else { $error++; $errorforinvoice++; - dol_syslog("No card or payment method found for this stripe customer " . $customer->id, LOG_WARNING); - $this->errors[] = 'Failed to get card | payment method for stripe customer = ' . $customer->id; + dol_syslog("No direct debit payment method found for this stripe customer " . $customer->id, LOG_WARNING); + $this->errors[] = 'Failed to get direct debit payment method for stripe customer = ' . $customer->id; $labeltouse = 'InvoicePaymentFailure'; $sendemailtocustomer = 1; @@ -1380,7 +1353,7 @@ abstract class CommonInvoice extends CommonObject $stripefailuremessage = 'Failed to find or use the payment mode - no credit card defined for the customer account'; $postactionmessages[] = $description . ' (' . $stripearrayofkeys['publishable_key'] . ')'; - $object = $invoice; + $object = $this; $actioncode = 'PAYMENT_STRIPE_KO'; $extraparams = ''; @@ -1394,7 +1367,7 @@ abstract class CommonInvoice extends CommonObject $stripefailurecode = ''; $stripefailuremessage = ''; - $object = $invoice; + $object = $this; $actioncode = ''; $extraparams = ''; @@ -1421,12 +1394,13 @@ abstract class CommonInvoice extends CommonObject $stripefailuremessage = 'Failed to find or use your payment mode (no payment mode for this customer id)'; $postactionmessages = []; - $object = $invoice; + $object = $this; $actioncode = 'PAYMENT_STRIPE_KO'; $extraparams = ''; } + /* // Send email + create action after if ($sendemailtocustomer && $labeltouse) { dol_syslog("* Send email with result of payment - " . $labeltouse); @@ -1537,6 +1511,7 @@ abstract class CommonInvoice extends CommonObject } } } + */ if ($description) { dol_syslog("* Record event for payment result - " . $description); @@ -1588,18 +1563,18 @@ abstract class CommonInvoice extends CommonObject $this->errors[] = "Remain to pay is null for the invoice " . $this->id . " " . $this->ref . ". Why is the invoice not classified 'Paid' ?"; } - $sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_demande("; - $sql .= "fk_facture, "; - $sql .= " amount, date_demande, fk_user_demande, ext_payment_id, ext_payment_site, sourcetype, entity)"; - $sql .= " VALUES (".$this->id; - $sql .= ",".((float) price2num($amount)); - $sql .= ",'".$this->db->idate($now)."'"; - $sql .= ",".((int) $fuser->id); - $sql .= ",'".$this->db->escape($stripe_id)."'"; - $sql .= ",'".$this->db->escape($stripe_uri)."'"; - $sql .= ",'".$this->db->escape($sourcetype)."'"; - $sql .= ",".$conf->entity; - $sql .= ")"; + // TODO Create a prelevement_bon and set its status to sent instead of this + $idtransferfile = 0; + + // Update the direct debit payment request of the processed invoice to save the id of the prelevement_bon + $sql = "UPDATE".MAIN_DB_PREFIX."prelevement_demande SET"; + $sql .= " traite = 1,"; // TODO Remove this + $sql .= " date_traite = '".$this->db->idate(dol_now())."'"; // TODO Remove this + if ($idtransferfile > 0) { + $sql .= " fk_prelevement_bons = ".((int) $idtransferfile); + } + $sql .= "WHERE rowid = ".((int) $did); + dol_syslog(get_class($this)."::makeStripeSepaRequest", LOG_DEBUG); $resql = $this->db->query($sql); diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index d00a4cfc3bc..25f16cbbdb4 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -16,6 +16,7 @@ * Copyright (C) 2018 Josep Lluís Amador * Copyright (C) 2021 Gauthier VERDOL * Copyright (C) 2021 Grégory Blémand + * Copyright (C) 2023 Lenin Rivas * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -592,6 +593,15 @@ abstract class CommonObject protected $labelStatus; protected $labelStatusShort; + /** + * @var array nb used in load_stateboard + */ + public $nb = array(); + + /** + * @var string output + */ + public $output; /** * @var array List of child tables. To test if we can delete object. @@ -769,35 +779,6 @@ abstract class CommonObject } } - /** - * Return clicable link of object (with eventually picto) - * - * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) - * @return string HTML Code for Kanban thumb. - */ - public function getKanbanView($option = '') - { - $return = '
'; - $return .= '
'; - $return .= ''; - $return .= img_picto('', $this->picto); - //$return .= ''; // Can be image - $return .= ''; - $return .= '
'; - $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).''; - if (property_exists($this, 'label')) { - $return .= '
'.$this->label.''; - } - if (method_exists($this, 'getLibStatut')) { - $return .= '
'.$this->getLibStatut(5).'
'; - } - $return .= '
'; - $return .= '
'; - $return .= '
'; - - return $return; - } - /** * Return full address of contact * @@ -980,27 +961,6 @@ abstract class CommonObject } $outdone++; } - } else { // Old code to remove - if (!empty($this->skype)) { - $outsocialnetwork .= dol_print_socialnetworks($this->skype, $this->id, $object->id, 'skype'); - } - $outdone++; - if (!empty($this->jabberid)) { - $outsocialnetwork .= dol_print_socialnetworks($this->jabberid, $this->id, $object->id, 'jabber'); - } - $outdone++; - if (!empty($this->twitter)) { - $outsocialnetwork .= dol_print_socialnetworks($this->twitter, $this->id, $object->id, 'twitter'); - } - $outdone++; - if (!empty($this->facebook)) { - $outsocialnetwork .= dol_print_socialnetworks($this->facebook, $this->id, $object->id, 'facebook'); - } - $outdone++; - if (!empty($this->linkedin)) { - $outsocialnetwork .= dol_print_socialnetworks($this->linkedin, $this->id, $object->id, 'linkedin'); - } - $outdone++; } if ($outsocialnetwork) { @@ -1310,11 +1270,11 @@ abstract class CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Delete all links between an object $this and all its contacts + * Delete all links between an object $this and all its contacts in llx_element_contact * * @param string $source '' or 'internal' or 'external' * @param string $code Type of contact (code or id) - * @return int >0 if OK, <0 if KO + * @return int <0 if KO, 0=Nothing done, >0 if OK */ public function delete_linked_contact($source = '', $code = '') { @@ -1330,11 +1290,15 @@ abstract class CommonObject $listId = implode(",", $temp); } + // If $listId is empty, we have not criteria on fk_c_type_contact so we will delete record on element_id for + // any type or record instead of only the ones of the current object. So we do nothing in such a case. + if (empty($listId)) { + return 0; + } + $sql = "DELETE FROM ".$this->db->prefix()."element_contact"; $sql .= " WHERE element_id = ".((int) $this->id); - if (!empty($listId)) { - $sql .= " AND fk_c_type_contact IN (".$this->db->sanitize($listId).")"; - } + $sql .= " AND fk_c_type_contact IN (".$this->db->sanitize($listId).")"; dol_syslog(get_class($this)."::delete_linked_contact", LOG_DEBUG); if ($this->db->query($sql)) { @@ -1416,6 +1380,7 @@ abstract class CommonObject $transkey = "TypeContact_".$obj->element."_".$obj->source."_".$obj->code; $libelle_type = ($langs->trans($transkey) != $transkey ? $langs->trans($transkey) : $obj->libelle); $tab[$i] = array( + 'parentId' => $this->id, 'source' => $obj->source, 'socid' => $obj->socid, 'id' => $obj->id, @@ -2073,7 +2038,7 @@ abstract class CommonObject $sql .= " WHERE ".$id_field." = ".((int) $id); - dol_syslog(__METHOD__."", LOG_DEBUG); + dol_syslog(__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { if ($trigkey) { @@ -3339,6 +3304,8 @@ abstract class CommonObject $row = $this->db->fetch_row($resql); return $row[0]; } + + return 0; } /** @@ -3362,6 +3329,8 @@ abstract class CommonObject $row = $this->db->fetch_row($resql); return $row[0]; } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -3407,6 +3376,8 @@ abstract class CommonObject return $row[0]; } } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -3797,7 +3768,7 @@ abstract class CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Add objects linked in llx_element_element. + * Add an object link into llx_element_element. * * @param string $origin Linked element type * @param int $origin_id Linked element id @@ -4119,6 +4090,21 @@ abstract class CommonObject } } + /** + * Clear the cache saying that all linked object were already loaded. So next fetchObjectLinked will reload all links. + * + * @return int <0 if KO, >0 if OK + * @see fetchObjectLinked() + */ + public function clearObjectLinkedCache() + { + if ($this->id > 0 && !empty($this->linkedObjectsFullLoaded[$this->id])) { + unset($this->linkedObjectsFullLoaded[$this->id]); + } + + return 1; + } + /** * Update object linked of a current object * @@ -4519,6 +4505,8 @@ abstract class CommonObject $row = $this->db->fetch_row($resql); return $row[0]; } + + return 0; } /** @@ -5101,7 +5089,7 @@ abstract class CommonObject print '
'; } print ''; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { print ''; } print ''; @@ -5239,7 +5227,7 @@ abstract class CommonObject $this->tpl['total_ht'] = price($line->total_ht); $this->tpl['multicurrency_price'] = price($line->multicurrency_subprice); $this->tpl['qty'] = (($line->info_bits & 2) != 2) ? $line->qty : ' '; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $this->tpl['unit'] = $langs->transnoentities($line->getLabelOfUnit('long')); } $this->tpl['remise_percent'] = (($line->info_bits & 2) != 2) ? vatrate($line->remise_percent, true) : ' '; @@ -5718,15 +5706,16 @@ abstract class CommonObject * * @param string $fieldname Name of field * @param string $alternatevalue Alternate value to use + * @param string $type Type of data * @return string|string[] Default value (can be an array if the GETPOST return an array) **/ - public function getDefaultCreateValueFor($fieldname, $alternatevalue = null) + public function getDefaultCreateValueFor($fieldname, $alternatevalue = null, $type = 'alphanohtml') { global $conf, $_POST; // If param here has been posted, we use this value first. if (GETPOSTISSET($fieldname)) { - return GETPOST($fieldname, 'alphanohtml', 3); + return GETPOST($fieldname, $type, 3); } if (isset($alternatevalue)) { @@ -5752,6 +5741,9 @@ abstract class CommonObject } // TODO Ad here a scan into table llx_overwrite_default with a filter on $this->element and $fieldname + // store content into $conf->cache['overwrite_default'] + + return ''; } @@ -6443,9 +6435,9 @@ abstract class CommonObject return -1; } elseif ($value == '') { $new_array_languages[$key] = null; + } else { + $new_array_languages[$key] = $value; } - //dol_syslog("double value"." sur ".$attributeLabel."(".$value." is '".$attributeType."')", LOG_DEBUG); - $new_array_languages[$key] = $value; break; /*case 'select': // Not required, we chosed value='0' for undefined values if ($value=='-1') @@ -7808,7 +7800,7 @@ abstract class CommonObject * clear validation message result for a field * * @param string $fieldKey Key of attribute to clear - * @return null + * @return void */ public function clearFieldError($fieldKey) { @@ -7821,12 +7813,14 @@ abstract class CommonObject * * @param string $fieldKey Key of attribute * @param string $msg the field error message - * @return null + * @return void */ public function setFieldError($fieldKey, $msg = '') { global $langs; - if (empty($msg)) { $msg = $langs->trans("UnknowError"); } + if (empty($msg)) { + $msg = $langs->trans("UnknowError"); + } $this->error = $this->validateFieldsErrors[$fieldKey] = $msg; } @@ -7848,30 +7842,34 @@ abstract class CommonObject /** * Return validation test result for a field * - * @param array $val Array of properties of field to show + * @param array $fields Array of properties of field to show * @param string $fieldKey Key of attribute * @param string $fieldValue value of attribute * @return bool return false if fail true on success, see $this->error for error message */ - public function validateField($val, $fieldKey, $fieldValue) + public function validateField($fields, $fieldKey, $fieldValue) { global $langs; - if (!class_exists('Validate')) { require_once DOL_DOCUMENT_ROOT . '/core/class/validate.class.php'; } + if (!class_exists('Validate')) { + require_once DOL_DOCUMENT_ROOT . '/core/class/validate.class.php'; + } $this->clearFieldError($fieldKey); - if (!isset($val[$fieldKey])) { + if (!isset($fields[$fieldKey])) { $this->setFieldError($fieldKey, $langs->trans('FieldNotFoundInObject')); return false; } + $val = $fields[$fieldKey]; + $param = array(); $param['options'] = array(); - $type = $val[$fieldKey]['type']; + $type = $val['type']; $required = false; - if (isset($val[$fieldKey]['notnull']) && $val[$fieldKey]['notnull'] === 1) { + if (isset($val['notnull']) && $val['notnull'] === 1) { // 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0). $required = true; } @@ -7882,6 +7880,7 @@ abstract class CommonObject // // PREPARE Elements // + $reg = array(); // Convert var to be able to share same code than showOutputField of extrafields if (preg_match('/varchar\((\d+)\)/', $type, $reg)) { @@ -7895,7 +7894,7 @@ abstract class CommonObject $type = 'select'; } - if (preg_match('/^integer:(.*):(.*)/i', $val['type'], $reg)) { + if (!empty($val['type']) && preg_match('/^integer:(.*):(.*)/i', $val['type'], $reg)) { $type = 'link'; } @@ -8245,7 +8244,7 @@ abstract class CommonObject if ($display_type == 'card') { $out .= ''; - if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER) && ($action == 'view' || $action == 'valid' || $action == 'editline')) { + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER) && ($action == 'view' || $action == 'valid' || $action == 'editline' || $action == 'confirm_valid' || $action == 'confirm_cancel')) { $out .= ''; } $out .= ''; + print ''; + print '
'.$nbactive.''; + print ''; + print '
'; + } + foreach ($socialnetworks as $key => $value) { + if ($value['active'] || $nbofnetworks == 1) { + print ''; + print ''; + print ''; + print ''; + } elseif (!empty($object->socialnetworks[$key])) { + print ''; + } + } + print '
'; + + if ($nbofnetworks > 1) { + print ''; + } + } +} diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index d03604dc124..bec9c85d5dc 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -133,6 +133,7 @@ class Conf 'barcode' => array(), 'models' => array(), 'societe' => array(), + 'member' => array(), 'hooks' => array(), 'dir' => array(), 'syslog' => array() @@ -145,22 +146,22 @@ class Conf $this->expedition_bon = new stdClass(); $this->delivery_note = new stdClass(); $this->fournisseur = new stdClass(); - $this->product = new stdClass(); - $this->service = new stdClass(); - $this->contrat = new stdClass(); - $this->actions = new stdClass(); - $this->agenda = new stdClass(); + $this->product = new stdClass(); + $this->service = new stdClass(); + $this->contrat = new stdClass(); + $this->actions = new stdClass(); + $this->agenda = new stdClass(); $this->commande = new stdClass(); $this->propal = new stdClass(); - $this->facture = new stdClass(); - $this->contrat = new stdClass(); + $this->facture = new stdClass(); + $this->contrat = new stdClass(); $this->user = new stdClass(); - $this->adherent = new stdClass(); + $this->adherent = new stdClass(); $this->bank = new stdClass(); - $this->notification = new stdClass(); + $this->notification = new stdClass(); $this->mailing = new stdClass(); - $this->expensereport = new stdClass(); - $this->productbatch = new stdClass(); + $this->expensereport = new stdClass(); + $this->productbatch = new stdClass(); } /** @@ -215,26 +216,26 @@ class Conf $this->expedition_bon = new stdClass(); $this->delivery_note = new stdClass(); $this->fournisseur = new stdClass(); - $this->product = new stdClass(); - $this->service = new stdClass(); - $this->contrat = new stdClass(); - $this->actions = new stdClass(); - $this->agenda = new stdClass(); + $this->product = new stdClass(); + $this->service = new stdClass(); + $this->contrat = new stdClass(); + $this->actions = new stdClass(); + $this->agenda = new stdClass(); $this->commande = new stdClass(); $this->propal = new stdClass(); - $this->facture = new stdClass(); - $this->contrat = new stdClass(); + $this->facture = new stdClass(); + $this->contrat = new stdClass(); $this->user = new stdClass(); - $this->adherent = new stdClass(); + $this->adherent = new stdClass(); $this->bank = new stdClass(); - $this->notification = new stdClass(); + $this->notification = new stdClass(); $this->mailing = new stdClass(); - $this->expensereport = new stdClass(); - $this->productbatch = new stdClass(); + $this->expensereport = new stdClass(); + $this->productbatch = new stdClass(); // Common arrays $this->cache = array(); - $this->modules = array();; + $this->modules = array(); $this->modules_parts = array( 'css' => array(), 'js' => array(), @@ -249,6 +250,7 @@ class Conf 'barcode' => array(), 'models' => array(), 'societe' => array(), + 'member' => array(), 'hooks' => array(), 'dir' => array(), 'syslog' => array(), @@ -497,9 +499,9 @@ class Conf // Exception: Some dir are not the name of module. So we keep exception here for backward compatibility. // Sous module bons d'expedition - $this->expedition_bon->enabled = (!empty($this->global->MAIN_SUBMODULE_EXPEDITION) ? $this->global->MAIN_SUBMODULE_EXPEDITION : 0); + $this->expedition_bon->enabled = (empty($this->global->MAIN_SUBMODULE_EXPEDITION) ? 0 : $this->global->MAIN_SUBMODULE_EXPEDITION); // Sub module delivery note Sous module bons de livraison - $this->delivery_note->enabled = (!empty($this->global->MAIN_SUBMODULE_DELIVERY) ? $this->global->MAIN_SUBMODULE_DELIVERY : 0); + $this->delivery_note->enabled = (empty($this->global->MAIN_SUBMODULE_DELIVERY) ? 0 : $this->global->MAIN_SUBMODULE_DELIVERY); // Module fournisseur if (!empty($this->fournisseur)) { @@ -783,6 +785,11 @@ class Conf $this->global->USE_STRICT_CSV_RULES = 2; } + // By default, option is on. Once set by user, this code is useless + if (!isset($this->global->ACCOUNTING_REEXPORT)) { + $this->global->ACCOUNTING_REEXPORT = 1; + } + // Use a SCA ready workflow with Stripe module (STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION by default if nothing defined) if (!isset($this->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION) && empty($this->global->STRIPE_USE_NEW_CHECKOUT)) { $this->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION = 1; @@ -790,7 +797,7 @@ class Conf // Define list of limited modules (value must be key found for "name" property of module, so for example 'supplierproposal' for Module "Supplier Proposal" if (!isset($this->global->MAIN_MODULES_FOR_EXTERNAL)) { - $this->global->MAIN_MODULES_FOR_EXTERNAL = 'user,societe,propal,commande,facture,categorie,supplierproposal,fournisseur,contact,projet,contrat,ficheinter,expedition,agenda,resource,adherent,blockedlog'; // '' means 'all'. Note that contact is added here as it should be a module later. + $this->global->MAIN_MODULES_FOR_EXTERNAL = 'user,societe,propal,commande,facture,categorie,supplierproposal,fournisseur,contact,projet,contrat,ficheinter,expedition,reception,agenda,resource,adherent,blockedlog'; // '' means 'all'. Note that contact is added here as it should be a module later. } if (!empty($this->modules_parts['moduleforexternal'])) { // Module part to include an external module into the MAIN_MODULES_FOR_EXTERNAL list foreach ($this->modules_parts['moduleforexternal'] as $key => $value) { diff --git a/htdocs/core/class/cstate.class.php b/htdocs/core/class/cstate.class.php index d67b0c25f66..e098de93bd4 100644 --- a/htdocs/core/class/cstate.class.php +++ b/htdocs/core/class/cstate.class.php @@ -117,7 +117,7 @@ class Cstate // extends CommonObject $sql .= " ".(!isset($this->rowid) ? 'NULL' : "'".$this->db->escape($this->rowid)."'").","; $sql .= " ".(!isset($this->code_departement) ? 'NULL' : "'".$this->db->escape($this->code_departement)."'").","; $sql .= " ".(!isset($this->nom) ? 'NULL' : "'".$this->db->escape($this->nom)."'").","; - $sql .= " ".(!isset($this->active) ? 'NULL' : "'".$this->db->escape($this->active)."'").""; + $sql .= " ".(!isset($this->active) ? 'NULL' : "'".$this->db->escape($this->active)."'"); $sql .= ")"; $this->db->begin(); @@ -208,22 +208,23 @@ class Cstate // extends CommonObject if (isset($this->code_departement)) { $this->code_departement = trim($this->code_departement); } - if (isset($this->nom)) { - $this->nom = trim($this->nom); + if (isset($this->name)) { + $this->name = trim($this->name); } if (isset($this->active)) { $this->active = trim($this->active); } - // Check parameters - // Put here code to add control on parameters values + if (empty($this->name) && !empty($this->nom)) { + $this->name = $this->nom; + } // Update request $sql = "UPDATE ".$this->db->prefix()."c_departements SET"; $sql .= " code_departement=".(isset($this->code_departement) ? "'".$this->db->escape($this->code_departement)."'" : "null").","; - $sql .= " nom=".(isset($this->nom) ? "'".$this->db->escape($this->nom)."'" : "null").","; - $sql .= " active=".(isset($this->active) ? $this->active : "null").""; + $sql .= " nom=".(isset($this->name) ? "'".$this->db->escape($this->name)."'" : "null").","; + $sql .= " active=".(isset($this->active) ? ((int) $this->active) : "null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); diff --git a/htdocs/core/class/ctypent.class.php b/htdocs/core/class/ctypent.class.php index 324bfcb36a0..3bfae75d7de 100644 --- a/htdocs/core/class/ctypent.class.php +++ b/htdocs/core/class/ctypent.class.php @@ -114,7 +114,7 @@ class Ctypent // extends CommonObject $sql .= " ".(!isset($this->code) ? 'NULL' : "'".$this->db->escape($this->code)."'").","; $sql .= " ".(!isset($this->libelle) ? 'NULL' : "'".$this->db->escape($this->libelle)."'").","; $sql .= " ".(!isset($this->active) ? 'NULL' : "'".$this->db->escape($this->active)."'").","; - $sql .= " ".(!isset($this->module) ? 'NULL' : "'".$this->db->escape($this->module)."'").""; + $sql .= " ".(!isset($this->module) ? 'NULL' : "'".$this->db->escape($this->module)."'"); $sql .= ")"; $this->db->begin(); @@ -227,8 +227,8 @@ class Ctypent // extends CommonObject $sql = "UPDATE ".$this->db->prefix()."c_typent SET"; $sql .= " code=".(isset($this->code) ? "'".$this->db->escape($this->code)."'" : "null").","; $sql .= " libelle=".(isset($this->libelle) ? "'".$this->db->escape($this->libelle)."'" : "null").","; - $sql .= " active=".(isset($this->active) ? $this->active : "null").","; - $sql .= " module=".(isset($this->module) ? "'".$this->db->escape($this->module)."'" : "null").""; + $sql .= " active=".(isset($this->active) ? ((int) $this->active) : "null").","; + $sql .= " module=".(isset($this->module) ? "'".$this->db->escape($this->module)."'" : "null"); $sql .= " WHERE id=".$this->id; $this->db->begin(); diff --git a/htdocs/core/class/ctyperesource.class.php b/htdocs/core/class/ctyperesource.class.php index be83877098c..88f6960a9f9 100644 --- a/htdocs/core/class/ctyperesource.class.php +++ b/htdocs/core/class/ctyperesource.class.php @@ -468,8 +468,4 @@ class CtyperesourceLine public $label; public $active; - - /** - * @var mixed Sample line property 2 - */ } diff --git a/htdocs/core/class/discount.class.php b/htdocs/core/class/discount.class.php index 052d5ae7e1c..9f5ea960c9a 100644 --- a/htdocs/core/class/discount.class.php +++ b/htdocs/core/class/discount.class.php @@ -419,7 +419,7 @@ class DiscountAbsolute * When discount is from a credit note used to reduce payment of an invoice, we link using rowidinvoice * * @param int $rowidline Invoice line id (To use discount into invoice lines) - * @param int $rowidinvoice Invoice id (To use discount as a credit note to reduc payment of invoice) + * @param int $rowidinvoice Invoice id (To use discount as a credit note to reduce payment of invoice) * @return int <0 if KO, >0 if OK */ public function link_to_invoice($rowidline, $rowidinvoice) diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index 53a20d6dadd..f53498fafe8 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -60,7 +60,7 @@ class DolEditor * 'In' = each window has its own toolbar * 'Out:name' = share toolbar into the div called 'name' * @param boolean $toolbarstartexpanded Bar is visible or not at start - * @param boolean $uselocalbrowser Enabled to add links to local object with local browser. If false, only external images can be added in content. + * @param boolean|int $uselocalbrowser Enabled to add links to local object with local browser. If false, only external images can be added in content. * @param boolean|string $okforextendededitor True=Allow usage of extended editor tool if qualified (like ckeditor). If 'textarea', force use of simple textarea. If 'ace', force use of Ace. * Warning: If you use 'ace', don't forget to also include ace.js in page header. Also, the button "save" must have class="buttonforacesave". * @param int $rows Size of rows for textarea tool @@ -157,11 +157,7 @@ class DolEditor define('REQUIRE_CKEDITOR', '1'); } - if (!empty($conf->global->FCKEDITOR_SKIN)) { - $skin = $conf->global->FCKEDITOR_SKIN; - } else { - $skin = 'moono-lisa'; // default with ckeditor 4.6 : moono-lisa - } + $skin = getDolGlobalString('FCKEDITOR_SKIN', 'moono-lisa'); // default with ckeditor 4.6 : moono-lisa $pluginstodisable = 'elementspath,save,flash,div,specialchar,anchor'; if (!empty($conf->dol_optimize_smallscreen)) { @@ -183,31 +179,31 @@ class DolEditor $htmlencode_force = preg_match('/_encoded$/', $this->toolbarname) ? 'true' : 'false'; - $out .= ''."\n"; + $out .= ''."\n"; $out .= ''; } diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index bc06d1517dc..b2bb2a5f8fa 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -449,6 +449,15 @@ class FormFile $titletoshow = ($title == 'none' ? '' : $title); } + $submodulepart = $modulepart; + + // modulepart = 'nameofmodule' or 'nameofmodule:NameOfObject' + $tmp = explode(':', $modulepart); + if (!empty($tmp[1])) { + $modulepart = $tmp[0]; + $submodulepart = $tmp[1]; + } + // Show table if ($genallowed) { $modellist = array(); @@ -648,15 +657,6 @@ class FormFile $modellist = ModelePDFUserGroup::liste_modeles($this->db); } } else { - $submodulepart = $modulepart; - - // modulepart = 'nameofmodule' or 'nameofmodule:NameOfObject' - $tmp = explode(':', $modulepart); - if (!empty($tmp[1])) { - $modulepart = $tmp[0]; - $submodulepart = $tmp[1]; - } - // For normalized standard modules $file = dol_buildpath('/core/modules/'.$modulepart.'/modules_'.strtolower($submodulepart).'.php', 0); if (file_exists($file)) { @@ -837,7 +837,7 @@ class FormFile } // Show file name with link to download - $imgpreview = $this->showPreview($file, $modulepart, $relativepath, 0, $param);; + $imgpreview = $this->showPreview($file, $modulepart, $relativepath, 0, $param); $out .= ''; // Status - print ''; + print ''; // Amount paid print ''; print "\n"; diff --git a/htdocs/don/stats/index.php b/htdocs/don/stats/index.php index e9c2b82ae22..866cd25eef1 100644 --- a/htdocs/don/stats/index.php +++ b/htdocs/don/stats/index.php @@ -58,7 +58,7 @@ $form = new Form($db); llxHeader(); -print load_fiche_titre($langs->trans("StatisticsOfSendings"), $mesg); +print load_fiche_titre($langs->trans("StatisticsOfDonations"), $mesg); dol_mkdir($dir); @@ -72,9 +72,9 @@ $data = $stats->getNbByMonthWithPrevYear($endyear, $startyear); if (empty($user->rights->societe->client->voir) || $user->socid) { - $filenamenb = $dir.'/shipmentsnbinyear-'.$user->id.'-'.$year.'.png'; + $filenamenb = $dir.'/donationnbinyear-'.$user->id.'-'.$year.'.png'; } else { - $filenamenb = $dir.'/shipmentsnbinyear-'.$year.'.png'; + $filenamenb = $dir.'/donationnbinyear-'.$year.'.png'; } $px1 = new DolGraph(); @@ -91,11 +91,11 @@ if (!$mesg) { $px1->SetMinValue(min(0, $px1->GetFloorMinValue())); $px1->SetWidth($WIDTH); $px1->SetHeight($HEIGHT); - $px1->SetYLabel($langs->trans("NbOfSendings")); + $px1->SetYLabel($langs->trans("NbOfDonations")); $px1->SetShading(3); $px1->SetHorizTickIncrement(1); $px1->mode = 'depth'; - $px1->SetTitle($langs->trans("NumberOfShipmentsByMonth")); + $px1->SetTitle($langs->trans("NumberOfDonationsByMonth")); $px1->draw($filenamenb, $fileurlnb); } @@ -245,7 +245,7 @@ print '
'; print '
'.$langs->trans('PriceUHTCurrency').''.$langs->trans('Qty').''.$langs->trans('Unit').''.$langs->trans('ReductionShort').'

'; + if (!empty($value['icon'])) { + print ''; + } + print ''; + print '
'; if ($imgpreview) { diff --git a/htdocs/core/class/html.formmailing.class.php b/htdocs/core/class/html.formmailing.class.php index 9c74cb1203a..7ae13608e6a 100644 --- a/htdocs/core/class/html.formmailing.class.php +++ b/htdocs/core/class/html.formmailing.class.php @@ -32,18 +32,19 @@ class FormMailing extends Form */ public $errors = array(); + /** * Output a select with destinaries status * - * @param string $selectedid The selected id - * @param string $htmlname Name of controm - * @param integer $show_empty Show empty option - * @return string HTML select + * @param string $selectedid The selected id + * @param string $htmlname Name of controm + * @param integer $show_empty Show empty option + * @return string HTML select */ public function selectDestinariesStatus($selectedid = '', $htmlname = 'dest_status', $show_empty = 0) { - global $langs; + $langs->load("mails"); require_once DOL_DOCUMENT_ROOT.'/comm/mailing/class/mailing.class.php'; @@ -51,12 +52,9 @@ class FormMailing extends Form $options = array(); - if ($show_empty) { - $options[-2] = ''; // Note -1 is used for error - } - $options = $options + $mailing->statut_dest; - return Form::selectarray($htmlname, $options, $selectedid, 0, 0, 0, '', 1); + // Note -1 is used for error, so we use -2 for tempty value + return Form::selectarray($htmlname, $options, $selectedid, ($show_empty ? -2 : 0), 0, 0, '', 1); } } diff --git a/htdocs/core/class/html.formmargin.class.php b/htdocs/core/class/html.formmargin.class.php index 513d964014a..bf5233c0c6e 100644 --- a/htdocs/core/class/html.formmargin.class.php +++ b/htdocs/core/class/html.formmargin.class.php @@ -218,25 +218,25 @@ class FormMargin if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } elseif (empty($reshook)) { - if (!empty($conf->global->MARGIN_ADD_SHOWHIDE_BUTTON)) { // TODO Warning this feature rely on an external js file that may be removed. Using native js function document.cookie should be better - print $langs->trans('ShowMarginInfos') . ' : '; + if (!empty($conf->global->MARGIN_ADD_SHOWHIDE_BUTTON)) { + print $langs->trans('ShowMarginInfos') . ' '; $hidemargininfos = preg_replace('/[^a-zA-Z0-9_\-]/', '', $_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']); // Clean cookie - print '' . img_picto($langs->trans("Disabled"), 'switch_off') . ''; - print '' . img_picto($langs->trans("Enabled"), 'switch_on') . ''; + print '' . img_picto($langs->trans("Disabled"), 'switch_off') . ''; + print '' . img_picto($langs->trans("Enabled"), 'switch_on') . ''; print ''; if (!empty($hidemargininfos)) { - print ''; + print ''; } } print '
'; print '' . "\n"; - print ''; + print '
'; print ''; print ''; print ''; diff --git a/htdocs/core/class/html.formprojet.class.php b/htdocs/core/class/html.formprojet.class.php index a0e74c5cdd5..dc82e3bf4cf 100644 --- a/htdocs/core/class/html.formprojet.class.php +++ b/htdocs/core/class/html.formprojet.class.php @@ -39,6 +39,9 @@ class FormProjets */ public $error = ''; + public $errors = array(); + + public $nboftasks; @@ -267,7 +270,7 @@ class FormProjets 'value' => $obj->ref, 'ref' => $obj->ref, 'labelx' => $labeltoshow, - 'label' => ((bool) $disabled) ? ''.$labeltoshow.'' : $labeltoshow, + 'label' => ($disabled ? ''.$labeltoshow.'' : $labeltoshow), 'disabled' => (bool) $disabled ); } @@ -622,6 +625,8 @@ class FormProjets if ($resql) { $num = $this->db->num_rows($resql); $i = 0; + $sellist = ''; + if ($num > 0) { $sellist = ''; print ajax_combobox($htmlname, array(), 0, 0, 'resolve', ($showempty < 0 ? (string) $showempty : '-1'), $morecss); diff --git a/htdocs/core/class/html.formsetup.class.php b/htdocs/core/class/html.formsetup.class.php index c57ee0c5106..40dec1870a4 100644 --- a/htdocs/core/class/html.formsetup.class.php +++ b/htdocs/core/class/html.formsetup.class.php @@ -21,7 +21,6 @@ */ class FormSetup { - /** * @var DoliDB Database handler. */ @@ -339,8 +338,8 @@ class FormSetup /** * Method used to test module builder convertion to this form usage * - * @param array $params an array of arrays of params from old modulBuilder params - * @return null + * @param array $params an array of arrays of params from old modulBuilder params + * @return void */ public function addItemsFromParamsArray($params) { @@ -662,7 +661,7 @@ class FormSetupItem { global $conf; if (isset($conf->global->{$this->confKey})) { - $this->fieldValue = $conf->global->{$this->confKey}; + $this->fieldValue = getDolGlobalString($this->confKey); return true; } else { $this->fieldValue = null; @@ -683,7 +682,8 @@ class FormSetupItem /** * Save const value based on htdocs/core/actions_setmoduleoptions.inc.php - * @return int -1 if KO, 1 if OK + * + * @return int -1 if KO, 1 if OK */ public function saveConfValue() { @@ -714,10 +714,13 @@ class FormSetupItem return 1; } } + + return 0; } /** * Set an override function for saving data + * * @param callable $callBack a callable function * @return void */ @@ -1005,6 +1008,7 @@ class FormSetupItem * set the type from string : used for old module builder setup conf style conversion and tests * because this two class will quickly evolve it's important to not set directly $this->type (will be protected) so this method exist * to be sure we can manage evolution easily + * * @param string $type possible values based on old module builder setup : 'string', 'textarea', 'category:'.Categorie::TYPE_CUSTOMER', 'emailtemplate', 'thirdparty_type' * @deprecated yes this setTypeFromTypeString came deprecated because it exists only for manage setup convertion * @return bool @@ -1012,11 +1016,13 @@ class FormSetupItem public function setTypeFromTypeString($type) { $this->type = $type; + return true; } /** * Add error + * * @param array|string $errors the error text * @return null */ @@ -1034,7 +1040,9 @@ class FormSetupItem } /** - * @return bool|string Generate the output html for this item + * generateOutputField + * + * @return bool|string Generate the output html for this item */ public function generateOutputField() { @@ -1073,16 +1081,18 @@ class FormSetupItem } } } elseif (preg_match('/emailtemplate:/', $this->type)) { - include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; - $formmail = new FormMail($this->db); + if ($this->fieldValue > 0) { + include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; + $formmail = new FormMail($this->db); - $tmp = explode(':', $this->type); + $tmp = explode(':', $this->type); - $template = $formmail->getEMailTemplate($this->db, $tmp[1], $user, $this->langs, $this->fieldValue); - if (is_numeric($template) && $template < 0) { - $this->setErrors($formmail->errors); + $template = $formmail->getEMailTemplate($this->db, $tmp[1], $user, $this->langs, $this->fieldValue); + if (is_numeric($template) && $template < 0) { + $this->setErrors($formmail->errors); + } + $out.= $this->langs->trans($template->label); } - $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); @@ -1108,6 +1118,7 @@ class FormSetupItem } } elseif ($this->type == 'product') { require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; + $product = new Product($this->db); $resprod = $product->fetch($this->fieldValue); if ($resprod > 0) { diff --git a/htdocs/core/class/html.formsms.class.php b/htdocs/core/class/html.formsms.class.php index f08640c6e55..28092a72da6 100644 --- a/htdocs/core/class/html.formsms.class.php +++ b/htdocs/core/class/html.formsms.class.php @@ -250,7 +250,7 @@ function limitChars(textarea, limit, infodiv) if ($this->withtoreadonly) { print (!is_array($this->withto) && !is_numeric($this->withto)) ? $this->withto : ""; } else { - print "withto) && $this->withto != '1' ? (isset($_REQUEST["sendto"]) ?GETPOST("sendto") : $this->withto) : "+")."\">"; + print 'withto) : "+").'">'; if (!empty($this->withtosocid) && $this->withtosocid > 0) { $liste = array(); foreach ($soc->thirdparty_and_contact_phone_array() as $key => $value) { diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index 3dc618c36ab..5692a285dda 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -1,7 +1,7 @@ * Copyright (C) 2016 Christophe Battarel - * Copyright (C) 2019 Frédéric France + * Copyright (C) 2019-2022 Frédéric France * Copyright (C) 2021 Juanjo Menent * Copyright (C) 2021 Alexandre Spangaro * @@ -49,10 +49,15 @@ class FormTicket public $db; /** - * @var string The track_id of the ticket. Used also for the $keytoavoidconflict to name session vars to upload files. + * @var string A hash value of the ticket. Duplicate of ref but for public purposes. */ public $track_id; + /** + * @var string Email $trackid. Used also for the $keytoavoidconflict to name session vars to upload files. + */ + public $trackid; + /** * @var int ID */ @@ -89,8 +94,12 @@ class FormTicket public $withusercreate; // to show name of creating user in form public $withcreatereadonly; - public $withref; // to show ref field + /** + * @var int withextrafields + */ + public $withextrafields; + public $withref; // to show ref field public $withcancel; public $type_code; @@ -146,9 +155,10 @@ class FormTicket * @param string $mode Mode ('create' or 'edit') * @param int $public 1=If we show the form for the public interface * @param Contact|null $with_contact [=NULL] Contact to link to this ticket if exists + * @param string $action [=''] Action in card * @return void */ - public function showForm($withdolfichehead = 0, $mode = 'edit', $public = 0, Contact $with_contact = null) + public function showForm($withdolfichehead = 0, $mode = 'edit', $public = 0, Contact $with_contact = null, $action = '') { global $conf, $langs, $user, $hookmanager; @@ -346,7 +356,7 @@ class FormTicket print $langs->trans('SubjectAnswerToTicket').' '.$this->topic_title; } else { if (isset($this->withreadid) && $this->withreadid > 0) { - $subject = $langs->trans('SubjectAnswerToTicket').' '.$this->withreadid.' : '.$this->topic_title.''; + $subject = $langs->trans('SubjectAnswerToTicket').' '.$this->withreadid.' : '.$this->topic_title; } else { $subject = GETPOST('subject', 'alpha'); } @@ -361,7 +371,7 @@ class FormTicket print ' '; } diff --git a/htdocs/core/class/infobox.class.php b/htdocs/core/class/infobox.class.php index f3f28abe149..606a6640995 100644 --- a/htdocs/core/class/infobox.class.php +++ b/htdocs/core/class/infobox.class.php @@ -118,7 +118,7 @@ class InfoBox $sql .= " WHERE d.entity IN (0, ".$conf->entity.")"; } - dol_syslog(get_class()."::listBoxes get default box list for mode=".$mode." userid=".(is_object($user) ? $user->id : '')."", LOG_DEBUG); + dol_syslog(get_class()."::listBoxes get default box list for mode=".$mode." userid=".(is_object($user) ? $user->id : ''), LOG_DEBUG); $resql = $dbs->query($sql); if ($resql) { $num = $dbs->num_rows($resql); diff --git a/htdocs/core/class/ldap.class.php b/htdocs/core/class/ldap.class.php index 426dec37962..8b3c9177d3e 100644 --- a/htdocs/core/class/ldap.class.php +++ b/htdocs/core/class/ldap.class.php @@ -982,7 +982,7 @@ class Ldap * * @param string $filterrecord Record * @param string $attribute Attributes - * @return void + * @return array|boolean */ public function getAttributeValues($filterrecord, $attribute) { @@ -1025,7 +1025,7 @@ class Ldap * @param array $attributeArray Array of fields required. Note this array must also contains field $useridentifier (Ex: sn,userPassword) * @param int $activefilter '1' or 'user'=use field this->filter as filter instead of parameter $search, 'group'=use field this->filtergroup as filter, 'member'=use field this->filtermember as filter * @param array $attributeAsArray Array of fields wanted as an array not a string - * @return array Array of [id_record][ldap_field]=value + * @return array|int Array of [id_record][ldap_field]=value */ public function getRecords($search, $userDn, $useridentifier, $attributeArray, $activefilter = 0, $attributeAsArray = array()) { @@ -1058,12 +1058,12 @@ class Ldap if (is_array($attributeArray)) { // Return list with required fields $attributeArray = array_values($attributeArray); // This is to force to have index reordered from 0 (not make ldap_search fails) - dol_syslog(get_class($this)."::getRecords connection=".$this->connection." userDn=".$userDn." filter=".$filter." attributeArray=(".join(',', $attributeArray).")"); + dol_syslog(get_class($this)."::getRecords connection=".$this->connectedServer.":".$this->serverPort." userDn=".$userDn." filter=".$filter." attributeArray=(".join(',', $attributeArray).")"); //var_dump($attributeArray); $this->result = @ldap_search($this->connection, $userDn, $filter, $attributeArray); } else { // Return list with fields selected by default - dol_syslog(get_class($this)."::getRecords connection=".$this->connection." userDn=".$userDn." filter=".$filter); + dol_syslog(get_class($this)."::getRecords connection=".$this->connectedServer.":".$this->serverPort." userDn=".$userDn." filter=".$filter); $this->result = @ldap_search($this->connection, $userDn, $filter); } if (!$this->result) { @@ -1239,10 +1239,10 @@ class Ldap /** * Load all attribute of a LDAP user * - * @param User $user User to search for. Not used if a filter is provided. - * @param string $filter Filter for search. Must start with &. - * Examples: &(objectClass=inetOrgPerson) &(objectClass=user)(objectCategory=person) &(isMemberOf=cn=Sales,ou=Groups,dc=opencsi,dc=com) - * @return int >0 if OK, <0 if KO + * @param User|string $user Not used. + * @param string $filter Filter for search. Must start with &. + * Examples: &(objectClass=inetOrgPerson) &(objectClass=user)(objectCategory=person) &(isMemberOf=cn=Sales,ou=Groups,dc=opencsi,dc=com) + * @return int >0 if OK, <0 if KO */ public function fetch($user, $filter) { @@ -1291,7 +1291,6 @@ class Ldap $this->firstname = $this->convToOutputCharset($result[0][$this->attr_firstname][0], $this->ldapcharset); $this->login = $this->convToOutputCharset($result[0][$this->attr_login][0], $this->ldapcharset); $this->phone = $this->convToOutputCharset($result[0][$this->attr_phone][0], $this->ldapcharset); - $this->skype = $this->convToOutputCharset($result[0][$this->attr_skype][0], $this->ldapcharset); $this->fax = $this->convToOutputCharset($result[0][$this->attr_fax][0], $this->ldapcharset); $this->mail = $this->convToOutputCharset($result[0][$this->attr_mail][0], $this->ldapcharset); $this->mobile = $this->convToOutputCharset($result[0][$this->attr_mobile][0], $this->ldapcharset); @@ -1342,7 +1341,7 @@ class Ldap * UserAccountControl Flgs to more human understandable form... * * @param string $uacf UACF - * @return void + * @return array */ public function parseUACF($uacf) { @@ -1382,7 +1381,7 @@ class Ldap } //Return human friendly flags - return($retval); + return $retval; } /** @@ -1414,7 +1413,7 @@ class Ldap $retval = "UNKNOWN_TYPE_".$samtype; } - return($retval); + return $retval; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps diff --git a/htdocs/core/class/lessc.class.php b/htdocs/core/class/lessc.class.php index bd2d6d020cd..0452cab45aa 100644 --- a/htdocs/core/class/lessc.class.php +++ b/htdocs/core/class/lessc.class.php @@ -703,8 +703,8 @@ class Lessc // has default value $value = $a[2]; } else { - $this->throwError("Failed to assign arg ".$a[1]); $value = null; // :( + $this->throwError("Failed to assign arg ".$a[1]); // This end function by throwing an exception } $value = $this->reduce($value); @@ -1011,6 +1011,7 @@ class Lessc if ($list[0] == "list" && isset($list[2][$idx - 1])) { return $list[2][$idx - 1]; } + return ''; } protected function lib_isnumber($value) @@ -1118,8 +1119,7 @@ class Lessc if (isset($items[0])) { return $this->lib_e($items[0]); } - $this->throwError("unrecognised input"); - return null; + $this->throwError("unrecognised input"); // This end function by throwing an exception case "string": $arg[1] = ""; return $arg; @@ -1306,6 +1306,7 @@ class Lessc if (!is_null($color = $this->coerceColor($value))) { return isset($color[4]) ? $color[4] : 1; } + return ''; } // set the alpha of the color @@ -1836,6 +1837,7 @@ class Lessc } return null; } + return null; } // make something string like into a string @@ -1931,6 +1933,8 @@ class Lessc array_unshift($strRight[2], $left); return $strRight; } + + return ''; } @@ -1954,6 +1958,8 @@ class Lessc if ($op == '+' || $op == '*') { return $this->op_color_number($op, $rgt, $lft); } + + return array(); } protected function op_color_number($op, $lft, $rgt) @@ -2756,7 +2762,7 @@ class lessc_parser // media if ($this->literal('@media')) { - if (($this->mediaQueryList($mediaQueries) || true) + if ($this->mediaQueryList($mediaQueries) && $this->literal('{') ) { $media = $this->pushSpecialBlock("media"); @@ -2770,7 +2776,7 @@ class lessc_parser if ($this->literal("@", false) && $this->keyword($dirName)) { if ($this->isDirective($dirName, $this->blockDirectives)) { - if (($this->openString("{", $dirValue, null, array(";")) || true) && + if ($this->openString("{", $dirValue, null, array(";")) && $this->literal("{") ) { $dir = $this->pushSpecialBlock("directive"); @@ -2808,7 +2814,7 @@ class lessc_parser // opening parametric mixin if ($this->tag($tag, true) && $this->argumentDef($args, $isVararg) && - ($this->guards($guards) || true) && + $this->guards($guards) && $this->literal('{') ) { $block = $this->pushBlock($this->fixTags(array($tag))); @@ -2871,8 +2877,8 @@ class lessc_parser // mixin if ($this->mixinTags($tags) && - ($this->argumentDef($argv, $isVararg) || true) && - ($this->keyword($suffix) || true) && $this->end() + $this->argumentDef($argv, $isVararg) && + $this->keyword($suffix) && $this->end() ) { $tags = $this->fixTags($tags); $this->append(array('mixin', $tags, $argv, $suffix), $s); @@ -3134,7 +3140,7 @@ class lessc_parser } // an import statement - protected function import(&$out) + protected function import(&$out, $value = '') { if (!$this->literal('@import')) { return false; @@ -3148,6 +3154,8 @@ class lessc_parser $out = array("import", $value); return true; } + + return false; } protected function mediaQueryList(&$out) @@ -3166,7 +3174,7 @@ class lessc_parser $expressions = null; $parts = array(); - if (($this->literal("only") && ($only = true) || $this->literal("not") && ($not = true) || true) && $this->keyword($mediaType)) { + if ((($this->literal("only") && ($only = true)) || ($this->literal("not") && ($not = true))) && $this->keyword($mediaType)) { $prop = array("mediaType"); if (isset($only)) { $prop[] = "only"; @@ -3205,7 +3213,7 @@ class lessc_parser $value = null; if ($this->literal("(") && $this->keyword($feature) && - ($this->literal(":") && $this->expression($value) || true) && + ($this->literal(":") && $this->expression($value)) && $this->literal(")") ) { $out = array("mediaExp", $feature); diff --git a/htdocs/core/class/menubase.class.php b/htdocs/core/class/menubase.class.php index caeece975f2..9544e11e075 100644 --- a/htdocs/core/class/menubase.class.php +++ b/htdocs/core/class/menubase.class.php @@ -647,7 +647,7 @@ class Menubase $sql .= " ORDER BY m.position, m.rowid"; //print $sql; - //dol_syslog(get_class($this)."::menuLoad mymainmenu=".$mymainmenu." myleftmenu=".$myleftmenu." type_user=".$type_user." menu_handler=".$menu_handler." tabMenu size=".count($tabMenu)."", LOG_DEBUG); + //dol_syslog(get_class($this)."::menuLoad mymainmenu=".$mymainmenu." myleftmenu=".$myleftmenu." type_user=".$type_user." menu_handler=".$menu_handler." tabMenu size=".count($tabMenu), LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $numa = $this->db->num_rows($resql); diff --git a/htdocs/core/class/notify.class.php b/htdocs/core/class/notify.class.php index 2a6fdf8def7..fc562913c08 100644 --- a/htdocs/core/class/notify.class.php +++ b/htdocs/core/class/notify.class.php @@ -71,6 +71,9 @@ class Notify 'ORDER_VALIDATE', 'PROPAL_VALIDATE', 'PROPAL_CLOSE_SIGNED', + 'PROPAL_CLOSE_SIGNED_WEB', + 'PROPAL_CLOSE_REFUSED', + 'PROPAL_CLOSE_REFUSED_WEB', 'FICHINTER_VALIDATE', 'FICHINTER_ADD_CONTACT', 'ORDER_SUPPLIER_VALIDATE', @@ -222,7 +225,7 @@ class Notify $sql .= " AND s.rowid = ".((int) $socid); } - dol_syslog(__METHOD__." ".$notifcode.", ".$socid."", LOG_DEBUG); + dol_syslog(__METHOD__." ".$notifcode.", ".$socid, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { @@ -260,7 +263,7 @@ class Notify $sql .= " AND c.rowid = ".((int) $userid); } - dol_syslog(__METHOD__." ".$notifcode.", ".$socid."", LOG_DEBUG); + dol_syslog(__METHOD__." ".$notifcode.", ".$socid, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { @@ -502,6 +505,20 @@ class Notify $labeltouse = $conf->global->PROPAL_VALIDATE_TEMPLATE; $mesg = $outputlangs->transnoentitiesnoconv("EMailTextProposalValidated", $link); break; + case 'PROPAL_CLOSE_REFUSED': + $link = ''.$newref.''; + $dir_output = $conf->propal->multidir_output[$object->entity]."/".get_exdir(0, 0, 0, 1, $object, 'propal'); + $object_type = 'propal'; + $labeltouse = $conf->global->PROPAL_CLOSE_REFUSED_TEMPLATE; + $mesg = $outputlangs->transnoentitiesnoconv("EMailTextProposalClosedRefused", $link); + break; + case 'PROPAL_CLOSE_REFUSED_WEB': + $link = ''.$newref.''; + $dir_output = $conf->propal->multidir_output[$object->entity]."/".get_exdir(0, 0, 0, 1, $object, 'propal'); + $object_type = 'propal'; + $labeltouse = $conf->global->PROPAL_CLOSE_REFUSED_TEMPLATE; + $mesg = $outputlangs->transnoentitiesnoconv("EMailTextProposalClosedRefusedWeb", $link); + break; case 'PROPAL_CLOSE_SIGNED': $link = ''.$newref.''; $dir_output = $conf->propal->multidir_output[$object->entity]."/".get_exdir(0, 0, 0, 1, $object, 'propal'); @@ -509,6 +526,13 @@ class Notify $labeltouse = $conf->global->PROPAL_CLOSE_SIGNED_TEMPLATE; $mesg = $outputlangs->transnoentitiesnoconv("EMailTextProposalClosedSigned", $link); break; + case 'PROPAL_CLOSE_SIGNED_WEB': + $link = ''.$newref.''; + $dir_output = $conf->propal->multidir_output[$object->entity]."/".get_exdir(0, 0, 0, 1, $object, 'propal'); + $object_type = 'propal'; + $labeltouse = $conf->global->PROPAL_CLOSE_SIGNED_TEMPLATE; + $mesg = $outputlangs->transnoentitiesnoconv("EMailTextProposalClosedSigned", $link); + break; case 'FICHINTER_ADD_CONTACT': $link = ''.$newref.''; $dir_output = $conf->ficheinter->dir_output; @@ -634,6 +658,11 @@ class Notify $reshook = $hookmanager->executeHooks('formatNotificationMessage', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if (empty($reshook)) { + if (!empty($hookmanager->resArray['files'])) { + $filename_list = $hookmanager->resArray['files']['file']; + $mimetype_list = $hookmanager->resArray['files']['mimefile']; + $mimefilename_list = $hookmanager->resArray['files']['filename']; + } if (!empty($hookmanager->resArray['subject'])) { $subject .= $hookmanager->resArray['subject']; } @@ -877,6 +906,11 @@ class Notify $parameters = array('notifcode'=>$notifcode, 'sendto'=>$sendto, 'replyto'=>$replyto, 'file'=>$filename_list, 'mimefile'=>$mimetype_list, 'filename'=>$mimefilename_list); $reshook = $hookmanager->executeHooks('formatNotificationMessage', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if (empty($reshook)) { + if (!empty($hookmanager->resArray['files'])) { + $filename_list = $hookmanager->resArray['files']['file']; + $mimetype_list = $hookmanager->resArray['files']['mimefile']; + $mimefilename_list = $hookmanager->resArray['files']['filename']; + } if (!empty($hookmanager->resArray['subject'])) { $subject .= $hookmanager->resArray['subject']; } diff --git a/htdocs/core/class/openid.class.php b/htdocs/core/class/openid.class.php index 79cf9137a99..7198f532358 100644 --- a/htdocs/core/class/openid.class.php +++ b/htdocs/core/class/openid.class.php @@ -178,7 +178,7 @@ class SimpleOpenID /** * SetOpenIDServer * - * @return void + * @return array */ public function GetError() { @@ -225,7 +225,7 @@ class SimpleOpenID * splitResponse * * @param string $response Server - * @return void + * @return array */ public function splitResponse($response) { diff --git a/htdocs/core/class/rssparser.class.php b/htdocs/core/class/rssparser.class.php index 66e9241d9f5..da3257b09c9 100644 --- a/htdocs/core/class/rssparser.class.php +++ b/htdocs/core/class/rssparser.class.php @@ -175,7 +175,7 @@ class RssParser /** * getItems * - * @return string + * @return array */ public function getItems() { @@ -801,8 +801,8 @@ class RssParser /** * Function to convert an XML object into an array * - * @param SimpleXMLElement $xml Xml - * @return void + * @param SimpleXMLElement $xml Xml + * @return array|string */ function xml2php($xml) { diff --git a/htdocs/core/class/stats.class.php b/htdocs/core/class/stats.class.php index 990bdaf107e..60cdc5d5226 100644 --- a/htdocs/core/class/stats.class.php +++ b/htdocs/core/class/stats.class.php @@ -55,7 +55,7 @@ abstract class Stats global $conf, $user, $langs; if ($startyear > $endyear) { - return -1; + return array(); } $datay = array(); @@ -156,7 +156,7 @@ abstract class Stats global $conf, $user, $langs; if ($startyear > $endyear) { - return -1; + return array(); } $datay = array(); @@ -237,7 +237,7 @@ abstract class Stats /** * @param int $year year number - * @return int value + * @return array array of values */ protected abstract function getAverageByMonth($year); @@ -251,7 +251,7 @@ abstract class Stats public function getAverageByMonthWithPrevYear($endyear, $startyear) { if ($startyear > $endyear) { - return -1; + return array(); } $datay = array(); @@ -359,7 +359,7 @@ abstract class Stats // phpcs:enable $result = array(); - dol_syslog(get_class($this).'::'.__FUNCTION__."", LOG_DEBUG); + dol_syslog(get_class($this).'::'.__FUNCTION__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -388,7 +388,7 @@ abstract class Stats // phpcs:enable $result = array(); - dol_syslog(get_class($this).'::'.__FUNCTION__."", LOG_DEBUG); + dol_syslog(get_class($this).'::'.__FUNCTION__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -442,7 +442,7 @@ abstract class Stats $result = array(); $res = array(); - dol_syslog(get_class($this).'::'.__FUNCTION__."", LOG_DEBUG); + dol_syslog(get_class($this).'::'.__FUNCTION__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -499,7 +499,7 @@ abstract class Stats $result = array(); $res = array(); - dol_syslog(get_class($this).'::'.__FUNCTION__."", LOG_DEBUG); + dol_syslog(get_class($this).'::'.__FUNCTION__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { @@ -557,7 +557,7 @@ abstract class Stats $result = array(); $res = array(); - dol_syslog(get_class($this).'::'.__FUNCTION__."", LOG_DEBUG); + dol_syslog(get_class($this).'::'.__FUNCTION__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -613,7 +613,7 @@ abstract class Stats $result = array(); - dol_syslog(get_class($this).'::'.__FUNCTION__."", LOG_DEBUG); + dol_syslog(get_class($this).'::'.__FUNCTION__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php index 568ef7b4ace..2315428b37a 100644 --- a/htdocs/core/class/translate.class.php +++ b/htdocs/core/class/translate.class.php @@ -834,7 +834,6 @@ class Translate 'ja'=>'ja_JP', 'lo'=>'lo_LA', 'nb'=>'nb_NO', - 'fa'=>'fa_IR', 'sq'=>'sq_AL', 'sr'=>'sr_RS', 'sv'=>'sv_SE', @@ -933,8 +932,10 @@ class Translate $fonc = 'numberwords'; if (file_exists($newdir.'/functions_'.$fonc.'.lib.php')) { include_once $newdir.'/functions_'.$fonc.'.lib.php'; - $newnumber = numberwords_getLabelFromNumber($this, $number, $isamount); - break; + if (function_exists('numberwords_getLabelFromNumber')) { + $newnumber = numberwords_getLabelFromNumber($this, $number, $isamount); + break; + } } } diff --git a/htdocs/core/class/utils.class.php b/htdocs/core/class/utils.class.php index 521d5ee2092..0241431c8b7 100644 --- a/htdocs/core/class/utils.class.php +++ b/htdocs/core/class/utils.class.php @@ -34,6 +34,9 @@ class Utils */ public $db; + public $error; + public $errors; + public $output; // Used by Cron method to return message public $result; // Used by Cron method to return data @@ -646,12 +649,14 @@ class Utils if (!$errormsg && $keeplastnfiles > 0) { $tmpfiles = dol_dir_list($conf->admin->dir_output.'/backup', 'files', 0, '', '(\.err|\.old|\.sav)$', 'date', SORT_DESC); $i = 0; - foreach ($tmpfiles as $key => $val) { - $i++; - if ($i <= $keeplastnfiles) { - continue; + if (is_array($tmpfiles)) { + foreach ($tmpfiles as $key => $val) { + $i++; + if ($i <= $keeplastnfiles) { + continue; + } + dol_delete_file($val['fullname'], 0, 0, 0, null, false, 0); } - dol_delete_file($val['fullname'], 0, 0, 0, null, false, 0); } } @@ -664,11 +669,11 @@ class Utils * Execute a CLI command. * * @param string $command Command line to execute. - * Warning: The command line is sanitize so can't contains any redirection char '>'. Use param $redirectionfile if you need it. + * Warning: The command line is sanitize by escapeshellcmd(), except if $noescapecommand set, so can't contains any redirection char '>'. Use param $redirectionfile if you need it. * @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 needs you alreay have 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 parameter. 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. @@ -1290,6 +1295,7 @@ class Utils $message = dol_escape_htmltag($langs->trans('MakeSendLocalDatabaseDumpShort')); } + $tmpfiles = array(); require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; if ($filename) { if (dol_is_file($conf->admin->dir_output.'/backup/'.$filename)) { @@ -1298,7 +1304,7 @@ class Utils } else { $tmpfiles = dol_most_recent_file($conf->admin->dir_output.'/backup', $filter); } - if ($tmpfiles) { + if ($tmpfiles && is_array($tmpfiles)) { foreach ($tmpfiles as $key => $val) { if ($key == 'fullname') { $filepath = array($val); diff --git a/htdocs/core/class/validate.class.php b/htdocs/core/class/validate.class.php index 9d8832c36ce..31cf6300aff 100644 --- a/htdocs/core/class/validate.class.php +++ b/htdocs/core/class/validate.class.php @@ -191,7 +191,7 @@ class Validate */ public function isMinLength($string, $length) { - if (!strlen($string) < $length) { + if (strlen($string) < $length) { $this->error = $this->outputLang->trans('RequireMinLength', $length); return false; } diff --git a/htdocs/core/class/vcard.class.php b/htdocs/core/class/vcard.class.php index dbe505a894b..7b5a320f678 100644 --- a/htdocs/core/class/vcard.class.php +++ b/htdocs/core/class/vcard.class.php @@ -31,7 +31,7 @@ */ function encode($string) { - return str_replace(";", "\;", (dol_quoted_printable_encode(utf8_decode($string)))); + return str_replace(";", "\;", (dol_quoted_printable_encode($string))); } @@ -100,14 +100,14 @@ class vCard /** * @var string encoding */ - public $encoding = "ISO-8859-1;ENCODING=QUOTED-PRINTABLE"; + public $encoding = "ENCODING=QUOTED-PRINTABLE"; /** * mise en forme du numero de telephone * * @param int $number numero de telephone - * @param string $type Type + * @param string $type Type ('cell') * @return void */ public function setPhoneNumber($number, $type = "") @@ -117,22 +117,25 @@ class vCard if ($type != "") { $key .= ";".$type; } - $key .= ";CHARSET=".$this->encoding; - $this->properties[$key] = encode($number); + $key .= ";VALUE=uri"; + //$key .= ";".$this->encoding; + $this->properties[$key] = 'tel:'.$number; } /** * mise en forme de la photo * warning NON TESTE ! * - * @param string $type Type + * @param string $type Type 'image/jpeg' or 'JPEG' * @param string $photo Photo * @return void */ public function setPhoto($type, $photo) { // $type = "GIF" | "JPEG" - $this->properties["PHOTO;TYPE=$type;ENCODING=BASE64"] = base64_encode($photo); + //$this->properties["PHOTO;MEDIATYPE=$type;ENCODING=BASE64"] = base64_encode($photo); + $this->properties["PHOTO;MEDIATYPE=$type"] = $photo; // must be url of photo + //$this->properties["PHOTO;TYPE=$type;ENCODING=BASE64"] = base64_encode($photo); // must be content of image } /** @@ -143,7 +146,7 @@ class vCard */ public function setFormattedName($name) { - $this->properties["FN;CHARSET=".$this->encoding] = encode($name); + $this->properties["FN;".$this->encoding] = encode($name); } /** @@ -152,13 +155,14 @@ class vCard * @param string $family Family name * @param string $first First name * @param string $additional Additional (e.g. second name, nick name) - * @param string $prefix Prefix (e.g. "Mr.", "Ms.", "Prof.") + * @param string $prefix Title prefix (e.g. "Mr.", "Ms.", "Prof.") * @param string $suffix Suffix (e.g. "sen." for senior, "jun." for junior) * @return void */ public function setName($family = "", $first = "", $additional = "", $prefix = "", $suffix = "") { - $this->properties["N;CHARSET=".$this->encoding] = encode($family).";".encode($first).";".encode($additional).";".encode($prefix).";".encode($suffix); + //$this->properties["N;".$this->encoding] = encode($family).";".encode($first).";".encode($additional).";".encode($prefix).";".encode($suffix); + $this->properties["N"] = encode($family).";".encode($first).";".encode($additional).";".encode($prefix).";".encode($suffix); $this->filename = "$first%20$family.vcf"; if (empty($this->properties["FN"])) { $this->setFormattedName(trim("$prefix $first $additional $family $suffix")); @@ -173,12 +177,13 @@ class vCard */ public function setBirthday($date) { - // $date format is YYYY-MM-DD - RFC 2425 and RFC 2426 - $this->properties["BDAY"] = dol_print_date($date, 'dayrfc'); + // $date format is YYYY-MM-DD - RFC 2425 and RFC 2426 for vcard v3 + // $date format is YYYYMMDD or ISO8601 for vcard v4 + $this->properties["BDAY"] = dol_print_date($date, 'dayxcard'); } /** - * mise en forme de l'adresse + * Address * * @param string $postoffice Postoffice * @param string $extended Extended @@ -188,25 +193,29 @@ class vCard * @param string $zip Zip * @param string $country Country * @param string $type Type + * @param string $label Label * @return void */ - public function setAddress($postoffice = "", $extended = "", $street = "", $city = "", $region = "", $zip = "", $country = "", $type = "HOME;POSTAL") + public function setAddress($postoffice = "", $extended = "", $street = "", $city = "", $region = "", $zip = "", $country = "", $type = "", $label = "") { // $type may be DOM | INTL | POSTAL | PARCEL | HOME | WORK or any combination of these: e.g. "WORK;PARCEL;POSTAL" $key = "ADR"; if ($type != "") { $key .= ";".$type; } - $key .= ";CHARSET=".$this->encoding; - $this->properties[$key] = ";".encode($extended).";".encode($street).";".encode($city).";".encode($region).";".encode($zip).";".encode($country); + if ($label != "") { + $key .= ';LABEL="'.encode($label).'"'; + } + $key .= ";".$this->encoding; + $this->properties[$key] = encode($postoffice).";".encode($extended).";".encode($street).";".encode($city).";".encode($region).";".encode($zip).";".encode($country); - //if ($this->properties["LABEL;".$type.";CHARSET=".$this->encoding] == '') { + //if ($this->properties["LABEL;".$type.";".$this->encoding] == '') { //$this->setLabel($postoffice, $extended, $street, $city, $region, $zip, $country, $type); //} } /** - * mise en forme du label + * Address (old standard) * * @param string $postoffice Postoffice * @param string $extended Extended @@ -217,8 +226,9 @@ class vCard * @param string $country Country * @param string $type Type * @return void + * @deprecated */ - public function setLabel($postoffice = "", $extended = "", $street = "", $city = "", $region = "", $zip = "", $country = "", $type = "HOME;POSTAL") + public function setLabel($postoffice = "", $extended = "", $street = "", $city = "", $region = "", $zip = "", $country = "", $type = "HOME") { $label = ""; if ($postoffice != "") { @@ -243,7 +253,7 @@ class vCard $country .= "$country\r\n"; } - $this->properties["LABEL;$type;CHARSET=".$this->encoding] = encode($label); + $this->properties["LABEL;$type;".$this->encoding] = encode($label); } /** @@ -253,7 +263,7 @@ class vCard * @param string $type (optional) The type of the e-mail (typical "PREF;INTERNET" or "INTERNET") * @return void */ - public function setEmail($address, $type = "TYPE=INTERNET;PREF") + public function setEmail($address, $type = "") { $key = "EMAIL"; if ($type != "") { @@ -270,7 +280,7 @@ class vCard */ public function setNote($note) { - $this->properties["NOTE;CHARSET=".$this->encoding] = encode($note); + $this->properties["NOTE;".$this->encoding] = encode($note); } /** @@ -281,7 +291,7 @@ class vCard */ public function setTitle($title) { - $this->properties["TITLE;CHARSET=".$this->encoding] = encode($title); + $this->properties["TITLE;".$this->encoding] = encode($title); } @@ -293,7 +303,7 @@ class vCard */ public function setOrg($org) { - $this->properties["ORG;CHARSET=".$this->encoding] = encode($org); + $this->properties["ORG;".$this->encoding] = encode($org); } @@ -305,7 +315,7 @@ class vCard */ public function setProdId($prodid) { - $this->properties["PRODID;CHARSET=".$this->encoding] = encode($prodid); + $this->properties["PRODID"] = encode($prodid); } @@ -317,7 +327,7 @@ class vCard */ public function setUID($uid) { - $this->properties["UID;CHARSET=".$this->encoding] = encode($uid); + $this->properties["UID"] = encode($uid); } @@ -346,13 +356,14 @@ class vCard public function getVCard() { $text = "BEGIN:VCARD\r\n"; - $text .= "VERSION:3.0\r\n"; + $text .= "VERSION:4.0\r\n"; // With V4, all encoding are UTF-8 //$text.= "VERSION:2.1\r\n"; foreach ($this->properties as $key => $value) { - $text .= "$key:$value\r\n"; + $newkey = preg_replace('/-.*$/', '', $key); // remove suffix -twitter, -facebook, ... + $text .= $newkey.":".$value."\r\n"; } - $text .= "REV:".date("Y-m-d")."T".date("H:i:s")."Z\r\n"; - $text .= "MAILER: Dolibarr\r\n"; + $text .= "REV:".date("Ymd")."T".date("His")."Z\r\n"; + //$text .= "MAILER: Dolibarr\r\n"; $text .= "END:VCARD\r\n"; return $text; } @@ -367,6 +378,165 @@ class vCard return $this->filename; } + /** + * Return a VCARD string + * See RFC https://datatracker.ietf.org/doc/html/rfc6350 + * + * @param Object $object Object (User or Contact) + * @param Societe|null $company Company. May be null + * @param Translate $langs Lang object + * @param string $urlphoto Full public URL of photo + * @return string String + */ + public function buildVCardString($object, $company, $langs, $urlphoto = '') + { + global $dolibarr_main_instance_unique_id; + + $this->setProdId('Dolibarr '.DOL_VERSION); + + $this->setUid('DOLIBARR-USERID-'.dol_trunc(md5('vcard'.$dolibarr_main_instance_unique_id), 8, 'right', 'UTF-8', 1).'-'.$object->id); + $this->setName($object->lastname, $object->firstname, "", $object->civility_code, ""); + $this->setFormattedName($object->getFullName($langs, 1)); + + if ($urlphoto) { + $mimetype = dol_mimetype($urlphoto); + if ($mimetype) { + $this->setPhoto($mimetype, $urlphoto); + } + } + + if ($object->office_phone) { + $this->setPhoneNumber($object->office_phone, "TYPE=WORK,VOICE"); + } + /* disabled + if ($object->personal_mobile) { + $this->setPhoneNumber($object->personal_mobile, "TYPE=CELL,VOICE"); + }*/ + if ($object->user_mobile) { + $this->setPhoneNumber($object->user_mobile, "TYPE=CELL,VOICE"); + } + if ($object->office_fax) { + $this->setPhoneNumber($object->office_fax, "TYPE=WORK,FAX"); + } + + if (!empty($object->socialnetworks)) { + foreach ($object->socialnetworks as $key => $val) { + $urlsn = ''; + if ($key == 'linkedin') { + if (!preg_match('/^http/', $val)) { + $urlsn = 'https://www.'.$key.'.com/company/'.urlencode($val); + } else { + $urlsn = $val; + } + } elseif ($key == 'youtube') { + if (!preg_match('/^http/', $val)) { + $urlsn = 'https://www.'.$key.'.com/user/'.urlencode($val); + } else { + $urlsn = $val; + } + } else { + if (!preg_match('/^http/', $val)) { + $urlsn = 'https://www.'.$key.'.com/'.urlencode($val); + } else { + $urlsn = $val; + } + } + if ($urlsn) { + $this->properties["SOCIALPROFILE;TYPE=WORK-".$key] = $key.':'.$urlsn; + } + } + } + + $country = $object->country_code ? $object->country : ''; + + if ($object->address || $object->town || $object->state || $object->zip || $object->country) { + $this->setAddress("", "", $object->address, $object->town, $object->state, $object->zip, $country, ""); + //$this->setLabel("", "", $object->address, $object->town, $object->state, $object->zip, $country, "TYPE=HOME"); + } + + if ($object->email) { + $this->setEmail($object->email, "TYPE=WORK"); + } + /* disabled + if ($object->personal_email) { + $this->setEmail($object->personal_email, "TYPE=HOME"); + } */ + if ($object->note_public) { + $this->setNote($object->note_public); + } + if ($object->job) { + $this->setTitle($object->job); + } + + // For user, $object->url is not defined + // For contact, $object->url is not defined + if (!empty($object->url)) { + $this->setURL($object->url, ""); + } + + if (is_object($company)) { + // Si user linked to a thirdparty and not a physical people + if ($company->typent_code != 'TE_PRIVATE') { + $this->setOrg($company->name); + } + + $this->setURL($company->url, ""); + + if ($company->phone && $company->phone != $object->office_phone) { + $this->setPhoneNumber($company->phone, "TYPE=WORK,VOICE"); + } + if ($company->fax && $company->fax != $object->office_fax) { + $this->setPhoneNumber($company->fax, "TYPE=WORK,FAX"); + } + if ($company->address || $company->town || $company->state || $company->zip || $company->country) { + $this->setAddress("", "", $company->address, $company->town, $company->state, $company->zip, $company->country, "TYPE=WORK"); + } + + if ($company->email && $company->email != $object->email) { + $this->setEmail($company->email, "TYPE=WORK"); + } + + /* + if (!empty($company->socialnetworks)) { + foreach ($company->socialnetworks as $key => $val) { + $urlsn = ''; + if ($key == 'linkedin') { + if (!preg_match('/^http/', $val)) { + $urlsn = 'https://www.'.$key.'.com/company/'.urlencode($val); + } else { + $urlsn = $val; + } + } elseif ($key == 'youtube') { + if (!preg_match('/^http/', $val)) { + $urlsn = 'https://www.'.$key.'.com/user/'.urlencode($val); + } else { + $urlsn = $val; + } + } else { + if (!preg_match('/^http/', $val)) { + $urlsn = 'https://www.'.$key.'.com/'.urlencode($val); + } else { + $urlsn = $val; + } + } + if ($urlsn) { + $this->properties["socialProfile;type=".$key] = $urlsn; + } + } + } + */ + } + + // Birthday + if ($object->birth) { + $this->setBirthday($object->birth); + } + + // Return VCard string + return $this->getVCard(); + } + + /* Example from Microsoft Outlook 2019 BEGIN:VCARD diff --git a/htdocs/core/db/Database.interface.php b/htdocs/core/db/Database.interface.php index eda21d3cd95..180f928eac0 100644 --- a/htdocs/core/db/Database.interface.php +++ b/htdocs/core/db/Database.interface.php @@ -173,20 +173,11 @@ interface Database /** * Escape a string to insert data * - * @param string $stringtoencode String to escape - * @return string String escaped + * @param string $stringtoencode String to escape + * @return string String escaped */ public function escape($stringtoencode); - /** - * Escape a string to insert data - * - * @param string $stringtoencode String to escape - * @return string String escaped - * @deprecated - */ - public function escapeunderscore($stringtoencode); - /** * Escape a string to insert data into a like * diff --git a/htdocs/core/db/DoliDB.class.php b/htdocs/core/db/DoliDB.class.php index e2659e224a4..30b3ea76975 100644 --- a/htdocs/core/db/DoliDB.class.php +++ b/htdocs/core/db/DoliDB.class.php @@ -29,7 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/db/Database.interface.php'; */ abstract class DoliDB implements Database { - /** @var bool|resource|SQLite3|PgSql\connection Database handler */ + /** @var bool|resource|mysqli|SQLite3|PgSql\connection Database handler */ public $db; /** @var string Database type */ public $type; @@ -37,8 +37,10 @@ abstract class DoliDB implements Database public $forcecharset = 'utf8'; /** @var string Collate used to force collate when creating database */ public $forcecollate = 'utf8_unicode_ci'; + /** @var resource Resultset of last query */ private $_results; + /** @var bool true if connected, else false */ public $connected; /** @var bool true if database selected, else false */ @@ -73,7 +75,8 @@ abstract class DoliDB implements Database /** - * Return the DB prefix + * Return the DB prefix found into prefix_db (if it was set manually by doing $dbhandler->prefix_db=...). + * Otherwise return MAIN_DB_PREFIX (common use). * * @return string The DB prefix */ diff --git a/htdocs/core/db/mysqli.class.php b/htdocs/core/db/mysqli.class.php index 9393f10489f..593fa770536 100644 --- a/htdocs/core/db/mysqli.class.php +++ b/htdocs/core/db/mysqli.class.php @@ -36,10 +36,12 @@ class DoliDBMysqli extends DoliDB public $db; //! Database type public $type = 'mysqli'; + //! Database label const LABEL = 'MySQL or MariaDB'; //! Version min database const VERSIONMIN = '5.0.3'; + /** @var bool|mysqli_result Resultset of last query */ private $_results; @@ -474,18 +476,6 @@ class DoliDBMysqli extends DoliDB return $this->db->real_escape_string((string) $stringtoencode); } - /** - * Escape a string to insert data - * - * @param string $stringtoencode String to escape - * @return string String escaped - * @deprecated - */ - public function escapeunderscore($stringtoencode) - { - return str_replace('_', '\_', (string) $stringtoencode); - } - /** * Escape a string to insert data into a like * @@ -715,7 +705,7 @@ class DoliDBMysqli extends DoliDB } $tmpdatabase = preg_replace('/[^a-z0-9\.\-\_]/i', '', $database); - $sql = "SHOW TABLES FROM ".$tmpdatabase." ".$like.";"; + $sql = "SHOW TABLES FROM `".$tmpdatabase."` ".$like.";"; //print $sql; $result = $this->query($sql); if ($result) { diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php index 28ac15a43ff..069afeca4ff 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -721,18 +721,6 @@ class DoliDBPgsql extends DoliDB return pg_escape_string($stringtoencode); } - /** - * Escape a string to insert data - * - * @param string $stringtoencode String to escape - * @return string String escaped - * @deprecated - */ - public function escapeunderscore($stringtoencode) - { - return str_replace('_', '\_', (string) $stringtoencode); - } - /** * Escape a string to insert data into a like * diff --git a/htdocs/core/db/sqlite3.class.php b/htdocs/core/db/sqlite3.class.php index e31eeffe457..8c10c26d464 100644 --- a/htdocs/core/db/sqlite3.class.php +++ b/htdocs/core/db/sqlite3.class.php @@ -649,18 +649,6 @@ class DoliDBSqlite3 extends DoliDB return Sqlite3::escapeString($stringtoencode); } - /** - * Escape a string to insert data - * - * @param string $stringtoencode String to escape - * @return string String escaped - * @deprecated - */ - public function escapeunderscore($stringtoencode) - { - return str_replace('_', '\_', (string) $stringtoencode); - } - /** * Escape a string to insert data into a like * diff --git a/htdocs/core/doxygen.php b/htdocs/core/doxygen.php index ac66362a89f..1e66b348ef8 100644 --- a/htdocs/core/doxygen.php +++ b/htdocs/core/doxygen.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2008-2022 Laurent Destailleur * Copyright (C) 2009 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -20,10 +20,10 @@ /** * \file htdocs/core/doxygen.php * \ingroup core - * \mainpage Dolibarr project + * \mainpage Dolibarr documentation of source code * * This is source documentation for Dolibarr ERP/CRM.
- * This documentation can be built or updated running the script dolibarr-doxygen-build.pl or from Eclipse with Doxygen plugin.
+ * This documentation can be built or updated running the script build/doxygen/dolibarr-doxygen-build.pl or from Eclipse with Doxygen plugin.
*
* Dolibarr official web site: www.dolibarr.org
*
diff --git a/htdocs/core/filemanagerdol/browser/default/frmfolders.php b/htdocs/core/filemanagerdol/browser/default/frmfolders.php index d8d1fae179a..a1b03693324 100644 --- a/htdocs/core/filemanagerdol/browser/default/frmfolders.php +++ b/htdocs/core/filemanagerdol/browser/default/frmfolders.php @@ -53,7 +53,7 @@ top_httphead(); --> diff --git a/htdocs/core/filemanagerdol/connectors/php/connector.lib.php b/htdocs/core/filemanagerdol/connectors/php/connector.lib.php index 0377413f857..75c4d1e3e08 100644 --- a/htdocs/core/filemanagerdol/connectors/php/connector.lib.php +++ b/htdocs/core/filemanagerdol/connectors/php/connector.lib.php @@ -286,8 +286,6 @@ function CreateFolder($resourceType, $currentFolder) echo ''; } -// @CHANGE -//function FileUpload( $resourceType, $currentFolder, $sCommand ) /** * FileUpload * @@ -299,6 +297,8 @@ function CreateFolder($resourceType, $currentFolder) */ function FileUpload($resourceType, $currentFolder, $sCommand, $CKEcallback = '') { + global $user; + if (!isset($_FILES)) { global $_FILES; } @@ -328,26 +328,23 @@ function FileUpload($resourceType, $currentFolder, $sCommand, $CKEcallback = '') $sExtension = substr($sFileName, (strrpos($sFileName, '.') + 1)); $sExtension = strtolower($sExtension); - //var_dump($Config); - /* - if (isset($Config['SecureImageUploads'])) { - if (($isImageValid = IsImageValid($oFile['tmp_name'], $sExtension)) === false) { - $sErrorNumber = '202'; - } - } - - if (isset($Config['HtmlExtensions'])) { - if (!IsHtmlExtension($sExtension, $Config['HtmlExtensions']) && - ($detectHtml = DetectHtml($oFile['tmp_name'])) === true) { - $sErrorNumber = '202'; - } - } - */ - + // Check permission + $permissiontouploadmediaisok = 1; + if (!empty($user->socid)) { + $permissiontouploadmediaisok = 0; + } + /*if (!$user->hasRight('website', 'write') && !$user->hasRight('mailing', 'write')) { + $permissiontouploadmediaisok = 0; + }*/ + if (!$permissiontouploadmediaisok) { + dol_syslog("connector.lib.php Try to upload a file with no permission"); + $sErrorNumber = '202'; + } include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; //var_dump($sFileName); var_dump(image_format_supported($sFileName));exit; - $isImageValid = (image_format_supported($sFileName) >= 0 ? true : false); + $imgsupported = image_format_supported($sFileName); + $isImageValid = ($imgsupported >= 0 ? true : false); if (!$isImageValid) { $sErrorNumber = '202'; } @@ -391,7 +388,7 @@ function FileUpload($resourceType, $currentFolder, $sCommand, $CKEcallback = '') if (file_exists($sFilePath)) { //previous checks failed, try once again - if (isset($isImageValid) && $isImageValid === -1 && IsImageValid($sFilePath, $sExtension) === false) { + if (isset($isImageValid) && $imgsupported === -1 && IsImageValid($sFilePath, $sExtension) === false) { dol_syslog("connector.lib.php IsImageValid is ko"); @unlink($sFilePath); $sErrorNumber = '202'; @@ -558,7 +555,9 @@ function GetParentFolder($folderPath) */ function CreateServerFolder($folderPath, $lastFolder = null) { + global $user; global $Config; + $sParent = GetParentFolder($folderPath); // Ensure the folder path has no double-slashes, or mkdir may fail on certain platforms @@ -566,6 +565,17 @@ function CreateServerFolder($folderPath, $lastFolder = null) $folderPath = str_replace('//', '/', $folderPath); } + $permissiontouploadmediaisok = 1; + if (!empty($user->socid)) { + $permissiontouploadmediaisok = 0; + } + /*if (!$user->hasRight('website', 'write') && !$user->hasRight('mailing', 'write')) { + $permissiontouploadmediaisok = 0; + }*/ + if (!$permissiontouploadmediaisok) { + return 'Bad permissions to create a folder in media directory'; + } + // Check if the parent exists, or create it. if (!empty($sParent) && !file_exists($sParent)) { //prevents agains infinite loop when we can't create root folder diff --git a/htdocs/core/js/lib_foot.js.php b/htdocs/core/js/lib_foot.js.php index 3310554e530..c037b86a7b9 100644 --- a/htdocs/core/js/lib_foot.js.php +++ b/htdocs/core/js/lib_foot.js.php @@ -110,6 +110,7 @@ if (!defined('JS_JQUERY_DISABLE_DROPDOWN')) { console.log("toggle dropdown dt a"); //$(this).parent().parent().find(\'dd ul\').slideToggle(\'fast\'); + $(".ulselectedfields").removeClass("open"); $(this).parent().parent().find(\'dd ul\').toggleClass("open"); if ($(this).parent().parent().find(\'dd ul\').hasClass("open")) { diff --git a/htdocs/core/lib/accounting.lib.php b/htdocs/core/lib/accounting.lib.php index 7d4483de6cf..5c1f0b078a3 100644 --- a/htdocs/core/lib/accounting.lib.php +++ b/htdocs/core/lib/accounting.lib.php @@ -274,24 +274,27 @@ function getDefaultDatesForTransfer() { global $db, $conf; + $date_start = ''; + $date_end = ''; $pastmonth = 0; $pastmonthyear = 0; // Period by default on transfer (0: previous month | 1: current month | 2: fiscal year) $periodbydefaultontransfer = (empty($conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER) ? 0 : $conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER); - if ($periodbydefaultontransfer == 2) { - $sql = "SELECT date_start, date_end FROM ".MAIN_DB_PREFIX."accounting_fiscalyear "; + if ($periodbydefaultontransfer == 2) { // fiscal year + $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); - $date_start = strtotime($fiscalYear->date_start); - $date_end = strtotime($fiscalYear->date_end); + $obj = $db->fetch_object($res); + + $date_start = $db->jdate($obj->date_start); + $date_end = $db->jdate($obj->date_end); } else { - $month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1); + $month_start = getDolGlobalInt('SOCIETE_FISCAL_MONTH_START', 1); $year_start = dol_print_date(dol_now(), '%Y'); - if ($conf->global->SOCIETE_FISCAL_MONTH_START > dol_print_date(dol_now(), '%m')) { + if ($month_start > dol_print_date(dol_now(), '%m')) { $year_start = $year_start - 1; } $year_end = $year_start + 1; @@ -303,17 +306,17 @@ function getDefaultDatesForTransfer() $date_start = dol_mktime(0, 0, 0, $month_start, 1, $year_start); $date_end = dol_get_last_day($year_end, $month_end); } - } elseif ($periodbydefaultontransfer == 1) { - $year_current = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); - $pastmonth = strftime("%m", dol_now()); + } elseif ($periodbydefaultontransfer == 1) { // current month + $year_current = (int) dol_print_date(dol_now('gmt'), "%Y", 'gmt'); + $pastmonth = (int) dol_print_date(dol_now('gmt'), '%m', 'gmt'); $pastmonthyear = $year_current; if ($pastmonth == 0) { $pastmonth = 12; $pastmonthyear--; } - } else { - $year_current = dol_print_date(dol_now('gmt'), "%Y", 'gmt'); - $pastmonth = strftime("%m", dol_now()) - 1; + } else { // previous month + $year_current = (int) dol_print_date(dol_now('gmt'), "%Y", 'gmt'); + $pastmonth = (int) dol_print_date(dol_now('gmt'), '%m', 'gmt') - 1; $pastmonthyear = $year_current; if ($pastmonth == 0) { $pastmonth = 12; diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index 2ce3094f41b..92895793082 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -1084,11 +1084,12 @@ function purgeSessions($mysessionid) /** * Enable a module * - * @param string $value Name of module to activate - * @param int $withdeps Activate/Disable also all dependencies - * @return array array('nbmodules'=>nb modules activated with success, 'errors=>array of error messages, 'nbperms'=>Nb permission added); + * @param string $value Name of module to activate + * @param int $withdeps Activate/Disable also all dependencies + * @param int $noconfverification Remove verification of $conf variable for module + * @return array array('nbmodules'=>nb modules activated with success, 'errors=>array of error messages, 'nbperms'=>Nb permission added); */ -function activateModule($value, $withdeps = 1) +function activateModule($value, $withdeps = 1, $noconfverification = 0) { global $db, $langs, $conf, $mysoc; @@ -1144,8 +1145,10 @@ function activateModule($value, $withdeps = 1) } $const_name = $objMod->const_name; - if (!empty($conf->global->$const_name)) { - return $ret; + if ($noconfverification == 0) { + if (!empty($conf->global->$const_name)) { + return $ret; + } } $result = $objMod->init(); // Enable module @@ -1840,10 +1843,12 @@ function showModulesExludedForExternal($modules) global $conf, $langs; $text = $langs->trans("OnlyFollowingModulesAreOpenedToExternalUsers"); - $listofmodules = explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); + $listofmodules = explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); // List of modules qualified for external user management + $i = 0; if (!empty($modules)) { - foreach ($modules as $module) { + $tmpmodules = dol_sort_array($modules, 'module_position'); + foreach ($tmpmodules as $module) { // Loop on array of modules $moduleconst = $module->const_name; $modulename = strtolower($module->name); //print 'modulename='.$modulename; @@ -1860,9 +1865,16 @@ function showModulesExludedForExternal($modules) $text .= ' '; } $i++; - $text .= $langs->trans('Module'.$module->numero.'Name'); + + $tmptext = $langs->trans('Module'.$module->numero.'Name'); + if ($tmptext != 'Module'.$module->numero.'Name') { + $text .= $langs->trans('Module'.$module->numero.'Name'); + } else { + $text .= $langs->trans($module->name); + } } } + return $text; } diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php index cc871de9709..cacd22269ad 100644 --- a/htdocs/core/lib/ajax.lib.php +++ b/htdocs/core/lib/ajax.lib.php @@ -194,9 +194,10 @@ function ajax_autocompleter($selected, $htmlname, $url, $urloption = '', $minLen $("#'.$htmlnamejquery.'").attr("data-tvatx", ui.item.tva_tx); $("#'.$htmlnamejquery.'").attr("data-default-vat-code", ui.item.default_vat_code); '; - if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) { + if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) { $script .= ' // For customer price when PRODUIT_CUSTOMER_PRICES_BY_QTY is on + console.log("PRODUIT_CUSTOMER_PRICES_BY_QTY is on, propagate also prices by quantity into data-pbqxxx properties"); $("#'.$htmlnamejquery.'").attr("data-pbq", ui.item.pbq); $("#'.$htmlnamejquery.'").attr("data-pbqup", ui.item.price_ht); $("#'.$htmlnamejquery.'").attr("data-pbqbase", ui.item.pricebasetype); @@ -479,8 +480,11 @@ function ajax_combobox($htmlname, $events = array(), $minLengthToAutocomplete = ';*/ + + print ''; + + // Note + print '
'; + + // Warning + print ''; + + print "\n"; + } + //} + //else + //{ + //$level--; + //} + } + + return $totalforeachline; +} + + /** * Output a task line into a pertime intput mode * @@ -1324,7 +1568,7 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr if (!empty($arrayfields['timeconsumed']['checked'])) { // Time spent by everybody print ''; diff --git a/htdocs/core/lib/propal.lib.php b/htdocs/core/lib/propal.lib.php index 9d1401ea47a..3d380a3904a 100644 --- a/htdocs/core/lib/propal.lib.php +++ b/htdocs/core/lib/propal.lib.php @@ -42,7 +42,7 @@ function propal_prepare_head($object) $head[$h][2] = 'comm'; $h++; - if ((empty($conf->commande->enabled) && ((isModEnabled("expedition") && !empty($conf->expedition_bon->enabled) && $user->rights->expedition->lire) + if ((empty($conf->commande->enabled) && ((isModEnabled("expedition") && isModEnabled('expedition_bon') && $user->rights->expedition->lire) || (isModEnabled("expedition") && !empty($conf->delivery_note->enabled) && $user->rights->expedition->delivery->lire)))) { $langs->load("sendings"); $text = ''; diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index 3ec94953284..c372f617237 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -201,7 +201,7 @@ function dolDecrypt($chain, $key = '') * @param string $chain String to hash * @param string $type Type of hash ('0':auto will use MAIN_SECURITY_HASH_ALGO else md5, '1':sha1, '2':sha1+md5, '3':md5, '4': for OpenLdap, '5':sha256, '6':password_hash). Use '3' here, if hash is not needed for security purpose, for security need, prefer '0'. * @return string Hash of string - * @see getRandomPassword() + * @see getRandomPassword(), dol_verifyHash() */ function dol_hash($chain, $type = '0') { @@ -249,6 +249,7 @@ function dol_hash($chain, $type = '0') * @param string $hash hash to compare * @param string $type Type of hash ('0':auto, '1':sha1, '2':sha1+md5, '3':md5, '4': for OpenLdap, '5':sha256). Use '3' here, if hash is not needed for security purpose, for security need, prefer '0'. * @return bool True if the computed hash is the same as the given one + * @see dol_hash() */ function dol_verifyHash($chain, $hash, $type = '0') { @@ -343,7 +344,9 @@ function restrictedArea(User $user, $features, $object = 0, $tableandshare = '', } else { $objectid = $object; // $objectid can be X or 'X,Y,Z' } - $objectid = preg_replace('/[^0-9\.\,]/', '', $objectid); // For the case value is coming from a non sanitized user input + if ($objectid) { + $objectid = preg_replace('/[^0-9\.\,]/', '', $objectid); // For the case value is coming from a non sanitized user input + } //dol_syslog("functions.lib:restrictedArea $feature, $objectid, $dbtablename, $feature2, $dbt_socfield, $dbt_select, $isdraft"); //print "user_id=".$user->id.", features=".$features.", feature2=".$feature2.", objectid=".$objectid; @@ -366,7 +369,7 @@ function restrictedArea(User $user, $features, $object = 0, $tableandshare = '', if ($features == 'subscription') { $features = 'adherent'; $feature2 = 'cotisation'; - }; + } if ($features == 'websitepage') { $features = 'website'; $tableandshare = 'website_page'; @@ -465,6 +468,11 @@ function restrictedArea(User $user, $features, $object = 0, $tableandshare = '', $readok = 0; $nbko++; } + } elseif ($feature == 'payment_sc') { + if (empty($user->rights->tax->charges->lire)) { + $readok = 0; + $nbko++; + } } elseif (!empty($feature2)) { // This is for permissions on 2 levels $tmpreadok = 1; foreach ($feature2 as $subfeature) { @@ -647,6 +655,10 @@ function restrictedArea(User $user, $features, $object = 0, $tableandshare = '', if (!$user->rights->facture->paiement) { $deleteok = 0; } + } elseif ($feature == 'payment_sc') { + if (!$user->rights->tax->charges->creer) { + $deleteok = 0; + } } elseif ($feature == 'banque') { if (empty($user->rights->banque->modifier)) { $deleteok = 0; @@ -722,7 +734,11 @@ function restrictedArea(User $user, $features, $object = 0, $tableandshare = '', if ($mode) { return $ok ? 1 : 0; } else { - return $ok ? 1 : accessforbidden('', 1, 1, 0, $params); + if ($ok) { + return 1; + } else { + accessforbidden('', 1, 1, 0, $params); + } } } diff --git a/htdocs/core/lib/security2.lib.php b/htdocs/core/lib/security2.lib.php index b33ad1333ef..93da106aebd 100644 --- a/htdocs/core/lib/security2.lib.php +++ b/htdocs/core/lib/security2.lib.php @@ -52,12 +52,11 @@ function dol_getwebuser($mode) * @param string $entitytotest Instance of data we must check * @param array $authmode Array list of selected authentication mode array('http', 'dolibarr', 'xxx'...) * @param string $context Context checkLoginPassEntity was created for ('api', 'dav', 'ws', '') - * @return string Login or '' + * @return string Login or '' or '--bad-login-validity--' */ function checkLoginPassEntity($usertotest, $passwordtotest, $entitytotest, $authmode, $context = '') { global $conf, $langs; - //global $dolauthmode; // To return authentication finally used // Check parameters if ($entitytotest == '') { @@ -97,13 +96,14 @@ function checkLoginPassEntity($usertotest, $passwordtotest, $entitytotest, $auth // Call function to check user/password $function = 'check_user_password_'.$mode; $login = call_user_func($function, $usertotest, $passwordtotest, $entitytotest, $context); - if ($login && $login != '--bad-login-validity--') { // Login is successfull + if ($login && $login != '--bad-login-validity--') { + // Login is successfull with this method $test = false; // To stop once at first login success $conf->authmode = $mode; // This properties is defined only when logged to say what mode was successfully used - $dol_tz = GETPOST('tz'); + /*$dol_tz = GETPOST('tz'); $dol_dst = GETPOST('dst'); $dol_screenwidth = GETPOST('screenwidth'); - $dol_screenheight = GETPOST('screenheight'); + $dol_screenheight = GETPOST('screenheight');*/ } } else { dol_syslog("Authentication KO - failed to load file '".$authfile."'", LOG_ERR); @@ -561,10 +561,11 @@ function getRandomPassword($generic = false, $replaceambiguouschars = null, $len * * @param string $htmlname HTML name of element to insert key into * @param string $htmlnameofbutton HTML name of button + * @param int $generic 1=Return a generic pass, 0=Return a pass following setup rules * @return string HTML javascript code to set a password * @see getRandomPassword() */ -function dolJSToSetRandomPassword($htmlname, $htmlnameofbutton = 'generate_token') +function dolJSToSetRandomPassword($htmlname, $htmlnameofbutton = 'generate_token', $generic = 1) { global $conf; @@ -572,10 +573,10 @@ function dolJSToSetRandomPassword($htmlname, $htmlnameofbutton = 'generate_token print "\n".' -global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { print 'global->PRODUCT_USE_UNITS)) { + if (getDolGlobalInt('PRODUCT_USE_UNITS')) { $coldisplay++; print ''; +// Vendor price ref if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier' || $object->element == 'invoice_supplier_rec') { // We must have same test in printObjectLines print ''; } + +$tooltiponprice = ''; +$tooltiponpriceend = ''; +if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { + $tooltiponprice = $langs->transcountry("TotalHT", $mysoc->country_code).'='.price($line->total_ht); + $tooltiponprice .= '
'.$langs->transcountry("TotalVAT", ($senderissupplier ? $object->thirdparty->country_code : $mysoc->country_code)).'='.price($line->total_tva); + if (is_object($object->thirdparty)) { + if ($senderissupplier) { + $seller = $object->thirdparty; + $buyer = $mysoc; + } else { + $seller = $mysoc; + $buyer = $object->thirdparty; + } + + if ($mysoc->useLocalTax(1)) { + if (($seller->country_code == $buyer->country_code) || $line->total_localtax1 || $seller->useLocalTax(1)) { + $tooltiponprice .= '
'.$langs->transcountry("TotalLT1", $seller->country_code).'='.price($line->total_localtax1); + } else { + $tooltiponprice .= '
'.$langs->transcountry("TotalLT1", $seller->country_code).'='.$langs->trans($senderissupplier ? "NotUsedForThisVendor" : "NotUsedForThisCustomer").''; + } + } + if ($mysoc->useLocalTax(2)) { + if (($seller->country_code == $buyer->thirdparty->country_code) || $line->total_localtax2 || $seller->useLocalTax(2)) { + $tooltiponprice .= '
'.$langs->transcountry("TotalLT2", $seller->country_code).'='.price($line->total_localtax2); + } else { + $tooltiponprice .= '
'.$langs->transcountry("TotalLT2", $seller->country_code).'='.$langs->trans($senderissupplier ? "NotUsedForThisVendor" : "NotUsedForThisCustomer").''; + } + } + } + $tooltiponprice .= '
'.$langs->transcountry("TotalTTC", $mysoc->country_code).'='.price($line->total_ttc); + + $tooltiponprice = ''; + $tooltiponpriceend = ''; +} + // VAT Rate print ' @@ -344,53 +382,24 @@ if ($usemargins && isModEnabled('margin') && empty($user->socid)) { special_code == 3) { ?> '; $coldisplay++; - if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $tooltiponprice = $langs->transcountry("TotalHT", $mysoc->country_code).'='.price($line->total_ht); - $tooltiponprice .= '
'.$langs->transcountry("TotalVAT", ($senderissupplier ? $object->thirdparty->country_code : $mysoc->country_code)).'='.price($line->total_tva); - if (is_object($object->thirdparty)) { - if ($senderissupplier) { - $seller = $object->thirdparty; - $buyer = $mysoc; - } else { - $seller = $mysoc; - $buyer = $object->thirdparty; - } - - if ($mysoc->useLocalTax(1)) { - if (($seller->country_code == $buyer->country_code) || $line->total_localtax1 || $seller->useLocalTax(1)) { - $tooltiponprice .= '
'.$langs->transcountry("TotalLT1", $seller->country_code).'='.price($line->total_localtax1); - } else { - $tooltiponprice .= '
'.$langs->transcountry("TotalLT1", $seller->country_code).'='.$langs->trans($senderissupplier ? "NotUsedForThisSupplier" : "NotUsedForThisCustomer").''; - } - } - if ($mysoc->useLocalTax(2)) { - if (($seller->country_code == $buyer->thirdparty->country_code) || $line->total_localtax2 || $seller->useLocalTax(2)) { - $tooltiponprice .= '
'.$langs->transcountry("TotalLT2", $seller->country_code).'='.price($line->total_localtax2); - } else { - $tooltiponprice .= '
'.$langs->transcountry("TotalLT2", $seller->country_code).'='.$langs->trans($senderissupplier ? "NotUsedForThisSupplier" : "NotUsedForThisCustomer").''; - } - } - } - $tooltiponprice .= '
'.$langs->transcountry("TotalTTC", $mysoc->country_code).'='.price($line->total_ttc); - - print ''; - } + print $tooltiponprice; print price($sign * $line->total_ht); - if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - print ''; - } + print $tooltiponpriceend; print ''; if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { print ''; $coldisplay++; } } + +// Price inc tax if ($outputalsopricetotalwithtax) { print ''; $coldisplay++; @@ -405,6 +414,7 @@ if ($this->statut == 0 && !empty($object_rights->creer) && $action != 'selectlin } } + // Asset info if (isModEnabled('asset') && $object->element == 'invoice_supplier') { print ''; } + // Edit picto print ''; + // Delete picto print ''; + // Move up-down picto if ($num > 1 && $conf->browser->layout != 'phone' && ($this->situation_counter == 1 || !$this->situation_cycle_ref) && empty($disablemove)) { print ''; print ''; print ''; } print ''; - print ''; print ''; - $donationstatic->id = $objp->rowid; - $donationstatic->ref = $objp->rowid; - $donationstatic->lastname = $objp->lastname; - $donationstatic->firstname = $objp->firstname; - print ""; - if (!empty($conf->global->DONATION_USE_THIRDPARTIES)) { - $company = new Societe($db); - $result = $company->fetch($objp->socid); if (!empty($objp->socid) && $company->id > 0) { - print ""; + $donationstatic->societe = $company->getNomUrl(1); + } else { + $donationstatic->societe = $objp->societe; + } + + print $donationstatic->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print ''; + print ''; + } + } else { + print ''; + $donationstatic->id = $objp->rowid; + $donationstatic->ref = $objp->rowid; + $donationstatic->lastname = $objp->lastname; + $donationstatic->firstname = $objp->firstname; + print ""; + if (!empty($conf->global->DONATION_USE_THIRDPARTIES)) { + if (!empty($objp->socid) && $company->id > 0) { + print ""; + } else { + print ""; + } } else { print ""; } - } else { - print ""; - } - print ""; - print ''; - if (isModEnabled('project')) { - print ""; + print ''; + if (isModEnabled('project')) { + print "\n"; } - print "\n"; + print ''; + print ''; + print ''; + print ""; } - print ''; - print ''; - print ''; - print ""; $i++; } print "
' . $langs->trans('Margins') . '' . $langs->trans('SellingPrice') . ''; + print ''; + print ''; + /*if ((! $lines[$i]->public) && $disabledproject) print $form->textwithpicto('',$langs->trans("UserIsNotContactOfProject")); + elseif ($disabledtask) + { + $titleassigntask = $langs->trans("AssignTaskToMe"); + if ($fuser->id != $user->id) $titleassigntask = $langs->trans("AssignTaskToUser", '...'); + + print $form->textwithpicto('',$langs->trans("TaskIsNotAssignedToUser", $titleassigntask)); + }*/ + print '
'; - // $lines[$i]->duration is a denormalised field = summ of time spent by everybody for task. What we need is time consummed by user + // $lines[$i]->duration is a denormalised field = summ of time spent by everybody for task. What we need is time consumed by user if ($lines[$i]->duration) { print ''; print convertSecondToTime($lines[$i]->duration, 'allhourmin'); @@ -1391,8 +1635,10 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr // Duration print ''; - $dayWorkLoad = !empty($projectstatic->weekWorkLoadPerTask[$preselectedday][$lines[$i]->id]) ? $projectstatic->weekWorkLoadPerTask[$preselectedday][$lines[$i]->id] : 0; - if (!isset($totalforeachday[$preselectedday])) $totalforeachday[$preselectedday] = 0; + $dayWorkLoad = empty($projectstatic->weekWorkLoadPerTask[$preselectedday][$lines[$i]->id]) ? 0 : $projectstatic->weekWorkLoadPerTask[$preselectedday][$lines[$i]->id]; + if (!isset($totalforeachday[$preselectedday])) { + $totalforeachday[$preselectedday] = 0; + } $totalforeachday[$preselectedday] += $dayWorkLoad; $alreadyspent = ''; @@ -1730,7 +1976,7 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$ if (!empty($arrayfields['timeconsumed']['checked'])) { // Time spent by everybody print ''; - // $lines[$i]->duration is a denormalised field = summ of time spent by everybody for task. What we need is time consummed by user + // $lines[$i]->duration is a denormalised field = summ of time spent by everybody for task. What we need is time consumed by user if ($lines[$i]->duration) { print ''; print convertSecondToTime($lines[$i]->duration, 'allhourmin'); @@ -2024,7 +2270,7 @@ function projectLinesPerMonth(&$inc, $firstdaytoshow, $fuser, $parent, $lines, & // Time spent by everybody print ''; - // $lines[$i]->duration is a denormalised field = summ of time spent by everybody for task. What we need is time consummed by user + // $lines[$i]->duration is a denormalised field = summ of time spent by everybody for task. What we need is time consumed by user if ($lines[$i]->duration) { print ''; print convertSecondToTime($lines[$i]->duration, 'allhourmin'); @@ -2363,7 +2609,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks print ''; print $projectstatic->getNomUrl(1, '', 0, '', '-', 0, -1, 'nowraponall'); if (!in_array('projectlabel', $hiddenfields)) { - print '
'.dol_trunc($objp->title, 24).''; + print '
'.dol_escape_htmltag($objp->title).''; } print '
trans('Qty'); ?> '; print ''; print $langs->trans('Unit'); @@ -214,7 +216,7 @@ if ($nolinesbefore) { echo ' '; } } - echo $form->select_type_of_lines(GETPOSTISSET("type") ? GETPOST("type", 'alpha', 2) : -1, 'type', 1, 1, $forceall); + $form->select_type_of_lines(GETPOSTISSET("type") ? GETPOST("type", 'alpha', 2) : -1, 'type', 1, 1, $forceall); echo ''; } // Predefined product/service @@ -424,7 +426,7 @@ if ($nolinesbefore) { "> '; print $form->selectUnits(empty($line->fk_unit) ? $conf->global->PRODUCT_USE_UNITS : $line->fk_unit, "units"); @@ -511,7 +513,7 @@ if ((isModEnabled("service") || ($object->element == 'contrat')) && $dateSelecto print $form->selectDate($date_start, 'date_start', empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? 0 : 1, empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? 0 : 1, 1, "addproduct", 1, 0); print ' '.$langs->trans('to').' '; print $form->selectDate($date_end, 'date_end', empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? 0 : 1, empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE) ? 0 : 1, 1, "addproduct", 1, 0); - }; + } if ($prefillDates) { echo ' '.$langs->trans('FillWithLastServiceDates').''; @@ -718,7 +720,8 @@ if (!empty($usemargins) && $user->rights->margins->creer) { { console.log("objectline_create.tpl Call method change() after change on #idprod or #idprodfournprice (senderissupplier=). this.val = "+$(this).val()); - setforpredef(); // TODO Keep vat combo visible and set it to first entry into list that match result of get_default_tva + setforpredef(); // TODO Keep vat combo visible and set it to first entry into list that match result of get_default_tva(product) + jQuery('#trlinefordates').show(); rights->margins->creer) { global->PRODUIT_CUSTOMER_PRICES_BY_QTY) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) { ?> if (isNaN(pbq)) { console.log("We use experimental option PRODUIT_CUSTOMER_PRICES_BY_QTY or PRODUIT_CUSTOMER_PRICES_BY_QTY but we could not get the id of pbq from product combo list, so load of price may be 0 if product has differet prices"); } - // Get the HT price for the product and display it + // Get the price for the product and display it console.log("Load unit price without tax and set it into #price_ht for product id="+$(this).val()+" socid=socid; ?>"); $.post('/product/ajax/products.php?action=fetch', { 'id': $(this).val(), 'socid': socid; ?>, 'token': '' }, @@ -755,7 +758,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { if (data.mandatory_period == 1 && data.type == 1) { jQuery('#date_start').addClass('inputmandatory'); jQuery('#date_end').addClass('inputmandatory'); - }else{ + } else { jQuery('#date_start').removeClass('inputmandatory'); jQuery('#date_end').removeClass('inputmandatory'); } @@ -767,6 +770,52 @@ if (!empty($usemargins) && $user->rights->margins->creer) { console.log("objectline_create.tpl set content of price_ht"); jQuery("#price_ht").val(data.price_ht); } + + var tva_tx = data.tva_tx; + var default_vat_code = data.default_vat_code; + + // Now set the VAT + var stringforvatrateselection = tva_tx; + if (typeof default_vat_code != 'undefined' && default_vat_code != null && default_vat_code != '') { + stringforvatrateselection = stringforvatrateselection+' ('+default_vat_code+')'; + + console.log("MAIN_SALETAX_AUTOSWITCH_I_CS_FOR_INDIA is on so we check if we need to autoswith the vat code"); + console.log("mysoc->country_code=country_code; ?> thirdparty->country_code=thirdparty->country_code; ?>"); + new_default_vat_code = default_vat_code; + country_code == 'IN' && !empty($object->thirdparty) && $object->thirdparty->country_code == 'IN' && $mysoc->state_code == $object->thirdparty->state_code) { + // We are in India and states are same, we revert the vat code "I-x" into "CS-x" + ?> + console.log("Countries are both IN and states are same, so we revert I into CS in default_vat_code="+default_vat_code); + new_default_vat_code = default_vat_code.replace(/^I\-/, 'C+S-'); + country_code == 'IN' && !empty($object->thirdparty) && $object->thirdparty->country_code == 'IN' && $mysoc->state_code != $object->thirdparty->state_code) { + // We are in India and states differs, we revert the vat code "CS-x" into "I-x" + ?> + console.log("Countries are both IN and states differs, so we revert CS into I in default_vat_code="+default_vat_code); + new_default_vat_code = default_vat_code.replace(/^C\+S\-/, 'I-'); + + if (new_default_vat_code != default_vat_code && jQuery('#tva_tx option:contains("'+new_default_vat_code+'")').val()) { + console.log("We found en entry into VAT with new default_vat_code, we will use it"); + stringforvatrateselection = jQuery('#tva_tx option:contains("'+new_default_vat_code+'")').val(); + } + + } + // Set vat rate if field is an input box + $('#tva_tx').val(tva_tx); + // Set vat rate by selecting the combo + //$('#tva_tx option').val(tva_tx); // This is bugged, it replaces the vat key of all options + $('#tva_tx option').removeAttr('selected'); + console.log("stringforvatrateselection="+stringforvatrateselection+" -> value of option label for this key="+$('#tva_tx option[value="'+stringforvatrateselection+'"]').val()); + $('#tva_tx option[value="'+stringforvatrateselection+'"]').prop('selected', true); + global->PRODUIT_AUTOFILL_DESC) && $conf->global->PRODUIT_AUTOFILL_DESC == 1) { if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { ?> @@ -919,42 +968,45 @@ if (!empty($usemargins) && $user->rights->margins->creer) { ?> global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) {?> - /* To process customer price per quantity (PRODUIT_CUSTOMER_PRICES_BY_QTY works only if combo product is not an ajax after x key pressed) */ - var pbq = parseInt($('option:selected', this).attr('data-pbq')); // When select is done from HTML select - if (isNaN(pbq)) { pbq = jQuery('#idprod').attr('data-pbq'); } // When select is done from HTML input with autocomplete - var pbqup = parseFloat($('option:selected', this).attr('data-pbqup')); - if (isNaN(pbqup)) { pbqup = jQuery('#idprod').attr('data-pbqup'); } - var pbqbase = $('option:selected', this).attr('data-pbqbase'); - if (isNaN(pbqbase)) { pbqbase = jQuery('#idprod').attr('data-pbqbase'); } - var pbqqty = parseFloat($('option:selected', this).attr('data-pbqqty')); - if (isNaN(pbqqty)) { pbqqty = jQuery('#idprod').attr('data-pbqqty'); } - var pbqpercent = parseFloat($('option:selected', this).attr('data-pbqpercent')); - if (isNaN(pbqpercent)) { pbqpercent = jQuery('#idprod').attr('data-pbqpercent'); } + if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) { + ?> + /* To process customer price per quantity (PRODUIT_CUSTOMER_PRICES_BY_QTY works only if combo product is not an ajax after x key pressed) */ + var pbq = parseInt($('option:selected', this).attr('data-pbq')); // When select is done from HTML select + if (isNaN(pbq)) { pbq = jQuery('#idprod').attr('data-pbq'); } // When select is done from HTML input with autocomplete + var pbqup = parseFloat($('option:selected', this).attr('data-pbqup')); + if (isNaN(pbqup)) { pbqup = jQuery('#idprod').attr('data-pbqup'); } + var pbqbase = $('option:selected', this).attr('data-pbqbase'); + if (isNaN(pbqbase)) { pbqbase = jQuery('#idprod').attr('data-pbqbase'); } + var pbqqty = parseFloat($('option:selected', this).attr('data-pbqqty')); + if (isNaN(pbqqty)) { pbqqty = jQuery('#idprod').attr('data-pbqqty'); } + var pbqpercent = parseFloat($('option:selected', this).attr('data-pbqpercent')); + if (isNaN(pbqpercent)) { pbqpercent = jQuery('#idprod').attr('data-pbqpercent'); } - if ((jQuery('#idprod').val() > 0) && ! isNaN(pbq) && pbq > 0) - { - var pbqupht = pbqup; /* TODO support of price per qty TTC not yet available */ + if ((jQuery('#idprod').val() > 0) && ! isNaN(pbq) && pbq > 0) + { + var pbqupht = pbqup; /* TODO support of price per qty TTC not yet available */ - console.log("We choose a price by quanty price_by_qty id = "+pbq+" price_by_qty upht = "+pbqupht+" price_by_qty qty = "+pbqqty+" price_by_qty percent = "+pbqpercent); - jQuery("#pbq").val(pbq); - jQuery("#price_ht").val(pbqupht); - if (jQuery("#qty").val() < pbqqty) - { - jQuery("#qty").val(pbqqty); - } - if (jQuery("#remise_percent").val() < pbqpercent) - { - jQuery("#remise_percent").val(pbqpercent); - } - } else { jQuery("#pbq").val(''); } + console.log("We choose a price by quanty price_by_qty id = "+pbq+" price_by_qty upht = "+pbqupht+" price_by_qty qty = "+pbqqty+" price_by_qty percent = "+pbqpercent); + jQuery("#pbq").val(pbq); + jQuery("#price_ht").val(pbqupht); + if (jQuery("#qty").val() < pbqqty) + { + jQuery("#qty").val(pbqqty); + } + if (jQuery("#remise_percent").val() < pbqpercent) + { + jQuery("#remise_percent").val(pbqpercent); + } + } else { jQuery("#pbq").val(''); } - // Deal with supplier + + + // Deal with supplier ref price (idprodfournprice = int) if (jQuery('#idprodfournprice').val() > 0) { - console.log("objectline_create.tpl #idprodfournprice is > 0, so we set some properties into page"); + console.log("objectline_create.tpl #idprodfournprice is is an ID > 0, so we set some properties into page"); var up = parseFloat($('option:selected', this).attr('data-up')); // When select is done from HTML select if (isNaN(up)) { up = parseFloat(jQuery('#idprodfournprice').attr('data-up'));} // When select is done from HTML input with ajax autocomplete @@ -975,7 +1027,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { if (typeof default_vat_code === 'undefined') { default_vat_code = jQuery('#idprodfournprice').attr('data-default-vat-code');} // When select is done from HTML input with ajax autocomplete var stringforvatrateselection = tva_tx; - if (typeof default_vat_code != 'undefined') { + if (typeof default_vat_code != 'undefined' && default_vat_code != null && default_vat_code != '') { stringforvatrateselection = stringforvatrateselection+' ('+default_vat_code+')'; } @@ -992,7 +1044,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { // Set vat rate by selecting the combo //$('#tva_tx option').val(tva_tx); // This is bugged, it replaces the vat key of all options $('#tva_tx option').removeAttr('selected'); - console.log("stringforvatrateselection="+stringforvatrateselection+" -> value of option for this selection="+$('#tva_tx option[value="'+stringforvatrateselection+'"]').val()); + console.log("stringforvatrateselection="+stringforvatrateselection+" -> value of option label for this key="+$('#tva_tx option[value="'+stringforvatrateselection+'"]').val()); $('#tva_tx option[value="'+stringforvatrateselection+'"]').prop('selected', true); if (jQuery("#qty").val() < qty) { @@ -1003,14 +1055,15 @@ if (!empty($usemargins) && $user->rights->margins->creer) { } global->PRODUIT_AUTOFILL_DESC) && $conf->global->PRODUIT_AUTOFILL_DESC == 1) { + if (getDolGlobalInt('PRODUIT_AUTOFILL_DESC') == 1) { ?> var description = $('option:selected', this).attr('data-description'); if (typeof description == 'undefined') { description = jQuery('#idprodfournprice').attr('data-description'); } console.log("Load desciption into text area : "+description); global->FCKEDITOR_ENABLE_DETAILS)) { ?> + if (!empty($conf->global->FCKEDITOR_ENABLE_DETAILS)) { + ?> if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined") { var editor = CKEDITOR.instances['dp_desc']; @@ -1019,15 +1072,41 @@ if (!empty($usemargins) && $user->rights->margins->creer) { } } + } else { + ?> jQuery('#dp_desc').text(description); + } + ?> } else if (jQuery('#idprodfournprice').length > 0) { + console.log("objectline_create.tpl #idprodfournprice is not an int but is a string so we set only few properties into page"); + + var tva_tx = parseFloat($('option:selected', this).attr('data-tvatx')); // When select is done from HTML select + if (isNaN(tva_tx)) { tva_tx = parseFloat(jQuery('#idprodfournprice').attr('data-tvatx'));} // When select is done from HTML input with ajax autocomplete + + var default_vat_code = $('option:selected', this).attr('data-default-vat-code'); // When select is done from HTML select + if (typeof default_vat_code === 'undefined') { default_vat_code = jQuery('#idprodfournprice').attr('data-default-vat-code');} // When select is done from HTML input with ajax autocomplete + + var stringforvatrateselection = tva_tx; + if (typeof default_vat_code != 'undefined' && default_vat_code != null && default_vat_code != '') { + stringforvatrateselection = stringforvatrateselection+' ('+default_vat_code+')'; + } + + console.log("objectline_create.tpl We find data for price : tva_tx = "+tva_tx+", default_vat_code = "+default_vat_code+", stringforvatrateselection="+stringforvatrateselection+" for product id = "+jQuery('#idprodfournprice').val()); + + // Set vat rate if field is an input box + $('#tva_tx').val(tva_tx); + // Set vat rate by selecting the combo + //$('#tva_tx option').val(tva_tx); // This is bugged, it replaces the vat key of all options + $('#tva_tx option').removeAttr('selected'); + console.log("stringforvatrateselection="+stringforvatrateselection+" -> value of option label for this key="+$('#tva_tx option[value="'+stringforvatrateselection+'"]').val()); + $('#tva_tx option[value="'+stringforvatrateselection+'"]').prop('selected', true); + global->PRODUIT_AUTOFILL_DESC) && $conf->global->PRODUIT_AUTOFILL_DESC == 1) { - if (!empty($conf->global->FCKEDITOR_ENABLE_DETAILS)) { ?> + if (getDolGlobalInt('PRODUIT_AUTOFILL_DESC') == 1) { + if (!empty($conf->global->FCKEDITOR_ENABLE_DETAILS)) { + ?> if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined") { var editor = CKEDITOR.instances['dp_desc']; @@ -1036,11 +1115,13 @@ if (!empty($usemargins) && $user->rights->margins->creer) { } } + } else { + ?> jQuery('#dp_desc').text(''); + } + ?> } @@ -1063,7 +1144,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { }); - /* Function to set fields from choice */ + /* Function to set fields visibility after selecting a free product */ function setforfree() { console.log("objectline_create.tpl::setforfree. We show most fields"); jQuery("#idprodfournprice").val('0'); // Set cursor on not selected product @@ -1098,7 +1179,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { jQuery("#multicurrency_price_ttc").val('').hide(); jQuery("#title_up_ttc, #title_up_ttc_currency").hide(); - jQuery("#fourn_ref, #tva_tx, #title_vat").hide(); + /* jQuery("#tva_tx, #title_vat").hide(); */ /* jQuery("#title_fourn_ref").hide(); */ jQuery("#np_marginRate, #np_markRate, .np_marginRate, .np_markRate, #units, #title_units").hide(); jQuery("#buying_price").show(); diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php index 5520215d89a..dbc8b407fa5 100644 --- a/htdocs/core/tpl/objectline_edit.tpl.php +++ b/htdocs/core/tpl/objectline_edit.tpl.php @@ -120,7 +120,7 @@ $coldisplay++; print ''; } else { if ($senderissupplier) { - print $form->select_produits_fournisseurs(!empty($line->fk_product) ? $line->fk_product : 0, 'productid'); + $form->select_produits_fournisseurs(!empty($line->fk_product) ? $line->fk_product : 0, 'productid'); } else { print $form->select_produits(!empty($line->fk_product) ? $line->fk_product : 0, 'productid'); } diff --git a/htdocs/core/tpl/objectline_title.tpl.php b/htdocs/core/tpl/objectline_title.tpl.php index 7fe63613ea1..4640d710705 100644 --- a/htdocs/core/tpl/objectline_title.tpl.php +++ b/htdocs/core/tpl/objectline_title.tpl.php @@ -71,7 +71,7 @@ if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) || !empty($conf->global->FA 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)) { + if (empty($disableedit) && GETPOST('mode', 'aZ09') != 'vatforalllines') { print 'id.'">'.img_edit($langs->trans("UpdateForAllLines"), 0, 'class="clickvatforalllines opacitymedium paddingleft cursorpointer"').''; } //print ''; @@ -111,7 +111,7 @@ print $langs->trans('ReductionShort'); if (in_array($object->element, array('propal', 'commande', 'facture')) && $object->status == $object::STATUS_DRAFT) { global $mysoc; - if (empty($disableedit)) { + if (empty($disableedit) && GETPOST('mode', 'aZ09') != 'remiseforalllines') { print 'id.'">'.img_edit($langs->trans("UpdateForAllLines"), 0, 'class="clickvatforalllines opacitymedium paddingleft cursorpointer"').''; } //print ''; diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php index 98726638bec..be24a555a3c 100644 --- a/htdocs/core/tpl/objectline_view.tpl.php +++ b/htdocs/core/tpl/objectline_view.tpl.php @@ -255,11 +255,48 @@ if (isModEnabled('accounting') && $line->fk_accounting_account > 0) { } print ''; print ($line->ref_fourn ? $line->ref_fourn : $line->ref_supplier); print ''; $coldisplay++; @@ -276,8 +313,9 @@ if (price2num($line->total_localtax2)) { if (empty($positiverates)) { $positiverates = '0'; } +print $tooltiponprice; print vatrate($positiverates.($line->vat_src_code ? ' ('.$line->vat_src_code.')' : ''), '%', $line->info_bits); -//print vatrate($line->tva_tx.($line->vat_src_code?(' ('.$line->vat_src_code.')'):''), '%', $line->info_bits); +print $tooltiponpriceend; ?> subprice); ?>marque_tx, 'MT')).'%'; ?> trans('Option'); ?> '.price($sign * $line->multicurrency_total_ht).''.price($sign * $line->total_ttc).''; $coldisplay++; @@ -426,7 +436,7 @@ if ($this->statut == 0 && !empty($object_rights->creer) && $action != 'selectlin print 'Error SQL: ' . $this->db->lasterror(); } elseif ($obj = $this->db->fetch_object($resql_asset)) { if (!empty($obj->found)) { - print ''; + print ''; print img_edit_add() . ''; } } @@ -434,15 +444,17 @@ if ($this->statut == 0 && !empty($object_rights->creer) && $action != 'selectlin print ''; $coldisplay++; if (($line->info_bits & 2) == 2 || !empty($disableedit)) { } else { ?> - id.'#line_'.$line->id; ?>"> + id; ?>"> '; } print ''; $coldisplay++; if (!$situationinvoicelinewithparent && empty($disableremove)) { // For situation invoice, deletion is not possible if there is a parent company. @@ -452,6 +464,7 @@ if ($this->statut == 0 && !empty($object_rights->creer) && $action != 'selectlin } print ''; $coldisplay++; diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php index 3fdbcd14ef3..e9d7de9a1bf 100644 --- a/htdocs/core/tpl/passwordforgotten.tpl.php +++ b/htdocs/core/tpl/passwordforgotten.tpl.php @@ -76,7 +76,7 @@ if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $disablenofollow = 0; } -print top_htmlhead('', $titleofpage, 0, 0, $arrayofjs, array(), 1, $disablenofollow); +top_htmlhead('', $titleofpage, 0, 0, $arrayofjs, array(), 1, $disablenofollow); $colorbackhmenu1 = '60,70,100'; // topmenu @@ -253,7 +253,7 @@ if ($mode == 'dolibarr' || !$disabled) { diff --git a/htdocs/core/tpl/passwordreset.tpl.php b/htdocs/core/tpl/passwordreset.tpl.php index 1f35b1a251a..e9d518dba64 100644 --- a/htdocs/core/tpl/passwordreset.tpl.php +++ b/htdocs/core/tpl/passwordreset.tpl.php @@ -77,7 +77,7 @@ if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $disablenofollow = 0; } -print top_htmlhead('', $titleofpage, 0, 0, $arrayofjs, array(), 1, $disablenofollow); +top_htmlhead('', $titleofpage, 0, 0, $arrayofjs, array(), 1, $disablenofollow); $colorbackhmenu1 = '60,70,100'; // topmenu @@ -292,7 +292,7 @@ if ($mode == 'dolibarr' || !$disabled) { diff --git a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php index abaadfc85a8..b6bd9bb73a8 100644 --- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php +++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php @@ -90,6 +90,9 @@ class InterfaceWorkflowManager extends DolibarrTriggers $this->error = $newobject->error; $this->errors[] = $newobject->error; } + + $object->clearObjectLinkedCache(); + return $ret; } } @@ -111,6 +114,9 @@ class InterfaceWorkflowManager extends DolibarrTriggers $this->error = $newobject->error; $this->errors[] = $newobject->error; } + + $object->clearObjectLinkedCache(); + return $ret; } } diff --git a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php index e3f798dec62..ae53b01e19b 100644 --- a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php +++ b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php @@ -5,6 +5,7 @@ * Copyright (C) 2013 Cedric GROSS * Copyright (C) 2014 Marcos García * Copyright (C) 2015 Bahfir Abbes + * Copyright (C) 2022 Ferran Marcet * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -861,6 +862,16 @@ class InterfaceActionsAuto extends DolibarrTriggers // Parameters $object->sendtoid defined by caller //$object->sendtoid=0; + } elseif ($action == 'PROJECT_CLOSE') { + // Load translation files required by the page + $langs->loadLangs(array("agenda", "other", "projects")); + + if (empty($object->actionmsg2)) { + $object->actionmsg2 = $langs->transnoentities("ProjectClosedInDolibarr", $object->ref); + } + $object->actionmsg = $langs->transnoentities("ProjectClosedInDolibarr", $object->ref); + + $object->sendtoid = 0; } elseif ($action == 'TASK_CREATE') { // Project tasks // Load translation files required by the page @@ -920,7 +931,7 @@ class InterfaceActionsAuto extends DolibarrTriggers $object->sendtoid = 0; } else { // TODO Merge all previous cases into this generic one - // $action = BILL_DELETE, TICKET_CREATE, TICKET_MODIFY, TICKET_DELETE, CONTACT_SENTBYMAIL, RECRUITMENTCANDIDATURE_MODIFY, ... + // $action = PASSWORD, BILL_DELETE, TICKET_CREATE, TICKET_MODIFY, TICKET_DELETE, CONTACT_SENTBYMAIL, RECRUITMENTCANDIDATURE_MODIFY, ... // Can also be a value defined by an external module like SENTBYSMS, COMPANY_SENTBYSMS, MEMBER_SENTBYSMS, ... // Note: We are here only if $conf->global->MAIN_AGENDA_ACTIONAUTO_action is on (tested at begining of this function). // Note that these key can be set in agenda setup, only if defined into llx_c_action_trigger diff --git a/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php b/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php index 275fc954ece..502fe33e980 100644 --- a/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php +++ b/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php @@ -64,9 +64,12 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers } // Test if event/record is qualified - $listofqualifiedelement = array('facture', 'don', 'payment', 'payment_donation', 'subscription', 'payment_various', 'cashcontrol'); - if (!in_array($object->element, $listofqualifiedelement)) { - return 1; + if (empty($conf->global->BLOCKEDLOG_ADD_ACTIONS_SUPPORTED) || !in_array($action, explode(',', $conf->global->BLOCKEDLOG_ADD_ACTIONS_SUPPORTED))) { + // If custom actions are not set or if action not into custom actions, we can exclude action if object->elementis not valid + $listofqualifiedelement = array('facture', 'don', 'payment', 'payment_donation', 'subscription', 'payment_various', 'cashcontrol'); + if (!in_array($object->element, $listofqualifiedelement)) { + return 1; + } } dol_syslog("Trigger '".$this->name."' for action '".$action."' launched by ".__FILE__.". id=".$object->id); @@ -100,7 +103,7 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers $amounts = (double) $object->amount; } elseif ($action == 'CASHCONTROL_VALIDATE') { $amounts = (double) $object->cash + (double) $object->cheque + (double) $object->card; - } else { + } elseif (property_exists($object, 'total_ttc')) { $amounts = (double) $object->total_ttc; } } @@ -132,7 +135,9 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers return 0; // not implemented action log } - $result = $b->setObjectData($object, $action, $amounts, $user); // Set field date_object, ref_object, fk_object, element, object_data + // Set field date_object, ref_object, fk_object, element, object_data + $result = $b->setObjectData($object, $action, $amounts, $user); + //var_dump($b); exit; if ($result < 0) { $this->error = $b->error; diff --git a/htdocs/core/website.inc.php b/htdocs/core/website.inc.php index 2bdc9080b78..82fcabd557b 100644 --- a/htdocs/core/website.inc.php +++ b/htdocs/core/website.inc.php @@ -112,7 +112,7 @@ if (!defined('USEDOLIBARRSERVER') && !defined('USEDOLIBARREDITOR')) { // 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 = "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-ancestors 'self'; frame-src 'self' *.stripe.com; connect-src 'self';"; $contentsecuritypolicy = getDolGlobalString('WEBSITE_MAIN_SECURITY_FORCECSP'); if (!is_object($hookmanager)) { diff --git a/htdocs/cron/class/cronjob.class.php b/htdocs/cron/class/cronjob.class.php index d26c83f4772..b12a2b909cf 100644 --- a/htdocs/cron/class/cronjob.class.php +++ b/htdocs/cron/class/cronjob.class.php @@ -368,15 +368,15 @@ class Cronjob extends CommonObject $sql .= " ".(!isset($this->datelastresult) || dol_strlen($this->datelastresult) == 0 ? 'NULL' : "'".$this->db->idate($this->datelastresult)."'").","; $sql .= " ".(!isset($this->lastoutput) ? 'NULL' : "'".$this->db->escape($this->lastoutput)."'").","; $sql .= " ".(!isset($this->unitfrequency) ? 'NULL' : "'".$this->db->escape($this->unitfrequency)."'").","; - $sql .= " ".(!isset($this->frequency) ? '0' : $this->frequency).","; - $sql .= " ".(!isset($this->status) ? '0' : $this->status).","; - $sql .= " ".$user->id.","; - $sql .= " ".$user->id.","; + $sql .= " ".(!isset($this->frequency) ? '0' : ((int) $this->frequency)).","; + $sql .= " ".(!isset($this->status) ? '0' : ((int) $this->status)).","; + $sql .= " ".((int) $user->id).","; + $sql .= " ".((int) $user->id).","; $sql .= " ".(!isset($this->note_private) ? 'NULL' : "'".$this->db->escape($this->note_private)."'").","; - $sql .= " ".(!isset($this->nbrun) ? '0' : $this->db->escape($this->nbrun)).","; - $sql .= " ".(empty($this->maxrun) ? '0' : $this->db->escape($this->maxrun)).","; + $sql .= " ".(!isset($this->nbrun) ? '0' : ((int) $this->nbrun)).","; + $sql .= " ".(empty($this->maxrun) ? '0' : ((int) $this->maxrun)).","; $sql .= " ".(!isset($this->libname) ? 'NULL' : "'".$this->db->escape($this->libname)."'").","; - $sql .= " ".(!isset($this->test) ? 'NULL' : "'".$this->db->escape($this->test)."'").""; + $sql .= " ".(!isset($this->test) ? 'NULL' : "'".$this->db->escape($this->test)."'"); $sql .= ")"; $this->db->begin(); diff --git a/htdocs/cron/list.php b/htdocs/cron/list.php index 30f195b550b..aaccb39e68e 100644 --- a/htdocs/cron/list.php +++ b/htdocs/cron/list.php @@ -448,7 +448,7 @@ print '  '; -print $form->selectarray('search_status', array('0'=>$langs->trans("Disabled"), '1'=>$langs->trans("Scheduled")), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'onrightofpage'); +print $form->selectarray('search_status', array('0'=>$langs->trans("Disabled"), '1'=>$langs->trans("Scheduled")), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage'); print ''; $searchpicto = $form->showFilterButtons(); print $searchpicto; diff --git a/htdocs/datapolicy/class/actions_datapolicy.class.php b/htdocs/datapolicy/class/actions_datapolicy.class.php index ac360674c85..768ddd216d7 100644 --- a/htdocs/datapolicy/class/actions_datapolicy.class.php +++ b/htdocs/datapolicy/class/actions_datapolicy.class.php @@ -82,11 +82,11 @@ class ActionsDatapolicy /** * Overloading the doActions function : replacing the parent's function with the one below * - * @param array $parameters Hook metadatas (context, etc...) - * @param CommonObject $object The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...) - * @param string $action Current action (if set). Generally create or edit or null - * @param HookManager $hookmanager Hook manager propagated to allow calling another hook - * @return int < 0 on error, 0 on success, 1 to replace standard code + * @param array $parameters Hook metadatas (context, etc...) + * @param Societe|CommonObject $object The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...) + * @param string $action Current action (if set). Generally create or edit or null + * @param HookManager $hookmanager Hook manager propagated to allow calling another hook + * @return int < 0 on error, 0 on success, 1 to replace standard code */ public function doActions($parameters, &$object, &$action, $hookmanager) { @@ -103,7 +103,6 @@ class ActionsDatapolicy // on verifie si l'objet est utilisé if ($object->isObjectUsed(GETPOST('socid'))) { $object->name = $langs->trans('ANONYME'); - $object->name_bis = ''; $object->name_alias = ''; $object->address = ''; $object->town = ''; @@ -115,7 +114,7 @@ class ActionsDatapolicy $object->state = ''; $object->country = ''; $object->state_id = ''; - $object->skype = ''; + $object->socialnetworks = ''; $object->country_id = ''; $object->note_private = $object->note_private.'
'.$langs->trans('ANONYMISER_AT', dol_print_date(time())); @@ -128,76 +127,6 @@ class ActionsDatapolicy header('Location:'.$_SERVER["PHP_SELF"]."?socid=".$object->id); } } - } elseif ($parameters['currentcontext'] == 'thirdpartycard' && $action == 'datapolicy_portabilite') { - header('Content-Type: application/csv'); - header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv'); - header('Pragma: no-cache'); - $object->fetch(GETPOST('socid')); - echo 'Name;Firstname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;'.PHP_EOL; - echo $object->name.';'; - echo ';'; - echo ';'; - echo ';'; - echo ';'; - echo $object->address.';'; - echo $object->zip.';'; - echo $object->town.';'; - echo $object->state.';'; - echo $object->country.';'; - echo $object->email.';'; - echo $object->phone.';'; - echo ';'; - echo ';'; - echo $object->skype.';'; - echo ';'; - exit; - } elseif ($parameters['currentcontext'] == 'membercard' && $action == 'datapolicy_portabilite') { - header('Content-Type: application/csv'); - header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv'); - header('Pragma: no-cache'); - $soc = $object->fetch_thirdparty(); - - echo 'Name;Firstname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;'.PHP_EOL; - echo $object->lastname.';'; - echo $object->firstname.';'; - echo $object->getCivilityLabel().';'; - echo ($soc != -1 ? $object->thirdparty->name : '').';'; - echo ';'; - echo $object->address.';'; - echo $object->zip.';'; - echo $object->town.';'; - echo $object->state.';'; - echo $object->country.';'; - echo $object->email.';'; - echo $object->phone.';'; - echo $object->phone_perso.';'; - echo $object->phone_mobile.';'; - echo $object->skype.';'; - echo dol_print_date($object->birth).';'; - exit; - } elseif ($parameters['currentcontext'] == 'contactcard' && $action == 'datapolicy_portabilite') { - $object->fetch(GETPOST('id')); - header('Content-Type: application/csv'); - header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv'); - header('Pragma: no-cache'); - $soc = $object->fetch_thirdparty(); - echo 'Name;Firstname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;'.PHP_EOL; - echo $object->lastname.';'; - echo $object->firstname.';'; - echo $object->getCivilityLabel().';'; - echo ($soc != -1 ? $object->thirdparty->name : '').';'; - echo $object->poste.';'; - echo $object->address.';'; - echo $object->zip.';'; - echo $object->town.';'; - echo $object->state.';'; - echo $object->country.';'; - echo $object->email.';'; - echo $object->phone_pro.';'; - echo $object->phone_perso.';'; - echo $object->phone_mobile.';'; - echo dol_print_date($object->birth).';'; - exit; } elseif ($parameters['currentcontext'] == 'contactcard' && $action == 'send_datapolicy') { $object->fetch(GETPOST('id')); @@ -358,13 +287,7 @@ class ActionsDatapolicy } ); '; echo $dialog; - if ($parameters['currentcontext'] == 'thirdpartycard' && in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $object->typent_id == 8) { - echo ''; - } elseif ($parameters['currentcontext'] == 'membercard') { - echo ''; - } elseif ($parameters['currentcontext'] == 'contactcard') { - echo ''; - } + // TODO Replace test of hardcoded values if (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'thirdpartycard' && in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $object->typent_id == 8) { echo ''; } elseif (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'membercard') { diff --git a/htdocs/dav/dav.class.php b/htdocs/dav/dav.class.php index a4c98eba8a7..a0375210271 100644 --- a/htdocs/dav/dav.class.php +++ b/htdocs/dav/dav.class.php @@ -143,12 +143,14 @@ class CdavLib $location = trim($location.', '.$obj->soc_country_label); } + /* $address = explode("\n", $obj->address, 2); foreach ($address as $kAddr => $vAddr) { $address[$kAddr] = trim(str_replace(array("\r", "\t"), ' ', str_replace("\n", ' | ', trim($vAddr)))); } $address[] = ''; $address[] = ''; + */ if ($obj->percent == -1 && trim($obj->datep) != '') { $type = 'VEVENT'; @@ -249,7 +251,7 @@ class CdavLib */ public function getFullCalendarObjects($calendarId, $bCalendarData) { - $calid = ($calendarId * 1); + $calid = (int) $calendarId; $calevents = array(); if (!$this->user->rights->agenda->myactions->read) { diff --git a/htdocs/dav/fileserver.php b/htdocs/dav/fileserver.php index 7abe3f2bacf..af23fde5fff 100644 --- a/htdocs/dav/fileserver.php +++ b/htdocs/dav/fileserver.php @@ -92,8 +92,7 @@ $tmpDir = $conf->dav->multidir_output[$entity]; // We need root dir, not a dir t // Authentication callback function $authBackend = new \Sabre\DAV\Auth\Backend\BasicCallBack(function ($username, $password) { - global $user; - global $conf; + global $user, $conf; global $dolibarr_main_authentication, $dolibarr_auto_user; if (empty($user->login)) { @@ -101,7 +100,7 @@ $authBackend = new \Sabre\DAV\Auth\Backend\BasicCallBack(function ($username, $p return false; } if ($user->socid > 0) { - dol_syslog("Failed to authenticate to DAV, use is an external user", LOG_WARNING); + dol_syslog("Failed to authenticate to DAV, user is an external user", LOG_WARNING); return false; } if ($user->login != $username) { @@ -132,6 +131,27 @@ $authBackend = new \Sabre\DAV\Auth\Backend\BasicCallBack(function ($username, $p return false; } + // Check if user status is enabled + if ($user->statut != $user::STATUS_ENABLED) { + // Status is disabled + dol_syslog("The user has been disabled."); + return false; + } + + // Check if session was unvalidated by a password change + if (($user->flagdelsessionsbefore && !empty($_SESSION["dol_logindate"]) && $user->flagdelsessionsbefore > $_SESSION["dol_logindate"])) { + // Session is no more valid + dol_syslog("The user has a date for session invalidation = ".$user->flagdelsessionsbefore." and a session date = ".$_SESSION["dol_logindate"].". We must invalidate its sessions."); + return false; + } + + // Check date validity + if ($user->isNotIntoValidityDateRange()) { + // User validity dates are no more valid + dol_syslog("The user login has a validity between [".$user->datestartvalidity." and ".$user->dateendvalidity."], curren date is ".dol_now()); + return false; + } + return true; }); diff --git a/htdocs/debugbar/class/DataCollector/DolConfigCollector.php b/htdocs/debugbar/class/DataCollector/DolConfigCollector.php index 715d20abcf9..0920b140dbc 100644 --- a/htdocs/debugbar/class/DataCollector/DolConfigCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolConfigCollector.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DataCollector/DolConfigCollector.php + * \brief Class for debugbar collection + * \ingroup debugbar + */ use \DebugBar\DataCollector\ConfigCollector; diff --git a/htdocs/debugbar/class/DataCollector/DolExceptionsCollector.php b/htdocs/debugbar/class/DataCollector/DolExceptionsCollector.php index 15d433fd050..38d2b971dde 100644 --- a/htdocs/debugbar/class/DataCollector/DolExceptionsCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolExceptionsCollector.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DataCollector/DolexceptionsCollector.php + * \brief Class for debugbar collection + * \ingroup debugbar + */ use \DebugBar\DataCollector\ExceptionsCollector; diff --git a/htdocs/debugbar/class/DataCollector/DolLogsCollector.php b/htdocs/debugbar/class/DataCollector/DolLogsCollector.php index d21cdd6233f..3d3b3b25a0e 100644 --- a/htdocs/debugbar/class/DataCollector/DolLogsCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolLogsCollector.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DataCollector/DolLogsCollector.php + * \brief Class for debugbar collection + * \ingroup debugbar + */ use DebugBar\DataCollector\MessagesCollector; use Psr\Log\LogLevel; @@ -20,6 +41,11 @@ class DolLogsCollector extends MessagesCollector */ protected $maxnboflines; + /** + * @var int number of lines + */ + protected $nboflines; + /** * Constructor * @@ -33,7 +59,7 @@ class DolLogsCollector extends MessagesCollector parent::__construct($name); $this->nboflines = 0; - $this->maxnboflines = empty($conf->global->DEBUGBAR_LOGS_LINES_NUMBER) ? 250 : $conf->global->DEBUGBAR_LOGS_LINES_NUMBER; // High number slows seriously output + $this->maxnboflines = getDolGlobalInt('DEBUGBAR_LOGS_LINES_NUMBER', 250); // High number slows seriously output $this->path = $path ?: $this->getLogsFile(); } diff --git a/htdocs/debugbar/class/DataCollector/DolMemoryCollector.php b/htdocs/debugbar/class/DataCollector/DolMemoryCollector.php index b52ac8ff8c4..3372e89c2b6 100644 --- a/htdocs/debugbar/class/DataCollector/DolMemoryCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolMemoryCollector.php @@ -1,17 +1,37 @@ + * + * This 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/debugbar/class/DataCollector/DolMemoryCollector.php + * \brief Class for debugbar collection + * \ingroup debugbar + */ use \DebugBar\DataCollector\MemoryCollector; /** * DolMemoryCollector class */ - class DolMemoryCollector extends MemoryCollector { /** * Return value of indicator * - * @return void + * @return array */ public function collect() { @@ -28,7 +48,7 @@ class DolMemoryCollector extends MemoryCollector /** * Return widget settings * - * @return void + * @return array */ public function getWidgets() { diff --git a/htdocs/debugbar/class/DataCollector/DolMessagesCollector.php b/htdocs/debugbar/class/DataCollector/DolMessagesCollector.php index 1fcf60c8ba6..733009e77c6 100644 --- a/htdocs/debugbar/class/DataCollector/DolMessagesCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolMessagesCollector.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DataCollector/DolMessagesCollector.php + * \brief Class for debugbar collection + * \ingroup debugbar + */ use \DebugBar\DataCollector\MessagesCollector; diff --git a/htdocs/debugbar/class/DataCollector/DolPhpCollector.php b/htdocs/debugbar/class/DataCollector/DolPhpCollector.php index 3d6536bd258..bca2b2a7071 100644 --- a/htdocs/debugbar/class/DataCollector/DolPhpCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolPhpCollector.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DataCollector/DolPhpCollector.php + * \brief Class for debugbar collection + * \ingroup debugbar + */ use DebugBar\DataCollector\DataCollector; use DebugBar\DataCollector\Renderable; diff --git a/htdocs/debugbar/class/DataCollector/DolQueryCollector.php b/htdocs/debugbar/class/DataCollector/DolQueryCollector.php index ca5aa284dd2..8cc55e34df9 100644 --- a/htdocs/debugbar/class/DataCollector/DolQueryCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolQueryCollector.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DataCollector/DolQueryCollector.php + * \brief Class for debugbar collection + * \ingroup debugbar + */ use DebugBar\DataCollector\AssetProvider; use DebugBar\DataCollector\DataCollector; diff --git a/htdocs/debugbar/class/DataCollector/DolRequestDataCollector.php b/htdocs/debugbar/class/DataCollector/DolRequestDataCollector.php index 938643802d5..4ddcac9af7c 100644 --- a/htdocs/debugbar/class/DataCollector/DolRequestDataCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolRequestDataCollector.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DataCollector/DolRequestDataCollector.php + * \brief Class for debugbar collection + * \ingroup debugbar + */ use \DebugBar\DataCollector\RequestDataCollector; diff --git a/htdocs/debugbar/class/DataCollector/DolTimeDataCollector.php b/htdocs/debugbar/class/DataCollector/DolTimeDataCollector.php index ed5e979d539..d16622d329f 100644 --- a/htdocs/debugbar/class/DataCollector/DolTimeDataCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolTimeDataCollector.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DataCollector/DolTimeDataCollector.php + * \brief Class for debugbar collection + * \ingroup debugbar + */ use \DebugBar\DataCollector\TimeDataCollector; diff --git a/htdocs/debugbar/class/DataCollector/DolibarrCollector.php b/htdocs/debugbar/class/DataCollector/DolibarrCollector.php index 3193fe26176..11cedbe2b93 100644 --- a/htdocs/debugbar/class/DataCollector/DolibarrCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolibarrCollector.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DataCollector/DolibarrCollector.php + * \brief Class for debugbar collection + * \ingroup debugbar + */ use DebugBar\DataCollector\AssetProvider; use DebugBar\DataCollector\DataCollector; diff --git a/htdocs/debugbar/class/DebugBar.php b/htdocs/debugbar/class/DebugBar.php index b2ec0f17bf0..6181ad7cd60 100644 --- a/htdocs/debugbar/class/DebugBar.php +++ b/htdocs/debugbar/class/DebugBar.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DebugBar.php + * \brief Class for debugbar + * \ingroup debugbar + */ dol_include_once('/debugbar/class/autoloader.php'); @@ -55,9 +76,10 @@ class DolibarrDebugBar extends DebugBar public function getRenderer() { $renderer = parent::getJavascriptRenderer(DOL_URL_ROOT.'/includes/maximebf/debugbar/src/DebugBar/Resources'); - //$renderer->disableVendor('jquery'); - $renderer->disableVendor('fontawesome'); - $renderer->disableVendor('highlightjs'); + $renderer->disableVendor('jquery'); // We already have jquery loaded globally by the main.inc.php + $renderer->disableVendor('fontawesome'); // We already have fontawesome loaded globally by the main.inc.php + $renderer->disableVendor('highlightjs'); // We don't need this + $renderer->setEnableJqueryNoConflict(false); // We don't need no conflict return $renderer; } } diff --git a/htdocs/debugbar/class/TraceableDB.php b/htdocs/debugbar/class/TraceableDB.php index 0b862f4df70..8e28b0c59bd 100644 --- a/htdocs/debugbar/class/TraceableDB.php +++ b/htdocs/debugbar/class/TraceableDB.php @@ -1,4 +1,25 @@ + * + * This 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/debugbar/class/DataCollector/TraceableDB.php + * \brief Class for debugbar DB + * \ingroup debugbar + */ require_once DOL_DOCUMENT_ROOT.'/core/db/DoliDB.class.php'; @@ -251,18 +272,6 @@ class TraceableDB extends DoliDB return $this->db->escape($stringtoencode); } - /** - * Escape a string to insert data - * - * @param string $stringtoencode String to escape - * @return string String escaped - * @deprecated - */ - public function escapeunderscore($stringtoencode) - { - return $this->db->escapeunderscore($stringtoencode); - } - /** * Escape a string to insert data into a like * @@ -661,7 +670,7 @@ class TraceableDB extends DoliDB */ public function free($resultset = null) { - return $this->db->free($resultset); + $this->db->free($resultset); } /** diff --git a/htdocs/delivery/card.php b/htdocs/delivery/card.php index b98b75015ab..fe2aff8e4c3 100644 --- a/htdocs/delivery/card.php +++ b/htdocs/delivery/card.php @@ -38,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; if (isModEnabled("product") || isModEnabled("service")) { require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; } -if (!empty($conf->expedition_bon->enabled)) { +if (isModEnabled('expedition_bon')) { require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; } if (isModEnabled('stock')) { @@ -338,7 +338,7 @@ if ($action == 'create') { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($objectsrc->fk_project)) { $proj = new Project($db); diff --git a/htdocs/delivery/class/delivery.class.php b/htdocs/delivery/class/delivery.class.php index 73fc15e6911..3b560ce1026 100644 --- a/htdocs/delivery/class/delivery.class.php +++ b/htdocs/delivery/class/delivery.class.php @@ -1085,18 +1085,18 @@ class Delivery extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'delivery' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** diff --git a/htdocs/document.php b/htdocs/document.php index 4f6652fafda..eccf49de0be 100644 --- a/htdocs/document.php +++ b/htdocs/document.php @@ -286,9 +286,10 @@ $hookmanager->initHooks(array('document')); $parameters = array('ecmfile' => $ecmfile, 'modulepart' => $modulepart, 'original_file' => $original_file, 'entity' => $entity, 'refname' => $refname, 'fullpath_original_file' => $fullpath_original_file, 'filename' => $filename, 'fullpath_original_file_osencoded' => $fullpath_original_file_osencoded); -$reshook = $hookmanager->executeHooks('downloadDocument', $parameters); // Note that $action and $object may have been +$object = new stdClass(); +$reshook = $hookmanager->executeHooks('downloadDocument', $parameters, $object, $action); // Note that $action and $object may have been if ($reshook < 0) { - $errors = $hookmanager->error.(is_array($hookmanager->errors) ? (!empty($hookmanager->error) ? ', ' : '').join($separator, $hookmanager->errors) : ''); + $errors = $hookmanager->error.(is_array($hookmanager->errors) ? (!empty($hookmanager->error) ? ', ' : '').join(', ', $hookmanager->errors) : ''); dol_syslog("document.php - Errors when executing the hook 'downloadDocument' : ".$errors); print "ErrorDownloadDocumentHooks: ".$errors; exit; diff --git a/htdocs/don/card.php b/htdocs/don/card.php index 459c892a1d9..a077c703fda 100644 --- a/htdocs/don/card.php +++ b/htdocs/don/card.php @@ -52,7 +52,7 @@ $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); - +$socid = GETPOST('socid', 'int'); $amount = price2num(GETPOST('amount', 'alphanohtml'), 'MT'); $donation_date = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')); $projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0); @@ -63,6 +63,13 @@ if ($id > 0 || $ref) { $object->fetch($id, $ref); } +if (!empty($socid) && $socid > 0) { + $soc = new Societe($db); + if ($socid > 0) { + $soc->fetch($socid); + } +} + $extrafields = new ExtraFields($db); // fetch optionals attributes and labels @@ -729,7 +736,7 @@ if (!empty($id) && $action != 'edit') { $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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/don/class/don.class.php b/htdocs/don/class/don.class.php index b52e0974b9a..716e3728b57 100644 --- a/htdocs/don/class/don.class.php +++ b/htdocs/don/class/don.class.php @@ -206,7 +206,7 @@ class Don extends CommonObject */ public function initAsSpecimen() { - global $conf, $user, $langs; + global $conf; $now = dol_now(); @@ -224,10 +224,10 @@ class Don extends CommonObject $num_socs = $this->db->num_rows($resql); $i = 0; while ($i < $num_socs) { - $i++; - $row = $this->db->fetch_row($resql); $socids[$i] = $row[0]; + + $i++; } } @@ -237,7 +237,7 @@ class Don extends CommonObject $this->specimen = 1; $this->lastname = 'Doe'; $this->firstname = 'John'; - $this->socid = 1; + $this->socid = empty($socids[0]) ? 0 : $socids[0]; $this->date = $now; $this->date_valid = $now; $this->amount = 100.90; @@ -772,7 +772,7 @@ class Don extends CommonObject */ public function setPaid($id, $modepayment = 0) { - $sql = "UPDATE ".MAIN_DB_PREFIX."don SET fk_statut = 2"; + $sql = "UPDATE ".MAIN_DB_PREFIX."don SET fk_statut = 2, paid = 1"; if ($modepayment) { $sql .= ", fk_payment = ".((int) $modepayment); } @@ -782,6 +782,7 @@ class Don extends CommonObject if ($resql) { if ($this->db->affected_rows($resql)) { $this->statut = 2; + $this->paid = 1; return 1; } else { return 0; @@ -1101,18 +1102,18 @@ class Don extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old third-party id - * @param int $dest_id New third-party id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'don' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -1141,4 +1142,40 @@ class Don extends CommonObject return (float) $this->amount - $sum_amount; } } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + if (property_exists($this, 'date')) { + $return .= ' | '.$langs->trans("Date").' : '.dol_print_date($this->date).''; + } + if (property_exists($this, 'societe') && !empty($this->societe)) { + $return .= '
'.$langs->trans("Company").' : '.$this->societe.''; + } + if (property_exists($this, 'amount')) { + $return .= '
'.$langs->trans("Amount").' : '.price($this->amount).''; + } + if (method_exists($this, 'LibStatut')) { + $return .= '
'.$this->LibStatut($this->labelStatus, 5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/don/class/donstats.class.php b/htdocs/don/class/donstats.class.php index 07eb6d6588e..bd52f10dbc4 100644 --- a/htdocs/don/class/donstats.class.php +++ b/htdocs/don/class/donstats.class.php @@ -68,10 +68,11 @@ class DonationStats extends Stats */ public function __construct($db, $socid, $mode, $userid = 0) { - global $user, $conf; + global $conf; $this->db = $db; + $this->field = 'amount'; $this->socid = ($socid > 0 ? $socid : 0); $this->userid = $userid; $this->cachefilesuffix = $mode; @@ -98,8 +99,6 @@ class DonationStats extends Stats */ public function getNbByMonth($year, $format = 0) { - global $user; - $sql = "SELECT date_format(d.datedon,'%m') as dm, COUNT(*) as nb"; $sql .= " FROM ".$this->from; $sql .= " WHERE d.datedon BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; @@ -119,8 +118,6 @@ class DonationStats extends Stats */ public function getNbByYear() { - global $user; - $sql = "SELECT date_format(d.datedon,'%Y') as dm, COUNT(*) as nb, SUM(d.".$this->field.")"; $sql .= " FROM ".$this->from; $sql .= " WHERE ".$this->where; @@ -130,6 +127,45 @@ class DonationStats extends Stats return $this->_getNbByYear($sql); } + /** + * Return the number of subscriptions by month for a given year + * + * @param int $year Year + * @param int $format 0=Label of abscissa is a translated text, 1=Label of abscissa is month number, 2=Label of abscissa is first letter of month + * @return array Array of amount each month + */ + public function getAmountByMonth($year, $format = 0) + { + $sql = "SELECT date_format(d.datedon,'%m') as dm, sum(d.".$this->field.")"; + $sql .= " FROM ".$this->from; + //if (empty($user->rights->societe->client->voir) && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE ".dolSqlDateFilter('d.datedon', 0, 0, (int) $year, 1); + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); + + return $this->_getAmountByMonth($year, $sql, $format); + } + + /** + * Return average amount each month + * + * @param int $year Year + * @return array Array of average each month + */ + public function getAverageByMonth($year) + { + $sql = "SELECT date_format(d.datedon,'%m') as dm, avg(d.".$this->field.")"; + $sql .= " FROM ".$this->from; + //if (empty($user->rights->societe->client->voir) && !$this->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE ".dolSqlDateFilter('d.datedon', 0, 0, (int) $year, 1); + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); + + return $this->_getAverageByMonth($year, $sql); + } + /** * Return nb, total and average * @@ -137,8 +173,6 @@ class DonationStats extends Stats */ public function getAllByYear() { - global $user; - $sql = "SELECT date_format(d.datedon,'%Y') as year, COUNT(*) as nb, SUM(d.".$this->field.") as total, AVG(".$this->field.") as avg"; $sql .= " FROM ".$this->from; $sql .= " WHERE ".$this->where; diff --git a/htdocs/don/class/paymentdonation.class.php b/htdocs/don/class/paymentdonation.class.php index b42f5fb4e4d..657a1d32d1a 100644 --- a/htdocs/don/class/paymentdonation.class.php +++ b/htdocs/don/class/paymentdonation.class.php @@ -347,7 +347,7 @@ class PaymentDonation extends CommonObject $sql .= " note=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; $sql .= " fk_bank=".(isset($this->fk_bank) ? $this->fk_bank : "null").","; $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? $this->fk_user_creat : "null").","; - $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null").""; + $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null"); $sql .= " WHERE rowid=".(int) $this->id; $this->db->begin(); diff --git a/htdocs/don/document.php b/htdocs/don/document.php index a5aa3984202..786371bcdd3 100644 --- a/htdocs/don/document.php +++ b/htdocs/don/document.php @@ -146,7 +146,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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/don/info.php b/htdocs/don/info.php index ad67cceb30c..75efd9f73f5 100644 --- a/htdocs/don/info.php +++ b/htdocs/don/info.php @@ -102,7 +102,7 @@ if (isModEnabled('project')) { $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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/don/list.php b/htdocs/don/list.php index ac704571daa..eb487be4768 100644 --- a/htdocs/don/list.php +++ b/htdocs/don/list.php @@ -42,6 +42,7 @@ $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); $type = GETPOST('type', 'aZ'); +$mode = GETPOST('mode', 'alpha'); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 @@ -59,6 +60,7 @@ $search_status = (GETPOST("search_status", 'intcomma') != '') ? GETPOST("search_ $search_all = trim((GETPOST('search_all', 'alphanohtml') != '') ?GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); $search_ref = GETPOST('search_ref', 'alpha'); $search_company = GETPOST('search_company', 'alpha'); +$search_thirdparty = GETPOST('search_thirdparty', 'alpha'); $search_name = GETPOST('search_name', 'alpha'); $search_amount = GETPOST('search_amount', 'alpha'); $optioncss = GETPOST('optioncss', 'alpha'); @@ -71,6 +73,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_all = ""; $search_ref = ""; $search_company = ""; + $search_thirdparty = ""; $search_name = ""; $search_amount = ""; $search_status = ''; @@ -153,6 +156,9 @@ if ($resql) { $i = 0; $param = ''; + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -179,6 +185,8 @@ if ($resql) { } $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')); if ($user->rights->don->creer) { $newcardbutton .= dolGetButtonTitle($langs->trans('NewDonation'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/don/card.php?action=create'); } @@ -193,6 +201,9 @@ if ($resql) { print ''; print ''; print ''; + print ''; + + print_barre_liste($langs->trans("Donations"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'object_donation', 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -232,14 +243,14 @@ if ($resql) { print '
'; + print ''; $liststatus = array( Don::STATUS_DRAFT=>$langs->trans("DonationStatusPromiseNotValidated"), Don::STATUS_VALIDATED=>$langs->trans("DonationStatusPromiseValidated"), Don::STATUS_PAID=>$langs->trans("DonationStatusPaid"), Don::STATUS_CANCELED=>$langs->trans("Canceled") ); - print $form->selectarray('search_status', $liststatus, $search_status, -4, 0, 0, '', 0, 0, 0, '', 'maxwidth100 onrightofpage'); + print $form->selectarray('search_status', $liststatus, $search_status, -4, 0, 0, '', 0, 0, 0, '', 'search_status maxwidth100 onrightofpage'); print ''; $searchpicto = $form->showFilterAndCheckAddButtons(0); @@ -267,44 +278,70 @@ if ($resql) { while ($i < min($num, $limit)) { $objp = $db->fetch_object($resql); + $donationstatic->setVarsFromFetchObj($objp); + $company = new Societe($db); + $result = $company->fetch($objp->socid); + + if ($mode == 'kanban') { + if ($i == 0) { + print '
'; + print '
'; + } + // Output Kanban + $donationstatic->amount = $objp->amount; + $donationstatic->date = $objp->datedon; + $donationstatic->labelStatus = $objp->status; + $donationstatic->id = $objp->rowid; + $donationstatic->ref = $objp->rowid; - print '
".$donationstatic->getNomUrl(1)."".$company->getNomUrl(1)."
".$donationstatic->getNomUrl(1)."".$company->getNomUrl(1)."".$objp->societe."".$objp->societe."".$objp->societe."".$donationstatic->getFullName($langs)."'.dol_print_date($db->jdate($objp->datedon), 'day').'"; - if ($objp->pid) { - $projectstatic->id = $objp->pid; - $projectstatic->ref = $objp->ref; - $projectstatic->id = $objp->pid; - $projectstatic->public = $objp->public; - $projectstatic->title = $objp->title; - print $projectstatic->getNomUrl(1); - } else { - print ' '; + print "".$donationstatic->getFullName($langs)."'.dol_print_date($db->jdate($objp->datedon), 'day').'"; + if ($objp->pid) { + $projectstatic->id = $objp->pid; + $projectstatic->ref = $objp->ref; + $projectstatic->id = $objp->pid; + $projectstatic->public = $objp->public; + $projectstatic->title = $objp->title; + print $projectstatic->getNomUrl(1); + } else { + print ' '; + } + print "'.price($objp->amount).''.$donationstatic->LibStatut($objp->status, 5).'
'.price($objp->amount).''.$donationstatic->LibStatut($objp->status, 5).'
"; diff --git a/htdocs/don/note.php b/htdocs/don/note.php index dd3f4e176ce..14011000267 100644 --- a/htdocs/don/note.php +++ b/htdocs/don/note.php @@ -121,7 +121,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= ''; $morehtmlref .= ''; } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/don/payment/card.php b/htdocs/don/payment/card.php index 19f40bc984e..416e848d271 100644 --- a/htdocs/don/payment/card.php +++ b/htdocs/don/payment/card.php @@ -181,7 +181,7 @@ if ($resql) { // Expected to pay print '
'.price($objp->d_amount).''.$don->getLibStatut(4, $objp->amount).''.$don->getLibStatut(4).''.price($objp->amount).'
'; print ''; print ''; -print ''; +print ''; /*print ''; print '';*/ print ''; @@ -334,7 +334,7 @@ print '
'.$langs->trans("Year").''.$langs->trans("NbOfSendings").''.$langs->trans("NbOfDonations").''.$langs->trans("AmountTotal").''.$langs->trans("AmountAverage").'
'; */ print '
'; -print ''.$langs->trans("StatsOnShipmentsOnlyValidated").''; +print ''.$langs->trans("StatsOnDonationsOnlyValidated").''; llxFooter(); diff --git a/htdocs/ecm/class/ecmfiles.class.php b/htdocs/ecm/class/ecmfiles.class.php index ab7b13aba90..cf1a570f04f 100644 --- a/htdocs/ecm/class/ecmfiles.class.php +++ b/htdocs/ecm/class/ecmfiles.class.php @@ -240,12 +240,9 @@ class EcmFiles extends CommonObject } // If ref not defined - $ref = ''; - if (!empty($this->ref)) { - $ref = $this->ref; - } else { + if (empty($this->ref)) { include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; - $ref = dol_hash($this->filepath.'/'.$this->filename, 3); + $this->ref = dol_hash($this->filepath.'/'.$this->filename, 3); } $maxposition = 0; @@ -300,7 +297,7 @@ class EcmFiles extends CommonObject $sql .= 'src_object_type,'; $sql .= 'src_object_id'; $sql .= ') VALUES ('; - $sql .= " '".$this->db->escape($ref)."', "; + $sql .= " '".$this->db->escape($this->ref)."', "; $sql .= ' '.(!isset($this->label) ? 'NULL' : "'".$this->db->escape($this->label)."'").','; $sql .= ' '.(!isset($this->share) ? 'NULL' : "'".$this->db->escape($this->share)."'").','; $sql .= ' '.((int) $this->entity).','; diff --git a/htdocs/ecm/dir_add_card.php b/htdocs/ecm/dir_add_card.php index 3f20188db56..acdc6c2990a 100644 --- a/htdocs/ecm/dir_add_card.php +++ b/htdocs/ecm/dir_add_card.php @@ -93,18 +93,18 @@ if (!empty($section)) { } // Permissions -$permtoadd = 0; -$permtoupload = 0; +$permissiontoadd = 0; +$permissiontoupload = 0; if ($module == 'ecm') { - $permtoadd = $user->rights->ecm->setup; - $permtoupload = $user->rights->ecm->upload; + $permissiontoadd = $user->rights->ecm->setup; + $permissiontoupload = $user->rights->ecm->upload; } if ($module == 'medias') { - $permtoadd = ($user->rights->mailing->creer || $user->rights->website->write); - $permtoupload = ($user->rights->mailing->creer || $user->rights->website->write); + $permissiontoadd = ($user->rights->mailing->creer || $user->rights->website->write); + $permissiontoupload = ($user->rights->mailing->creer || $user->rights->website->write); } -if (!$permtoadd) { +if (!$permissiontoadd) { accessforbidden(); } @@ -115,7 +115,7 @@ if (!$permtoadd) { */ // Action ajout d'un produit ou service -if ($action == 'add' && $permtoadd) { +if ($action == 'add' && $permissiontoadd) { if ($cancel) { if (!empty($backtopage)) { header("Location: ".$backtopage); @@ -189,7 +189,7 @@ if ($action == 'add' && $permtoadd) { exit; } } -} elseif ($action == 'confirm_deletesection' && $confirm == 'yes' && $permtoadd) { +} elseif ($action == 'confirm_deletesection' && $confirm == 'yes' && $permissiontoadd) { // Deleting file $result = $ecmdir->delete($user); setEventMessages($langs->trans("ECMSectionWasRemoved", $ecmdir->label), null, 'mesgs'); diff --git a/htdocs/ecm/dir_card.php b/htdocs/ecm/dir_card.php index adfd405790f..e45175bb5c7 100644 --- a/htdocs/ecm/dir_card.php +++ b/htdocs/ecm/dir_card.php @@ -90,21 +90,21 @@ if ($module == 'ecm') { } // Permissions -$permtoread = 0; -$permtoadd = 0; -$permtoupload = 0; +$permissiontoread = 0; +$permissiontoadd = 0; +$permissiontoupload = 0; if ($module == 'ecm') { - $permtoread = $user->rights->ecm->read; - $permtoadd = $user->rights->ecm->setup; - $permtoupload = $user->rights->ecm->upload; + $permissiontoread = $user->hasRight("ecm", "read"); + $permissiontoadd = $user->hasRight("ecm", "setup"); + $permissiontoupload = $user->hasRight("ecm", "upload"); } if ($module == 'medias') { - $permtoread = ($user->rights->mailing->lire || $user->rights->website->read); - $permtoadd = ($user->rights->mailing->creer || $user->rights->website->write); - $permtoupload = ($user->rights->mailing->creer || $user->rights->website->write); + $permissiontoread = ($user->hasRight("mailing", "lire") || $user->hasRight("website", "read")); + $permissiontoadd = ($user->hasRight("mailing", "creer") || $user->hasRight("website", "write")); + $permissiontoupload = ($user->hasRight("mailing", "creer") || $user->hasRight("website", "write")); } -if (!$permtoread) { +if (!$permissiontoread) { accessforbidden(); } @@ -114,7 +114,7 @@ if (!$permtoread) { */ // Upload file -if (GETPOST("sendit") && !empty($conf->global->MAIN_UPLOAD_DOC) && $permtoupload) { +if (GETPOST("sendit") && !empty($conf->global->MAIN_UPLOAD_DOC) && $permissiontoupload) { if (dol_mkdir($upload_dir) >= 0) { $resupload = dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir."/".dol_unescapefile($_FILES['userfile']['name']), 0, 0, $_FILES['userfile']['error']); if (is_numeric($resupload) && $resupload > 0) { @@ -139,7 +139,7 @@ if (GETPOST("sendit") && !empty($conf->global->MAIN_UPLOAD_DOC) && $permtoupload } // Remove file -if ($action == 'confirm_deletefile' && $confirm == 'yes' && $permtoupload) { +if ($action == 'confirm_deletefile' && $confirm == 'yes' && $permissiontoupload) { $langs->load("other"); $file = $upload_dir."/".GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). $ret = dol_delete_file($file); @@ -153,7 +153,7 @@ if ($action == 'confirm_deletefile' && $confirm == 'yes' && $permtoupload) { } // Remove dir -if ($action == 'confirm_deletedir' && $confirm == 'yes' && $permtoupload) { +if ($action == 'confirm_deletedir' && $confirm == 'yes' && $permissiontoupload) { $backtourl = DOL_URL_ROOT."/ecm/index.php"; if ($module == 'medias') { $backtourl = DOL_URL_ROOT."/website/index.php?file_manager=1"; @@ -189,7 +189,7 @@ if ($action == 'confirm_deletedir' && $confirm == 'yes' && $permtoupload) { } // Update dirname or description -if ($action == 'update' && !GETPOST('cancel', 'alpha') && $permtoadd) { +if ($action == 'update' && !GETPOST('cancel', 'alpha') && $permissiontoadd) { $error = 0; if ($module == 'ecm') { @@ -454,17 +454,17 @@ print dol_get_fiche_end(); if ($action != 'edit' && $action != 'delete' && $action != 'deletefile') { print '
'; - if ($permtoadd) { + if ($permissiontoadd) { print ''.$langs->trans('Edit').''; } - if ($permtoadd) { + if ($permissiontoadd) { print ''.$langs->trans('ECMAddSection').''; } else { print ''.$langs->trans('ECMAddSection').''; } - print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken().($module ? '&module='.urlencode($module) : '').'§ion='.urlencode($section).($backtopage ? '&backtopage='.urlencode($backtopage) : ''), '', $permtoadd); + print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken().($module ? '&module='.urlencode($module) : '').'§ion='.urlencode($section).($backtopage ? '&backtopage='.urlencode($backtopage) : ''), '', $permissiontoadd); print '
'; } diff --git a/htdocs/ecm/file_card.php b/htdocs/ecm/file_card.php index 8202335fbc3..e1443974bf7 100644 --- a/htdocs/ecm/file_card.php +++ b/htdocs/ecm/file_card.php @@ -103,11 +103,11 @@ if ($result < 0) { } // Permissions -$permtoread = $user->rights->ecm->read; -$permtoadd = $user->rights->ecm->setup; -$permtoupload = $user->rights->ecm->upload; +$permissiontoread = $user->rights->ecm->read; +$permissiontoadd = $user->rights->ecm->setup; +$permissiontoupload = $user->rights->ecm->upload; -if (!$permtoread) { +if (!$permissiontoread) { accessforbidden(); } @@ -128,7 +128,7 @@ if ($cancel) { } // Rename file -if ($action == 'update' && $permtoadd) { +if ($action == 'update' && $permissiontoadd) { $error = 0; $oldlabel = GETPOST('urlfile', 'alpha'); diff --git a/htdocs/ecm/file_note.php b/htdocs/ecm/file_note.php index 07534dc5ae8..6804714757c 100644 --- a/htdocs/ecm/file_note.php +++ b/htdocs/ecm/file_note.php @@ -108,9 +108,9 @@ if ($result < 0) { $permissionnote = $user->rights->ecm->setup; // Used by the include of actions_setnotes.inc.php -$permtoread = $user->rights->ecm->read; +$permissiontoread = $user->rights->ecm->read; -if (!$permtoread) { +if (!$permissiontoread) { accessforbidden(); } diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php index 9eb512bc96d..6edf59dcbed 100644 --- a/htdocs/ecm/index.php +++ b/htdocs/ecm/index.php @@ -322,7 +322,7 @@ $moreheadjs .= ''."\n"; llxHeader($moreheadcss.$moreheadjs, $langs->trans("ECMArea"), '', '', '', '', $morejs, '', 0, 0); -$head = ecm_prepare_dasboard_head(''); +$head = ecm_prepare_dasboard_head(null); print dol_get_fiche_head($head, 'index', '', -1, ''); diff --git a/htdocs/ecm/index_auto.php b/htdocs/ecm/index_auto.php index 342d7d74129..3944e869da0 100644 --- a/htdocs/ecm/index_auto.php +++ b/htdocs/ecm/index_auto.php @@ -309,7 +309,7 @@ llxHeader($moreheadcss.$moreheadjs, $langs->trans("ECMArea"), '', '', '', '', $m // Add sections to manage $rowspan = 0; $sectionauto = array(); -if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { +if (empty($conf->global->ECM_AUTO_TREE_HIDEN)) { if (isModEnabled("product") || isModEnabled("service")) { $langs->load("products"); $rowspan++; $sectionauto[] = array('position'=>10, 'level'=>1, 'module'=>'product', 'test'=>(isModEnabled("product") || isModEnabled("service")), 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); @@ -387,7 +387,7 @@ if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { } } -$head = ecm_prepare_dasboard_head(''); +$head = ecm_prepare_dasboard_head(null); print dol_get_fiche_head($head, 'index_auto', '', -1, ''); diff --git a/htdocs/ecm/index_medias.php b/htdocs/ecm/index_medias.php index f5ad347bccf..39118774430 100644 --- a/htdocs/ecm/index_medias.php +++ b/htdocs/ecm/index_medias.php @@ -37,6 +37,7 @@ $langs->loadLangs(array('ecm', 'companies', 'other', 'users', 'orders', 'propal' // Get parameters $action = GETPOST('action', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); $socid = GETPOST('socid', 'int'); $file_manager = GETPOST('file_manager', 'alpha'); @@ -50,6 +51,7 @@ $overwritefile = GETPOST('overwritefile', 'int'); if (empty($action) && $file_manager) { $action = 'file_manager'; } +$pageid = GETPOST('pageid', 'int'); $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -90,7 +92,7 @@ if ($user->socid) { } $result = restrictedArea($user, 'ecm', 0); -$permtouploadfile = ($user->hasRight('ecm', 'setup') || $user->hasRight('mailing', 'creer') || $user->hasRight('website', 'write')); +$permissiontouploadfile = ($user->hasRight('ecm', 'setup') || $user->hasRight('mailing', 'creer') || $user->hasRight('website', 'write')); $diroutput = $conf->medias->multidir_output[$conf->entity]; $relativepath = $section_dir; @@ -98,7 +100,7 @@ $upload_dir = preg_replace('/\/$/', '', $diroutput).'/'.preg_replace('/^\//', '' $websitekey = ''; -$permissiontoadd = $permtouploadfile; // Used by the include of actions_addupdatedelete.inc.php and actions_linkedfiles +$permissiontoadd = $permissiontouploadfile; // Used by the include of actions_addupdatedelete.inc.php and actions_linkedfiles /* @@ -123,7 +125,7 @@ if ($action == 'renamefile') { // Must be after include DOL_DOCUMENT_ROOT.'/core // Add directory -if ($action == 'add' && $permtouploadfile) { +if ($action == 'add' && $permissiontouploadfile) { $ecmdir->ref = 'NOTUSEDYET'; $ecmdir->label = GETPOST("label"); $ecmdir->description = GETPOST("desc"); @@ -293,7 +295,7 @@ $moreheadjs .= ''."\n"; llxHeader($moreheadcss.$moreheadjs, $langs->trans("ECMArea"), '', '', '', '', $morejs, '', 0, 0); -$head = ecm_prepare_dasboard_head(''); +$head = ecm_prepare_dasboard_head(null); print dol_get_fiche_head($head, 'index_medias', '', -1, ''); diff --git a/htdocs/ecm/search.php b/htdocs/ecm/search.php index 4c45ec06403..c43428fae8e 100644 --- a/htdocs/ecm/search.php +++ b/htdocs/ecm/search.php @@ -85,9 +85,9 @@ if (!empty($section)) { } } -$permtoread = $user->rights->ecm->read; +$permissiontoread = $user->rights->ecm->read; -if (!$permtoread) { +if (!$permissiontoread) { accessforbidden(); } @@ -175,7 +175,7 @@ print load_fiche_titre($langs->trans("ECMArea").' - '.$langs->trans("Search")); print $langs->trans("FeatureNotYetAvailable").'.

'; // Tool bar -$head = ecm_prepare_head_fm($ecmdir, $module, $section); +$head = ecm_prepare_head_fm($ecmdir); //print dol_get_fiche_head($head, 'search_form', '', 1); diff --git a/htdocs/emailcollector/class/emailcollector.class.php b/htdocs/emailcollector/class/emailcollector.class.php index 8d72666ad53..69d1ea61a30 100644 --- a/htdocs/emailcollector/class/emailcollector.class.php +++ b/htdocs/emailcollector/class/emailcollector.class.php @@ -128,7 +128,7 @@ class EmailCollector extends CommonObject public $fields = array( 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>2, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1), 'entity' => array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20), - 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'help'=>'Example: MyCollector1', 'csslist'=>'tdoverflowmax150'), + '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'=>'tdoverflowmax200'), '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'=>'tdoverflowmax125'), @@ -145,7 +145,7 @@ class EmailCollector extends CommonObject '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, '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, 'csslist'=>'small'), + 'lastresult' => array('type'=>'varchar(255)', 'label'=>'LastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>123, 'notnull'=>-1, 'csslist'=>'small tdoverflowmax200'), '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,), @@ -881,8 +881,24 @@ class EmailCollector extends CommonObject */ private function overwritePropertiesOfObject(&$object, $actionparam, $messagetext, $subject, $header, &$operationslog) { + global $conf, $langs; + $errorforthisaction = 0; + // set output lang + $outputlangs = $langs; + $newlang = ''; + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + $newlang = GETPOST('lang_id', 'aZ09'); + } + if (getDolGlobalInt('MAIN_MULTILANGS') && empty($newlang)) { + $newlang = $object->thirdparty->default_lang; + } + if (!empty($newlang)) { + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang($newlang); + } + // Overwrite values with values extracted from source email // $this->actionparam = 'opportunity_status=123;abc=EXTRACT:BODY:....' $arrayvaluetouse = dolExplodeIntoArray($actionparam, ';', '='); @@ -978,7 +994,8 @@ class EmailCollector extends CommonObject if ($regforregex[1] == 'SET' || empty($valuecurrent)) { $valuetouse = $regforregex[2]; - $substitutionarray = array(); + $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); + complete_substitutions_array($substitutionarray, $outputlangs, $object); $matcharray = array(); preg_match_all('/__([a-z0-9]+(?:_[a-z0-9]+)?)__/i', $valuetouse, $matcharray); //var_dump($tmpproperty.' - '.$object->$tmpproperty.' - '.$valuetouse); var_dump($matcharray); @@ -1501,7 +1518,7 @@ class EmailCollector extends CommonObject $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)) { + if (preg_match('/\+(thi|ctc|use|mem|sub|proj|tas|con|tic|pro|ord|inv|spro|sor|sin|leav|stockinv|job|surv|salary)([0-9]+)@/', $emailto, $reg)) { $trackidfoundintorecipienttype = $reg[1]; $trackidfoundintorecipientid = $reg[2]; } elseif (preg_match('/\+emailing-(\w+)@/', $emailto, $reg)) { // Can be 'emailing-test' or 'emailing-IdMailing-IdRecipient' @@ -2141,6 +2158,118 @@ class EmailCollector extends CommonObject } } } + } elseif ($operation['type'] == 'loadandcreatecontact') { // Search and create contact + if (empty($operation['actionparam'])) { + $errorforactions++; + $this->error = "Action loadandcreatecontact has empty parameter. Must be 'SET:xxx' or 'EXTRACT:(body|subject):regex' to define how to extract data"; + $this->errors[] = $this->error; + } else { + $contact_static = new Contact($this->db); + // Overwrite values with values extracted from source email + $errorforthisaction = $this->overwritePropertiesOfObject($contact_static, $operation['actionparam'], $messagetext, $subject, $header, $operationslog); + if ($errorforthisaction) { + $errorforactions++; + } else { + if (!empty($contact_static->email) && $contact_static->email != $from) $from = $contact_static->email; + + $result = $contactstatic->fetch(0, null, '', $from); + if ($result < 0) { + $errorforactions++; + $this->error = 'Error when getting contact with email ' . $from; + $this->errors[] = $this->error; + break; + } elseif ($result == 0) { + dol_syslog("Contact with email " . $from . " was not found. We try to create it."); + $contactstatic = new Contact($this->db); + + // Create contact + $contactstatic->email = $from; + $operationslog .= '
We set property email='.dol_escape_htmltag($from); + + // Overwrite values with values extracted from source email + $errorforthisaction = $this->overwritePropertiesOfObject($contactstatic, $operation['actionparam'], $messagetext, $subject, $header, $operationslog); + + if ($errorforthisaction) { + $errorforactions++; + } else { + // Search country by name or code + if (!empty($contactstatic->country)) { + require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; + $result = getCountry('', 3, $this->db, '', 1, $contactstatic->country); + if ($result == 'NotDefined') { + $errorforactions++; + $this->error = "Error country not found by this name '" . $contactstatic->country . "'"; + } elseif (!($result > 0)) { + $errorforactions++; + $this->error = "Error when search country by this name '" . $contactstatic->country . "'"; + $this->errors[] = $this->db->lasterror(); + } else { + $contactstatic->country_id = $result; + $operationslog .= '
We set property country_id='.dol_escape_htmltag($result); + } + } elseif (!empty($contactstatic->country_code)) { + require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; + $result = getCountry($contactstatic->country_code, 3, $this->db); + if ($result == 'NotDefined') { + $errorforactions++; + $this->error = "Error country not found by this code '" . $contactstatic->country_code . "'"; + } elseif (!($result > 0)) { + $errorforactions++; + $this->error = "Error when search country by this code '" . $contactstatic->country_code . "'"; + $this->errors[] = $this->db->lasterror(); + } else { + $contactstatic->country_id = $result; + $operationslog .= '
We set property country_id='.dol_escape_htmltag($result); + } + } + + if (!$errorforactions) { + // Search state by name or code (for country if defined) + if (!empty($contactstatic->state)) { + require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php'; + $result = dol_getIdFromCode($this->db, $contactstatic->state, 'c_departements', 'nom', 'rowid'); + if (empty($result)) { + $errorforactions++; + $this->error = "Error state not found by this name '" . $contactstatic->state . "'"; + } elseif (!($result > 0)) { + $errorforactions++; + $this->error = "Error when search state by this name '" . $contactstatic->state . "'"; + $this->errors[] = $this->db->lasterror(); + } else { + $contactstatic->state_id = $result; + $operationslog .= '
We set property state_id='.dol_escape_htmltag($result); + } + } elseif (!empty($contactstatic->state_code)) { + require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php'; + $result = dol_getIdFromCode($this->db, $contactstatic->state_code, 'c_departements', 'code_departement', 'rowid'); + if (empty($result)) { + $errorforactions++; + $this->error = "Error state not found by this code '" . $contactstatic->state_code . "'"; + } elseif (!($result > 0)) { + $errorforactions++; + $this->error = "Error when search state by this code '" . $contactstatic->state_code . "'"; + $this->errors[] = $this->db->lasterror(); + } else { + $contactstatic->state_id = $result; + $operationslog .= '
We set property state_id='.dol_escape_htmltag($result); + } + } + } + + if (!$errorforactions) { + $result = $contactstatic->create($user); + if ($result <= 0) { + $errorforactions++; + $this->error = $contactstatic->error; + $this->errors = $contactstatic->errors; + } else { + $operationslog .= '
Contact created -> id = '.dol_escape_htmltag($contactstatic->id); + } + } + } + } + } + } } elseif ($operation['type'] == 'recordevent') { // Create event $actioncomm = new ActionComm($this->db); @@ -2260,7 +2389,7 @@ class EmailCollector extends CommonObject 'fields' => array('ref'), 'class' => 'recruitment/class/recruitmentjobposition.class.php', 'object' => 'RecruitmentJobPosition'), - 'recruitment/recruitmentjobposition' => array('table' => 'recruitment_recruitmentcandidature', + 'recruitment/recruitmentcandidature' => array('table' => 'recruitment_recruitmentcandidature', 'fields' => array('ref'), 'class' => 'recruitment/class/recruitmentcandidature.class.php', 'object' => ' RecruitmentCandidature'), @@ -2305,7 +2434,7 @@ class EmailCollector extends CommonObject 'class' => 'compta/facture/class/facture.class.php', 'object' => 'Facture'), 'fournisseur/facture' => array('table' => 'facture_fourn', - 'fields' => array('ref', ref_client), + 'fields' => array('ref', 'ref_client'), 'class' => 'fourn/class/fournisseur.facture.class.php', 'object' => 'FactureFournisseur'), 'produit' => array('table' => 'product', @@ -2803,7 +2932,11 @@ class EmailCollector extends CommonObject // TODO Move mail using PHP-IMAP } } else { - dol_syslog("EmailCollector::doCollectOneCollector message ".$imapemail." to ".$connectstringtarget." was set to read", LOG_DEBUG); + if (empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + dol_syslog("EmailCollector::doCollectOneCollector message ".((string) $imapemail)." to ".$connectstringtarget." was set to read", LOG_DEBUG); + } else { + dol_syslog("EmailCollector::doCollectOneCollector message '".($imapemail->getHeader()->get('subject'))."' using this->host=".$this->host.", this->access_type=".$this->acces_type." was set to read", LOG_DEBUG); + } } } else { $errorforemail++; @@ -3008,13 +3141,14 @@ class EmailCollector extends CommonObject * Check if the same file name already exists in the upload folder, * append increment number to the original filename */ - while (file_exists($destdir."/" . $file_name . "." . $extension)) { - $file_name = (string) $file_name_original . ' (' . $num . ')'; + while (file_exists($destdir."/".$file_name.".".$extension)) { + $file_name = $file_name_original . ' (' . $num . ')'; $file_name_complete = $file_name . "." . $extension; $destination = $destdir.'/'.$file_name_complete; $num++; } + $destination = dol_sanitizePathName($destination); file_put_contents($destination, $data); } diff --git a/htdocs/emailcollector/class/emailcollectoraction.class.php b/htdocs/emailcollector/class/emailcollectoraction.class.php index e43a86da515..5616abbbd35 100644 --- a/htdocs/emailcollector/class/emailcollectoraction.class.php +++ b/htdocs/emailcollector/class/emailcollectoraction.class.php @@ -24,8 +24,6 @@ // Put here all includes required by your class file require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; -//require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; -//require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; /** * Class for EmailCollectorAction @@ -113,37 +111,6 @@ class EmailCollectorAction extends CommonObject public $status; // END MODULEBUILDER PROPERTIES - - - // If this object has a subtable with lines - - // /** - // * @var string Name of subtable line - // */ - //public $table_element_line = 'emailcollectoractiondet'; - - // /** - // * @var string Field with ID of parent key if this field has a parent - // */ - //public $fk_element = 'fk_emailcollectoraction'; - - // /** - // * @var string Name of subtable class that manage subtable lines - // */ - //public $class_element_line = 'EmailcollectorActionline'; - - // /** - // * @var array List of child tables. To test if we can delete object. - // */ - //protected $childtables=array(); - - // /** - // * @var EmailcollectorActionLine[] Array of subtable lines - // */ - //public $lines = array(); - - - /** * Constructor * @@ -225,16 +192,14 @@ class EmailCollectorAction extends CommonObject // Clear fields $object->ref = "copy_of_".$object->ref; - $object->title = $langs->trans("CopyOf")." ".$object->title; - // ... + // $object->title = $langs->trans("CopyOf")." ".$object->title; + // Clear extrafields that are unique if (is_array($object->array_options) && count($object->array_options) > 0) { $extrafields->fetch_name_optionals_label($this->table_element); foreach ($object->array_options as $key => $option) { $shortkey = preg_replace('/options_/', '', $key); if (!empty($extrafields->attributes[$this->element]['unique'][$shortkey])) { - //var_dump($key); - //var_dump($clonedObj->array_options[$key]); exit; unset($object->array_options[$key]); } } @@ -271,26 +236,10 @@ class EmailCollectorAction extends CommonObject public function fetch($id, $ref = null) { $result = $this->fetchCommon($id, $ref); - // if ($result > 0 && !empty($this->table_element_line)) { - // $this->fetchLinesCommon(); - // } + return $result; } - /** - * Load object lines in memory from the database - * - * @return int <0 if KO, 0 if not found, >0 if OK - */ - /*public function fetchLines() - { - $this->lines=array(); - - // Load lines with object EmailcollectorActionLine - - return count($this->lines)?1:0; - }*/ - /** * Update object into database * @@ -336,7 +285,6 @@ class EmailCollectorAction extends CommonObject } $result = ''; - $companylink = ''; $label = ''.$langs->trans("EmailcollectorAction").''; $label .= '
'; @@ -487,7 +435,7 @@ class EmailCollectorAction extends CommonObject $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_creation = $this->db->jdate($obj->datec); $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } diff --git a/htdocs/emailcollector/class/emailcollectorfilter.class.php b/htdocs/emailcollector/class/emailcollectorfilter.class.php index cff80aa4153..327159f61a4 100644 --- a/htdocs/emailcollector/class/emailcollectorfilter.class.php +++ b/htdocs/emailcollector/class/emailcollectorfilter.class.php @@ -206,16 +206,14 @@ class EmailCollectorFilter extends CommonObject // Clear fields $object->ref = "copy_of_".$object->ref; - $object->title = $langs->trans("CopyOf")." ".$object->title; - // ... + // $object->title = $langs->trans("CopyOf")." ".$object->title; + // Clear extrafields that are unique if (is_array($object->array_options) && count($object->array_options) > 0) { $extrafields->fetch_name_optionals_label($this->table_element); foreach ($object->array_options as $key => $option) { $shortkey = preg_replace('/options_/', '', $key); if (!empty($extrafields->attributes[$this->element]['unique'][$shortkey])) { - //var_dump($key); - //var_dump($clonedObj->array_options[$key]); exit; unset($object->array_options[$key]); } } @@ -252,26 +250,10 @@ class EmailCollectorFilter extends CommonObject public function fetch($id, $ref = null) { $result = $this->fetchCommon($id, $ref); - if ($result > 0 && !empty($this->table_element_line)) { - $this->fetchLines(); - } + return $result; } - /** - * Load object lines in memory from the database - * - * @return int <0 if KO, 0 if not found, >0 if OK - */ - /*public function fetchLines() - { - $this->lines=array(); - - // Load lines with object EmailcollectorFilterLine - - return count($this->lines)?1:0; - }*/ - /** * Update object into database * @@ -317,7 +299,6 @@ class EmailCollectorFilter extends CommonObject } $result = ''; - $companylink = ''; $label = ''.$langs->trans("EmailcollectorFilter").''; $label .= '
'; @@ -468,7 +449,7 @@ class EmailCollectorFilter extends CommonObject $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_creation = $this->db->jdate($obj->datec); $this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem); } diff --git a/htdocs/eventorganization/class/conferenceorbooth.class.php b/htdocs/eventorganization/class/conferenceorbooth.class.php index cdb67a2c37b..b15dcf3e545 100644 --- a/htdocs/eventorganization/class/conferenceorbooth.class.php +++ b/htdocs/eventorganization/class/conferenceorbooth.class.php @@ -104,21 +104,21 @@ class ConferenceOrBooth extends ActionComm */ public $fields = array( 'id' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), - 'ref' => array('type'=>'integer', 'label'=>'Ref', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>2, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), - 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>'1', 'position'=>30, 'notnull'=>0, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth300', 'csslist'=>'tdoverflowmax125', 'help'=>"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'), + 'ref' => array('type'=>'integer', 'label'=>'Ref', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>2, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'csslist'=>'left', 'comment'=>"Id"), + 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth300', 'csslist'=>'tdoverflowmax125', 'help'=>"OrganizationEvenLabelName", 'showoncombobox'=>'1', 'autofocusoncreate'=>1), + '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', 'csslist'=>'width100'), + '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', 'csslist'=>'tdoverflowmax125', 'css'=>'maxwidth500'), + 'note' => array('type'=>'text', 'label'=>'Description', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>3), + 'fk_action' => array('type'=>'sellist:c_actioncomm:libelle:id::module LIKE (\'%@eventorganization\')', 'label'=>'Format', 'enabled'=>'1', 'position'=>60, 'notnull'=>1, 'visible'=>1, 'css'=>'width100', 'csslist'=>'tdoverflowmax100'), 'datep' => array('type'=>'datetime', 'label'=>'DateStart', 'enabled'=>'1', 'position'=>70, 'notnull'=>0, 'visible'=>1, 'showoncombobox'=>'2',), 'datep2' => array('type'=>'datetime', 'label'=>'DateEnd', 'enabled'=>'1', 'position'=>71, 'notnull'=>0, 'visible'=>1, 'showoncombobox'=>'3',), - 'datec' => 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_author' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>'1', 'position'=>510, 'notnull'=>1, 'visible'=>-2, 'foreignkey'=>'user.rowid',), - 'fk_user_mod' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>'1', 'position'=>511, 'notnull'=>-1, 'visible'=>-2,), + 'datec' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-2, 'csslist'=>'nowraponall'), + 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>'1', 'position'=>501, 'notnull'=>0, 'visible'=>-2, 'csslist'=>'nowraponall'), + 'fk_user_author' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>'1', 'position'=>510, 'notnull'=>1, 'visible'=>-2, 'foreignkey'=>'user.rowid', 'csslist'=>'tdoverflowmax100'), + 'fk_user_mod' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>'1', 'position'=>511, 'notnull'=>-1, 'visible'=>-2, 'csslist'=>'tdoverflowmax100'), + 'num_vote' => array('type'=>'smallint', 'label'=>'NbVotes', 'enabled'=>'1', 'position'=>800, 'notnull'=>-1, 'visible'=>5, 'default'=>'0', 'index'=>0), 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), 'status' => array('type'=>'smallint', 'label'=>'Status', 'enabled'=>'1', 'position'=>1000, 'notnull'=>1, 'visible'=>1, 'default'=>'0', 'index'=>1, 'arrayofkeyval'=>array('0'=>'EvntOrgDraft', '1'=>'EvntOrgSuggested', '2'=> 'EvntOrgConfirmed', '3' =>'EvntOrgNotQualified', '4' =>'EvntOrgDone', '9'=>'EvntOrgCancelled'),), - 'num_vote' => array('type'=>'smallint', 'label'=>'NbVotes', 'enabled'=>'1', 'position'=>1001, 'notnull'=>-1, 'visible'=>5, 'default'=>'0', 'index'=>0), ); public $rowid; public $id; @@ -217,7 +217,6 @@ class ConferenceOrBooth extends ActionComm $this->socid = $this->fk_soc; $this->datef = $this->datep2; $this->note_private = $this->note; - $this->fk_user_author = $this->fk_user_author; } /** @@ -250,7 +249,7 @@ class ConferenceOrBooth extends ActionComm $link_subscription = $dolibarr_main_url_root.'/public/eventorganization/attendee_new.php?id='.urlencode($id).'&type=conf'; - $encodedsecurekey = dol_hash($conf->global->EVENTORGANIZATION_SECUREKEY.'conferenceorbooth'.$id, 2); + $encodedsecurekey = dol_hash(getDolGlobalString('EVENTORGANIZATION_SECUREKEY').'conferenceorbooth'.$id, 2); $link_subscription .= '&securekey='.urlencode($encodedsecurekey); /*$this->fields['pubregister'] = array('type'=>'url', 'label'=>$langs->trans("PublicAttendeeSubscriptionPage"), 'enabled'=>'1', 'position'=>72, 'notnull'=>0, 'visible'=>1); @@ -285,7 +284,7 @@ class ConferenceOrBooth extends ActionComm $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; $sql .= " INNER JOIN ".MAIN_DB_PREFIX."c_actioncomm as cact ON cact.id=t.fk_action AND cact.module LIKE '%@eventorganization'"; 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'; } @@ -716,8 +715,8 @@ class ConferenceOrBooth extends ActionComm $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_conferenceorbooth = '.((int) $this->id))); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; diff --git a/htdocs/eventorganization/class/conferenceorboothattendee.class.php b/htdocs/eventorganization/class/conferenceorboothattendee.class.php index 595eaf67eeb..afee798829f 100644 --- a/htdocs/eventorganization/class/conferenceorboothattendee.class.php +++ b/htdocs/eventorganization/class/conferenceorboothattendee.class.php @@ -108,7 +108,7 @@ class ConferenceOrBoothAttendee extends CommonObject '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'), + 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status = 1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'enabled'=>'isModEnabled("societe")', 'position'=>40, 'notnull'=>-1, 'visible'=>1, 'index'=>1, 'help'=>"OrganizationEventLinkToThirdParty", 'picto'=>'company', 'css'=>'tdoverflowmax150 maxwidth500'), 'email_company' => array('type'=>'mail', 'label'=>'EmailCompany', 'enabled'=>'1', 'position'=>41, 'notnull'=>0, 'visible'=>-2, 'searchall'=>1), 'date_subscription' => array('type'=>'datetime', 'label'=>'DateOfRegistration', 'enabled'=>'1', 'position'=>56, 'notnull'=>1, 'visible'=>1, 'showoncombobox'=>'1',), 'fk_invoice' => array('type'=>'integer:Facture:compta/facture/class/facture.class.php', 'label'=>'Invoice', 'enabled'=>'$conf->facture->enabled', 'position'=>57, 'notnull'=>0, 'visible'=>-1, 'index'=>0, 'picto'=>'bill', 'css'=>'tdoverflowmax150 maxwidth500'), @@ -423,7 +423,7 @@ class ConferenceOrBoothAttendee extends CommonObject $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."actioncomm as a on a.id = t.fk_actioncomm"; 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'; } @@ -1102,18 +1102,18 @@ class ConferenceOrBoothAttendee extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'eventorganization_conferenceorboothattendee' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } } diff --git a/htdocs/eventorganization/conferenceorbooth_card.php b/htdocs/eventorganization/conferenceorbooth_card.php index b6932c2cf09..9928b8af33b 100644 --- a/htdocs/eventorganization/conferenceorbooth_card.php +++ b/htdocs/eventorganization/conferenceorbooth_card.php @@ -568,13 +568,13 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.$withProjectUrl.'&action=presend&token='.newToken().'&mode=init#formmailbeforetitle'); } - print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.$withProjectUrl.'&action=edit&token='.newToken().'', '', $permissiontoadd); + print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.$withProjectUrl.'&action=edit&token='.newToken(), '', $permissiontoadd); // Clone print dolGetButtonAction('', $langs->trans('ToClone'), 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.$withProjectUrl.'&socid='.$object->socid.'&action=clone&token='.newToken().'&object=scrumsprint', '', $permissiontoadd); // Delete (need delete permission, or if draft, just need create/modify permission) - print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'].'?id='.$object->id.$withProjectUrl.'&action=delete&token='.newToken().'', '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)); + print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'].'?id='.$object->id.$withProjectUrl.'&action=delete&token='.newToken(), '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd)); } print '
'."\n"; } diff --git a/htdocs/eventorganization/conferenceorbooth_list.php b/htdocs/eventorganization/conferenceorbooth_list.php index f69d86c62e7..39aa7216e84 100644 --- a/htdocs/eventorganization/conferenceorbooth_list.php +++ b/htdocs/eventorganization/conferenceorbooth_list.php @@ -25,17 +25,14 @@ // 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.'/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; @@ -47,19 +44,20 @@ global $dolibarr_main_url_root; $langs->loadLangs(array("eventorganization", "other", "projects", "companies")); // Get Parameters -$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$action = GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view'; // The action 'create'/'add', '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') : 'conferenceorboothlist'; // 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'); // The output mode ('list', 'kanban', 'hierarchy', 'calendar', ...) $id = GETPOST('id', 'int'); $projectid = GETPOST('projectid', 'int'); -$projectref = GETPOST('ref'); +$projectref = GETPOST('ref', 'alpha'); // Load variable for pagination $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; @@ -67,8 +65,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; @@ -77,7 +76,7 @@ $pagenext = $page + 1; $object = new ConferenceOrBooth($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->eventorganization->dir_output.'/temp/massgeneration/'.$user->id; -$hookmanager->initHooks(array('conferenceorboothlist')); // Note that conf->hooks_modules contains array +$hookmanager->initHooks(array($contextpage)); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); @@ -120,11 +119,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'] : '' ); @@ -141,8 +140,8 @@ $permissiontoadd = $user->rights->eventorganization->write; $permissiontodelete = $user->rights->eventorganization->delete; // Security check -if (empty($conf->eventorganization->enabled)) { - accessforbidden('Module not enabled'); +if (!isModEnabled('eventorganization')) { + accessforbidden('Module eventorganization not enabled'); } $socid = 0; if ($user->socid > 0) { // Protection if external user @@ -235,9 +234,11 @@ if (empty($reshook)) { $form = new Form($db); $now = dol_now(); -$title = $langs->trans('ListOfConferencesOrBooths'); -//$help_url="EN:Module_ConferenceOrBooth|FR:Module_ConferenceOrBooth_FR|ES:Módulo_ConferenceOrBooth"; +//$help_url = "EN:Module_ConferenceOrBooth|FR:Module_ConferenceOrBooth_FR|ES:Módulo_ConferenceOrBooth"; $help_url = ''; +$title = $langs->trans('ListOfConferencesOrBooths'); +$morejs = array(); +$morecss = array(); if ($projectid > 0 || $projectref) { $project = new Project($db); @@ -257,7 +258,7 @@ if ($projectid > 0 || $projectref) { } $help_url = "EN:Module_Projects|FR:Module_Projets|ES:Módulo_Proyectos"; - $title = $langs->trans("Project") . ' - ' . $langs->trans("ListOfConferencesOrBooths") . ' - ' . $project->ref . ' ' . $project->name; + $title = $langs->trans("Project") . ' - ' . $langs->trans("EventOrganizationConfOrBoothes") . ' - ' . $project->ref . ' ' . $project->name; if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $conf->global->MAIN_HTML_TITLE) && $project->name) { $title = $project->ref . ' ' . $project->name . ' - ' . $langs->trans("ListOfConferencesOrBooths"); } @@ -524,9 +525,13 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= preg_replace('/^,/', '', $hookmanager->resPrint); $sql = preg_replace('/,\s*$/', '', $sql); +//$sql .= ", COUNT(rc.rowid) as anotherfield"; + +$sqlfields = $sql; // $sql fields to remove for count total + $sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; -if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.id = 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.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; } $sql .= " INNER JOIN ".MAIN_DB_PREFIX."c_actioncomm as cact ON cact.id=t.fk_action AND cact.module LIKE '%@eventorganization'"; // Add table from hooks @@ -554,17 +559,17 @@ foreach ($search as $key => $val) { $mode_search = 2; } if ($search[$key] != '') { - $sql .= natural_search($key, $search[$key], (($key == 'status') ? 2 : $mode_search)); + $sql .= natural_search("t.".$db->escape($key), $search[$key], (($key == 'status') ? 2 : $mode_search)); } } else { if (preg_match('/(_dtstart|_dtend)$/', $key) && $search[$key] != '') { $columnName = preg_replace('/(_dtstart|_dtend)$/', '', $key); if (preg_match('/^(date|timestamp|datetime)/', $object->fields[$columnName]['type'])) { if (preg_match('/_dtstart$/', $key)) { - $sql .= " AND t.".$columnName." >= '".$db->idate($search[$key])."'"; + $sql .= " AND t.".$db->escape($columnName)." >= '".$db->idate($search[$key])."'"; } if (preg_match('/_dtend$/', $key)) { - $sql .= " AND t." . $columnName . " <= '" . $db->idate($search[$key]) . "'"; + $sql .= " AND t.".$db->escape($columnName)." <= '".$db->idate($search[$key])."'"; } } } @@ -582,35 +587,42 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); - // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $resql = $db->query($sql); - $nbtotalofrecords = $db->num_rows($resql); - if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. -if (is_numeric($nbtotalofrecords) && ($limit > $nbtotalofrecords || empty($limit))) { - $num = $nbtotalofrecords; -} else { - if ($limit) { - $sql .= $db->plimit($limit + 1, $offset); - } - $resql = $db->query($sql); - if (!$resql) { - dol_print_error($db); - exit; - } +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); - $num = $db->num_rows($resql); +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); @@ -622,6 +634,9 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $ $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); } @@ -629,11 +644,17 @@ if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.urlencode($limit); } foreach ($search as $key => $val) { - if (is_array($search[$key]) && count($search[$key])) { + if (is_array($search[$key])) { foreach ($search[$key] as $skey) { - $param .= '&search_'.$key.'[]='.urlencode($skey); + if ($skey != '') { + $param .= '&search_'.$key.'[]='.urlencode($skey); + } } - } else { + } elseif (preg_match('/(_dtstart|_dtend)$/', $key) && !empty($val)) { + $param .= '&search_'.$key.'month='.((int) GETPOST('search_'.$key.'month', 'int')); + $param .= '&search_'.$key.'day='.((int) GETPOST('search_'.$key.'day', 'int')); + $param .= '&search_'.$key.'year='.((int) GETPOST('search_'.$key.'year', 'int')); + } elseif ($search[$key] != '') { $param .= '&search_'.$key.'='.urlencode($search[$key]); } } @@ -655,7 +676,7 @@ $arrayofmassactions = array( 'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail").' ('.$langs->trans("ToSpeakers").')', //'presend_attendees'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail").' - '.$langs->trans("Attendees"), ); -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'))) { @@ -672,10 +693,13 @@ print ''; print ''; print ''; +print ''; print ''; print ''; +print ''; -$title = $langs->trans("ListOfConferencesOrBooths"); + +$title = $langs->trans("EventOrganizationConfOrBoothes"); $newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/eventorganization/conferenceorbooth_card.php?action=create'.(!empty($project->id)?'&withproject=1&fk_project='.$project->id:'').(!empty($project->socid)?'&fk_soc='.$project->socid:'').'&backtopage='.urlencode($_SERVER['PHP_SELF']).(!empty($project->id)?'?projectid='.$project->id:''), '', $permissiontoadd); @@ -683,7 +707,7 @@ print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sort // Add code for pre mass action (confirmation or email presend form) -$topicmail = $projectstatic->title; +$topicmail = ''; $modelmail = "conferenceorbooth"; $objecttmp = new ConferenceOrBooth($db); $trackid = 'conferenceorbooth_'.$object->id; @@ -692,10 +716,13 @@ 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 = ''; @@ -718,7 +745,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) : ''); @@ -729,9 +756,15 @@ print ''; +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} foreach ($object->fields as $key => $val) { - $searchkey = (empty($search[$key]) ? '' : $search[$key]); - + $searchkey = empty($search[$key]) ? '' : $search[$key]; $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); if ($key == 'status') { $cssforfield .= ($cssforfield ? ' ' : '').'center'; @@ -739,17 +772,15 @@ foreach ($object->fields as $key => $val) { $cssforfield .= ($cssforfield ? ' ' : '').'center'; } elseif (in_array($val['type'], array('timestamp'))) { $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; - } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $key != 'ref' && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { $cssforfield .= ($cssforfield ? ' ' : '').'right'; } if (!empty($arrayfields['t.'.$key]['checked'])) { print ''; } @@ -769,16 +806,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 (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} print ''."\n"; +$totalarray = array(); +$totalarray['nbfield'] = 0; // Fields title label // -------------------------------------------------------------------- print ''; +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print getTitleFieldOfList(($mode != 'kanban' ? $selectedfields : ''), 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} foreach ($object->fields as $key => $val) { $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); if ($key == 'status') { @@ -787,27 +831,32 @@ 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')) && !in_array($key, array('rowid', 'ref')) && $val['label'] != 'TechnicalID') { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'rowid' && $key != 'ref' && $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 (!getDolGlobalString('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 (!empty($extrafields->attributes[$object->table_element]['computed']) && 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 @@ -819,8 +868,11 @@ if (!empty($extrafields->attributes[$object->table_element]['computed']) && is_a // Loop on record // -------------------------------------------------------------------- $i = 0; +$savnbfield = $totalarray['nbfield']; $totalarray = array(); -while ($i < ($limit ? min($num, $limit) : $num)) { +$totalarray['nbfield'] = 0; +$imaxinloop = ($limit ? min($num, $limit) : $num); +while ($i < $imaxinloop) { $obj = $db->fetch_object($resql); if (empty($obj)) { break; // Should not happen @@ -829,76 +881,110 @@ while ($i < ($limit ? min($num, $limit) : $num)) { // Store properties in $object $object->setVarsFromFetchObj($obj); - // Show here line of result - print ''; - $totalarray['nbfield'] = 0; - 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', 'ref', '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); - } elseif ($key == 'ref') { - print $object->getNomUrl(1, 0, '', (($projectid > 0)?'withproject':'')); - } else { - print $object->showOutputField($val, $key, $object->$key, ''); + } else { + // Show here line of result + $j = 0; + print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; if (!$i) { $totalarray['nbfield']++; } - if (!empty($val['isameasure']) && $val['isameasure'] == 1) { + } + foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); + if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif ($key == 'status') { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } + + if (in_array($val['type'], array('timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } elseif ($key == 'ref') { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } + + if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'ref', '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 == 'ref') { + print $object->getNomUrl(1, 0, '', (($projectid > 0)?'withproject':'')); + } else { + print $object->showOutputField($val, $key, $object->$key, ''); + } + print ''; if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; + $totalarray['nbfield']++; } - if (!isset($totalarray['val'])) { - $totalarray['val'] = array(); + if (!empty($val['isameasure']) && $val['isameasure'] == 1) { + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; + } + if (!isset($totalarray['val'])) { + $totalarray['val'] = array(); + } + if (!isset($totalarray['val']['t.'.$key])) { + $totalarray['val']['t.'.$key] = 0; + } + $totalarray['val']['t.'.$key] += $object->$key; } - if (!isset($totalarray['val']['t.'.$key])) { - $totalarray['val']['t.'.$key] = 0; - } - $totalarray['val']['t.'.$key] += $object->$key; } } - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Action column - print ''; + if (!$i) { + $totalarray['nbfield']++; + } } - print ''; - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - print ''."\n"; + print ''."\n"; + } $i++; } @@ -914,14 +1000,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); - } elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:')=== 0)) { - print $object->showInputField($val, $key, $searchkey, '', '', 'search_', 'maxwidth125', 1); - } elseif (!preg_match('/^(date|timestamp|datetime)/', $val['type'])) { - print ''; + print $form->selectarray('search_'.$key, $val['arrayofkeyval'], (isset($search[$key]) ? $search[$key] : ''), $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100'.($key == 'status' ? ' search_status onrightofpage' : ''), 1); + } elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:') === 0)) { + print $object->showInputField($val, $key, (isset($search[$key]) ? $search[$key] : ''), '', '', 'search_', $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')); @@ -757,6 +788,12 @@ foreach ($object->fields as $key => $val) { 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 left'; + // 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; + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($object->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
'.$langs->trans("NoRecordFound").'
'.$langs->trans("NoRecordFound").'
'."\n"; diff --git a/htdocs/eventorganization/core/actions_massactions_mail.inc.php b/htdocs/eventorganization/core/actions_massactions_mail.inc.php index a446c04ca9a..5398291e69f 100644 --- a/htdocs/eventorganization/core/actions_massactions_mail.inc.php +++ b/htdocs/eventorganization/core/actions_massactions_mail.inc.php @@ -42,18 +42,6 @@ if (empty($objectclass) || empty($uploaddir)) { exit; } -// For backward compatibility -if (!empty($permtoread) && empty($permissiontoread)) { - $permissiontoread = $permtoread; -} -if (!empty($permtocreate) && empty($permissiontoadd)) { - $permissiontoadd = $permtocreate; -} -if (!empty($permtodelete) && empty($permissiontodelete)) { - $permissiontodelete = $permtodelete; -} - - // Mass actions. Controls on number of lines checked. $maxformassaction = (empty($conf->global->MAIN_LIMIT_FOR_MASS_ACTIONS) ? 1000 : $conf->global->MAIN_LIMIT_FOR_MASS_ACTIONS); if (!empty($massaction) && is_array($toselect) && count($toselect) < 1) { diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php index ab8c4a28cbc..8c62cdc3914 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -1647,7 +1647,7 @@ if ($action == 'create') { dol_print_error($db); } } -} elseif ($id || $ref) { +} elseif ($object->id > 0) { /* *************************************************************************** */ /* */ /* Edit and view mode */ @@ -1657,828 +1657,826 @@ if ($action == 'create') { $num_prod = count($lines); - if ($object->id > 0) { - if (!empty($object->origin) && $object->origin_id > 0) { - $typeobject = $object->origin; - $origin = $object->origin; - $origin_id = $object->origin_id; - $object->fetch_origin(); // Load property $object->commande, $object->propal, ... + if (!empty($object->origin) && $object->origin_id > 0) { + $typeobject = $object->origin; + $origin = $object->origin; + $origin_id = $object->origin_id; + $object->fetch_origin(); // Load property $object->commande, $object->propal, ... + } + + $soc = new Societe($db); + $soc->fetch($object->socid); + + $res = $object->fetch_optionals(); + + $head = shipping_prepare_head($object); + print dol_get_fiche_head($head, 'shipping', $langs->trans("Shipment"), -1, $object->picto); + + $formconfirm = ''; + + // Confirm deleteion + if ($action == 'delete') { + $formquestion = array(); + if ($object->statut == Expedition::STATUS_CLOSED && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { + $formquestion = array( + array( + 'label' => $langs->trans('ShipmentIncrementStockOnDelete'), + 'name' => 'alsoUpdateStock', + 'type' => 'checkbox', + 'value' => 0 + ), + ); + } + $formconfirm = $form->formconfirm( + $_SERVER['PHP_SELF'].'?id='.$object->id, + $langs->trans('DeleteSending'), + $langs->trans("ConfirmDeleteSending", $object->ref), + 'confirm_delete', + $formquestion, + 0, + 1 + ); + } + + // Confirmation validation + if ($action == 'valid') { + $objectref = substr($object->ref, 1, 4); + if ($objectref == 'PROV') { + $numref = $object->getNextNumRef($soc); + } else { + $numref = $object->ref; } - $soc = new Societe($db); - $soc->fetch($object->socid); + $text = $langs->trans("ConfirmValidateSending", $numref); - $res = $object->fetch_optionals(); + if (isModEnabled('notification')) { + require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; + $notify = new Notify($db); + $text .= '
'; + $text .= $notify->confirmMessage('SHIPPING_VALIDATE', $object->socid, $object); + } - $head = shipping_prepare_head($object); - print dol_get_fiche_head($head, 'shipping', $langs->trans("Shipment"), -1, $object->picto); + $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('ValidateSending'), $text, 'confirm_valid', '', 0, 1); + } + // Confirm cancelation + if ($action == 'cancel') { + $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('CancelSending'), $langs->trans("ConfirmCancelSending", $object->ref), 'confirm_cancel', '', 0, 1); + } - $formconfirm = ''; + // Call Hook formConfirm + $parameters = array('formConfirm' => $formconfirm); + $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) { + $formconfirm .= $hookmanager->resPrint; + } elseif ($reshook > 0) { + $formconfirm = $hookmanager->resPrint; + } - // Confirm deleteion - if ($action == 'delete') { - $formquestion = array(); - if ($object->statut == Expedition::STATUS_CLOSED && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { - $formquestion = array( - array( - 'label' => $langs->trans('ShipmentIncrementStockOnDelete'), - 'name' => 'alsoUpdateStock', - 'type' => 'checkbox', - 'value' => 0 - ), - ); + // Print form confirm + print $formconfirm; + + // Calculate totalWeight and totalVolume for all products + // by adding weight and volume of each product line. + $tmparray = $object->getTotalWeightVolume(); + $totalWeight = $tmparray['weight']; + $totalVolume = $tmparray['volume']; + + + if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { + $objectsrc = new Commande($db); + $objectsrc->fetch($object->$typeobject->id); + } + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { + $objectsrc = new Propal($db); + $objectsrc->fetch($object->$typeobject->id); + } + + // Shipment card + $linkback = ''.$langs->trans("BackToList").''; + $morehtmlref = '
'; + // Ref customer shipment + $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1); + $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string'.(isset($conf->global->THIRDPARTY_REF_INPUT_SIZE) ? ':'.$conf->global->THIRDPARTY_REF_INPUT_SIZE : ''), '', null, null, '', 1); + // Thirdparty + $morehtmlref .= '
'.$object->thirdparty->getNomUrl(1); + // Project + if (isModEnabled('project')) { + $langs->load("projects"); + $morehtmlref .= '
'; + if (0) { // Do not change on shipment + $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); + if ($action != 'classify') { + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $formconfirm = $form->formconfirm( - $_SERVER['PHP_SELF'].'?id='.$object->id, - $langs->trans('DeleteSending'), - $langs->trans("ConfirmDeleteSending", $object->ref), - 'confirm_delete', - $formquestion, - 0, - 1 - ); - } - - // Confirmation validation - if ($action == 'valid') { - $objectref = substr($object->ref, 1, 4); - if ($objectref == 'PROV') { - $numref = $object->getNextNumRef($soc); - } else { - $numref = $object->ref; - } - - $text = $langs->trans("ConfirmValidateSending", $numref); - - if (isModEnabled('notification')) { - require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; - $notify = new Notify($db); - $text .= '
'; - $text .= $notify->confirmMessage('SHIPPING_VALIDATE', $object->socid, $object); - } - - $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('ValidateSending'), $text, 'confirm_valid', '', 0, 1); - } - // Confirm cancelation - if ($action == 'cancel') { - $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('CancelSending'), $langs->trans("ConfirmCancelSending", $object->ref), 'confirm_cancel', '', 0, 1); - } - - // Call Hook formConfirm - $parameters = array('formConfirm' => $formconfirm); - $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - if (empty($reshook)) { - $formconfirm .= $hookmanager->resPrint; - } elseif ($reshook > 0) { - $formconfirm = $hookmanager->resPrint; - } - - // Print form confirm - print $formconfirm; - - // Calculate totalWeight and totalVolume for all products - // by adding weight and volume of each product line. - $tmparray = $object->getTotalWeightVolume(); - $totalWeight = $tmparray['weight']; - $totalVolume = $tmparray['volume']; - - - if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { - $objectsrc = new Commande($db); - $objectsrc->fetch($object->$typeobject->id); - } - if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { - $objectsrc = new Propal($db); - $objectsrc->fetch($object->$typeobject->id); - } - - // Shipment card - $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref = '
'; - // Ref customer shipment - $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1); - $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string'.(isset($conf->global->THIRDPARTY_REF_INPUT_SIZE) ? ':'.$conf->global->THIRDPARTY_REF_INPUT_SIZE : ''), '', null, null, '', 1); - // Thirdparty - $morehtmlref .= '
'.$object->thirdparty->getNomUrl(1); - // Project - if (isModEnabled('project')) { - $langs->load("projects"); - $morehtmlref .= '
'; - if (0) { // Do not change on shipment - $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"'); - if ($action != 'classify') { - $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; - } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); - } else { - if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { - $proj = new Project($db); - $proj->fetch($objectsrc->fk_project); - $morehtmlref .= $proj->getNomUrl(1); - if ($proj->title) { - $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; - } + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); + } else { + if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { + $proj = new Project($db); + $proj->fetch($objectsrc->fk_project); + $morehtmlref .= $proj->getNomUrl(1); + if ($proj->title) { + $morehtmlref .= ' - '.dol_escape_htmltag($proj->title).''; } } } - $morehtmlref .= '
'; + } + $morehtmlref .= '
'; - dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); - print '
'; - print '
'; - print '
'; + print '
'; + print '
'; + print '
'; - print ''; + print '
'; - // Linked documents - if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { - print ''; - print '\n"; - print ''; - } - if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { - print ''; - print '\n"; - print ''; - } - - // Date creation - print ''; - print '\n"; - print ''; - - // Delivery date planned - print ''; - print ''; - - // Weight + // Linked documents + if ($typeobject == 'commande' && $object->$typeobject->id && isModEnabled('commande')) { print ''; - - // Width - print ''; - - // Height - print ''; - - // Depth - print ''; - - // Volume - print ''; + print $langs->trans("RefOrder").''; print '\n"; print ''; - - // Other attributes - $cols = 2; - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; - - print '
'; - print $langs->trans("RefOrder").''; - print $objectsrc->getNomUrl(1, 'commande'); - print "
'; - print $langs->trans("RefProposal").''; - print $objectsrc->getNomUrl(1, 'expedition'); - print "
'.$langs->trans("DateCreation").''.dol_print_date($object->date_creation, "dayhour")."
'; - print ''; - - if ($action != 'editdate_livraison') { - print ''; - } - print '
'; - print $langs->trans('DateDeliveryPlanned'); - print 'id.'">'.img_edit($langs->trans('SetDeliveryDate'), 1).'
'; - print '
'; - if ($action == 'editdate_livraison') { - print '
'; - print ''; - print ''; - print $form->selectDate($object->date_delivery ? $object->date_delivery : -1, 'liv_', 1, 1, '', "setdate_livraison", 1, 0); - print ''; - print '
'; - } else { - print $object->date_delivery ? dol_print_date($object->date_delivery, 'dayhour') : ' '; - } - print '
'; - print $form->editfieldkey("Weight", 'trueWeight', $object->trueWeight, $object, $user->rights->expedition->creer); - print ''; - - if ($action == 'edittrueWeight') { - print '
'; - print ''; - print ''; - print ''; - print ''; - print $formproduct->selectMeasuringUnits("weight_units", "weight", $object->weight_units, 0, 2); - print ' '; - print ' '; - print '
'; - } else { - print $object->trueWeight; - print ($object->trueWeight && $object->weight_units != '') ? ' '.measuringUnitString(0, "weight", $object->weight_units) : ''; - } - - // Calculated - if ($totalWeight > 0) { - if (!empty($object->trueWeight)) { - print ' ('.$langs->trans("SumOfProductWeights").': '; - } - print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND) ? $conf->global->MAIN_WEIGHT_DEFAULT_ROUND : -1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT) ? $conf->global->MAIN_WEIGHT_DEFAULT_UNIT : 'no'); - if (!empty($object->trueWeight)) { - print ')'; - } - } - print '
'.$form->editfieldkey("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->expedition->creer).''; - print $form->editfieldval("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->expedition->creer); - print ($object->trueWidth && $object->width_units != '') ? ' '.measuringUnitString(0, "size", $object->width_units) : ''; - print '
'.$form->editfieldkey("Height", 'trueHeight', $object->trueHeight, $object, $user->rights->expedition->creer).''; - if ($action == 'edittrueHeight') { - print '
'; - print ''; - print ''; - print ''; - print ''; - print $formproduct->selectMeasuringUnits("size_units", "size", $object->size_units, 0, 2); - print ' '; - print ' '; - print '
'; - } else { - print $object->trueHeight; - print ($object->trueHeight && $object->height_units != '') ? ' '.measuringUnitString(0, "size", $object->height_units) : ''; - } - - print '
'.$form->editfieldkey("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->expedition->creer).''; - print $form->editfieldval("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->expedition->creer); - print ($object->trueDepth && $object->depth_units != '') ? ' '.measuringUnitString(0, "size", $object->depth_units) : ''; - print '
'; - print $langs->trans("Volume"); - print ''; - $calculatedVolume = 0; - $volumeUnit = 0; - if ($object->trueWidth && $object->trueHeight && $object->trueDepth) { - $calculatedVolume = ($object->trueWidth * $object->trueHeight * $object->trueDepth); - $volumeUnit = $object->size_units * 3; - } - // If sending volume not defined we use sum of products - if ($calculatedVolume > 0) { - if ($volumeUnit < 50) { - print showDimensionInBestUnit($calculatedVolume, $volumeUnit, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND) ? $conf->global->MAIN_VOLUME_DEFAULT_ROUND : -1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT) ? $conf->global->MAIN_VOLUME_DEFAULT_UNIT : 'no'); - } else { - print $calculatedVolume.' '.measuringUnitString(0, "volume", $volumeUnit); - } - } - if ($totalVolume > 0) { - if ($calculatedVolume) { - print ' ('.$langs->trans("SumOfProductVolumes").': '; - } - print showDimensionInBestUnit($totalVolume, 0, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND) ? $conf->global->MAIN_VOLUME_DEFAULT_ROUND : -1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT) ? $conf->global->MAIN_VOLUME_DEFAULT_UNIT : 'no'); - //if (empty($calculatedVolume)) print ' ('.$langs->trans("Calculated").')'; - if ($calculatedVolume) { - print ')'; - } - } + print $objectsrc->getNomUrl(1, 'commande'); print "
'; - - print '
'; - print '
'; - print '
'; - - print ''; - - // Sending method - print ''; + } + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { + print ''; + print '\n"; print ''; + } - // Tracking Number - print ''; + // Date creation + print ''; + print '\n"; + print ''; - // Incoterms - if (isModEnabled('incoterm')) { - print ''; - print ''; + // Delivery date planned + print ''; + print ''; + + // Weight + print '
'; - print ''; - - if ($action != 'editshipping_method_id') { - print ''; - } - print '
'; - print $langs->trans('SendingMethod'); - print 'id.'">'.img_edit($langs->trans('SetSendingMethod'), 1).'
'; - print '
'; - if ($action == 'editshipping_method_id') { - print '
'; - print ''; - print ''; - $object->fetch_delivery_methods(); - print $form->selectarray("shipping_method_id", $object->meths, $object->shipping_method_id, 1, 0, 0, "", 1); - if ($user->admin) { - print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); - } - print ''; - print '
'; - } else { - if ($object->shipping_method_id > 0) { - // Get code using getLabelFromKey - $code = $langs->getLabelFromKey($db, $object->shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); - print $langs->trans("SendingMethod".strtoupper($code)); - } - } - print '
'; + print $langs->trans("RefProposal").''; + print $objectsrc->getNomUrl(1, 'expedition'); + print "
'.$form->editfieldkey("TrackingNumber", 'tracking_number', $object->tracking_number, $object, $user->rights->expedition->creer).''; - print $form->editfieldval("TrackingNumber", 'tracking_number', $object->tracking_url, $object, $user->rights->expedition->creer, 'safehtmlstring', $object->tracking_number); - print '
'.$langs->trans("DateCreation").''.dol_print_date($object->date_creation, "dayhour")."
'; - print '
'; - print $langs->trans('IncotermLabel'); - print ''; - if ($user->rights->expedition->creer) { - print ''.img_edit().''; - } else { - print ' '; - } - print '
'; - print '
'; - if ($action != 'editincoterm') { - print $form->textwithpicto($object->display_incoterms(), $object->label_incoterms, 1); - } else { - print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms) ? $object->location_incoterms : ''), $_SERVER['PHP_SELF'].'?id='.$object->id); - } - print '
'; + print ''; + + if ($action != 'editdate_livraison') { + print ''; + } + print '
'; + print $langs->trans('DateDeliveryPlanned'); + print 'id.'">'.img_edit($langs->trans('SetDeliveryDate'), 1).'
'; + print '
'; + if ($action == 'editdate_livraison') { + print '
'; + print ''; + print ''; + print $form->selectDate($object->date_delivery ? $object->date_delivery : -1, 'liv_', 1, 1, '', "setdate_livraison", 1, 0); + print ''; + print '
'; + } else { + print $object->date_delivery ? dol_print_date($object->date_delivery, 'dayhour') : ' '; + } + print '
'; + print $form->editfieldkey("Weight", 'trueWeight', $object->trueWeight, $object, $user->rights->expedition->creer); + print ''; + + if ($action == 'edittrueWeight') { + print '
'; + print ''; + print ''; + print ''; + print ''; + print $formproduct->selectMeasuringUnits("weight_units", "weight", $object->weight_units, 0, 2); + print ' '; + print ' '; + print '
'; + } else { + print $object->trueWeight; + print ($object->trueWeight && $object->weight_units != '') ? ' '.measuringUnitString(0, "weight", $object->weight_units) : ''; + } + + // Calculated + if ($totalWeight > 0) { + if (!empty($object->trueWeight)) { + print ' ('.$langs->trans("SumOfProductWeights").': '; } - - // Other attributes - $parameters = array('colspan' => ' colspan="3"', 'cols' => '3'); - $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - print "
"; - - print '
'; - print '
'; - - print '
'; - - - // Lines of products - - if ($action == 'editline') { - print '
- - - - - '; + print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND) ? $conf->global->MAIN_WEIGHT_DEFAULT_ROUND : -1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT) ? $conf->global->MAIN_WEIGHT_DEFAULT_UNIT : 'no'); + if (!empty($object->trueWeight)) { + print ')'; } - print '
'; + } + print '
'; - print ''; - print ''; - // Adds a line numbering column - if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { - print ''; - } - // Product/Service - print ''; - // Qty - print ''; - if ($origin && $origin_id > 0) { - print ''; - } - if ($action == 'editline') { - $editColspan = 3; - if (!isModEnabled('stock')) { - $editColspan--; - } - if (empty($conf->productbatch->enabled)) { - $editColspan--; - } - print ''; + // Width + print ''; + + // Height + print ''; + + // Depth + print ''; + + // Volume + print ''; + print ''; - } else { - print ''; - } - if (isModEnabled('stock')) { - print ''; - } - - if (isModEnabled('productbatch')) { - print ''; - } + print $calculatedVolume.' '.measuringUnitString(0, "volume", $volumeUnit); } - print ''; - print ''; - //print ''; - if ($object->statut == 0) { - print ''; - print ''; + } + if ($totalVolume > 0) { + if ($calculatedVolume) { + print ' ('.$langs->trans("SumOfProductVolumes").': '; } - print "\n"; - print ''; + print showDimensionInBestUnit($totalVolume, 0, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND) ? $conf->global->MAIN_VOLUME_DEFAULT_ROUND : -1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT) ? $conf->global->MAIN_VOLUME_DEFAULT_UNIT : 'no'); + //if (empty($calculatedVolume)) print ' ('.$langs->trans("Calculated").')'; + if ($calculatedVolume) { + print ')'; + } + } + print "\n"; + print ''; - $outputlangs = $langs; + // Other attributes + $cols = 2; + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; - if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { - $object->fetch_thirdparty(); - $newlang = ''; - if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { - $newlang = GETPOST('lang_id', 'aZ09'); - } - if (empty($newlang)) { - $newlang = $object->thirdparty->default_lang; - } - if (!empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } + print '
 '.$langs->trans("Products").''.$langs->trans("QtyOrdered").''.$langs->trans("QtyInOtherShipments").''; - if ($object->statut <= 1) { - print $langs->trans("QtyToShip").' - '; - } else { - print $langs->trans("QtyShipped").' - '; - } - if (isModEnabled('stock')) { - print $langs->trans("WarehouseSource").' - '; - } - if (isModEnabled('productbatch')) { - print $langs->trans("Batch"); - } - print '
'.$form->editfieldkey("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->expedition->creer).''; + print $form->editfieldval("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->expedition->creer); + print ($object->trueWidth && $object->width_units != '') ? ' '.measuringUnitString(0, "size", $object->width_units) : ''; + print '
'.$form->editfieldkey("Height", 'trueHeight', $object->trueHeight, $object, $user->rights->expedition->creer).''; + if ($action == 'edittrueHeight') { + print ''; + print ''; + print ''; + print ''; + print ''; + print $formproduct->selectMeasuringUnits("size_units", "size", $object->size_units, 0, 2); + print ' '; + print ' '; + print ''; + } else { + print $object->trueHeight; + print ($object->trueHeight && $object->height_units != '') ? ' '.measuringUnitString(0, "size", $object->height_units) : ''; + } + + print '
'.$form->editfieldkey("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->expedition->creer).''; + print $form->editfieldval("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->expedition->creer); + print ($object->trueDepth && $object->depth_units != '') ? ' '.measuringUnitString(0, "size", $object->depth_units) : ''; + print '
'; + print $langs->trans("Volume"); + print ''; + $calculatedVolume = 0; + $volumeUnit = 0; + if ($object->trueWidth && $object->trueHeight && $object->trueDepth) { + $calculatedVolume = ($object->trueWidth * $object->trueHeight * $object->trueDepth); + $volumeUnit = $object->size_units * 3; + } + // If sending volume not defined we use sum of products + if ($calculatedVolume > 0) { + if ($volumeUnit < 50) { + print showDimensionInBestUnit($calculatedVolume, $volumeUnit, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND) ? $conf->global->MAIN_VOLUME_DEFAULT_ROUND : -1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT) ? $conf->global->MAIN_VOLUME_DEFAULT_UNIT : 'no'); } else { - if ($object->statut <= 1) { - print ''.$langs->trans("QtyToShip").''.$langs->trans("QtyShipped").''.$langs->trans("WarehouseSource").''.$langs->trans("Batch").''.$langs->trans("CalculatedWeight").''.$langs->trans("CalculatedVolume").''.$langs->trans("Size").'
'; + + print '
'; + print '
'; + print '
'; + + print ''; + + // Sending method + print ''; + print ''; + + // Tracking Number + print ''; + + // Incoterms + if (isModEnabled('incoterm')) { + print ''; + print ''; + } + + // Other attributes + $parameters = array('colspan' => ' colspan="3"', 'cols' => '3'); + $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + print "
'; + print ''; + + if ($action != 'editshipping_method_id') { + print ''; + } + print '
'; + print $langs->trans('SendingMethod'); + print 'id.'">'.img_edit($langs->trans('SetSendingMethod'), 1).'
'; + print '
'; + if ($action == 'editshipping_method_id') { + print '
'; + print ''; + print ''; + $object->fetch_delivery_methods(); + print $form->selectarray("shipping_method_id", $object->meths, $object->shipping_method_id, 1, 0, 0, "", 1); + if ($user->admin) { + print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); + } + print ''; + print '
'; + } else { + if ($object->shipping_method_id > 0) { + // Get code using getLabelFromKey + $code = $langs->getLabelFromKey($db, $object->shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); + print $langs->trans("SendingMethod".strtoupper($code)); + } + } + print '
'.$form->editfieldkey("TrackingNumber", 'tracking_number', $object->tracking_number, $object, $user->rights->expedition->creer).''; + print $form->editfieldval("TrackingNumber", 'tracking_number', $object->tracking_url, $object, $user->rights->expedition->creer, 'safehtmlstring', $object->tracking_number); + print '
'; + print '
'; + print $langs->trans('IncotermLabel'); + print ''; + if ($user->rights->expedition->creer) { + print ''.img_edit().''; + } else { + print ' '; + } + print '
'; + print '
'; + if ($action != 'editincoterm') { + print $form->textwithpicto($object->display_incoterms(), $object->label_incoterms, 1); + } else { + print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms) ? $object->location_incoterms : ''), $_SERVER['PHP_SELF'].'?id='.$object->id); + } + print '
"; + + print '
'; + print ''; + + print '
'; + + + // Lines of products + + if ($action == 'editline') { + print '
+ + + + + '; + } + print '
'; + + print '
'; + print ''; + print ''; + print ''; + // Adds a line numbering column + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { + print ''; + } + // Product/Service + print ''; + // Qty + print ''; + if ($origin && $origin_id > 0) { + print ''; + } + if ($action == 'editline') { + $editColspan = 3; + if (!isModEnabled('stock')) { + $editColspan--; + } + if (empty($conf->productbatch->enabled)) { + $editColspan--; + } + print ''; + } else { + if ($object->statut <= 1) { + print ''; + } else { + print ''; + } + if (isModEnabled('stock')) { + print ''; } - // Get list of products already sent for same source object into $alreadysent - $alreadysent = array(); - if ($origin && $origin_id > 0) { - $sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.fk_unit, obj.date_start, obj.date_end"; - $sql .= ", ed.rowid as shipmentline_id, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot"; - $sql .= ", e.rowid as shipment_id, e.ref as shipment_ref, e.date_creation, e.date_valid, e.date_delivery, e.date_expedition"; - //if ($conf->delivery_note->enabled) $sql .= ", l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received"; - $sql .= ', p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tosell as product_tosell, p.tobuy as product_tobuy, p.tobatch as product_tobatch'; - $sql .= ', p.description as product_desc'; - $sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed"; - $sql .= ", ".MAIN_DB_PREFIX."expedition as e"; - $sql .= ", ".MAIN_DB_PREFIX.$origin."det as obj"; - //if ($conf->delivery_note->enabled) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."delivery as l ON l.fk_expedition = e.rowid LEFT JOIN ".MAIN_DB_PREFIX."deliverydet as ld ON ld.fk_delivery = l.rowid AND obj.rowid = ld.fk_origin_line"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON obj.fk_product = p.rowid"; - $sql .= " WHERE e.entity IN (".getEntity('expedition').")"; - $sql .= " AND obj.fk_".$origin." = ".((int) $origin_id); - $sql .= " AND obj.rowid = ed.fk_origin_line"; - $sql .= " AND ed.fk_expedition = e.rowid"; - //if ($filter) $sql.= $filter; - $sql .= " ORDER BY obj.fk_product"; + if (isModEnabled('productbatch')) { + print ''; + } + } + print ''; + print ''; + //print ''; + if ($object->statut == 0) { + print ''; + print ''; + } + print "\n"; + print ''; - dol_syslog("expedition/card.php get list of shipment lines", LOG_DEBUG); - $resql = $db->query($sql); - if ($resql) { - $num = $db->num_rows($resql); - $i = 0; + $outputlangs = $langs; - while ($i < $num) { - $obj = $db->fetch_object($resql); - if ($obj) { - // $obj->rowid is rowid in $origin."det" table - $alreadysent[$obj->rowid][$obj->shipmentline_id] = array( - 'shipment_ref'=>$obj->shipment_ref, 'shipment_id'=>$obj->shipment_id, 'warehouse'=>$obj->fk_entrepot, 'qty_shipped'=>$obj->qty_shipped, - 'product_tosell'=>$obj->product_tosell, 'product_tobuy'=>$obj->product_tobuy, 'product_tobatch'=>$obj->product_tobatch, - 'date_valid'=>$db->jdate($obj->date_valid), 'date_delivery'=>$db->jdate($obj->date_delivery)); - } - $i++; + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + $object->fetch_thirdparty(); + $newlang = ''; + if (empty($newlang) && GETPOST('lang_id', 'aZ09')) { + $newlang = GETPOST('lang_id', 'aZ09'); + } + if (empty($newlang)) { + $newlang = $object->thirdparty->default_lang; + } + if (!empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + } + + // Get list of products already sent for same source object into $alreadysent + $alreadysent = array(); + if ($origin && $origin_id > 0) { + $sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.fk_unit, obj.date_start, obj.date_end"; + $sql .= ", ed.rowid as shipmentline_id, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot"; + $sql .= ", e.rowid as shipment_id, e.ref as shipment_ref, e.date_creation, e.date_valid, e.date_delivery, e.date_expedition"; + //if ($conf->delivery_note->enabled) $sql .= ", l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received"; + $sql .= ', p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tosell as product_tosell, p.tobuy as product_tobuy, p.tobatch as product_tobatch'; + $sql .= ', p.description as product_desc'; + $sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed"; + $sql .= ", ".MAIN_DB_PREFIX."expedition as e"; + $sql .= ", ".MAIN_DB_PREFIX.$origin."det as obj"; + //if ($conf->delivery_note->enabled) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."delivery as l ON l.fk_expedition = e.rowid LEFT JOIN ".MAIN_DB_PREFIX."deliverydet as ld ON ld.fk_delivery = l.rowid AND obj.rowid = ld.fk_origin_line"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON obj.fk_product = p.rowid"; + $sql .= " WHERE e.entity IN (".getEntity('expedition').")"; + $sql .= " AND obj.fk_".$origin." = ".((int) $origin_id); + $sql .= " AND obj.rowid = ed.fk_origin_line"; + $sql .= " AND ed.fk_expedition = e.rowid"; + //if ($filter) $sql.= $filter; + $sql .= " ORDER BY obj.fk_product"; + + dol_syslog("expedition/card.php get list of shipment lines", LOG_DEBUG); + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + $i = 0; + + while ($i < $num) { + $obj = $db->fetch_object($resql); + if ($obj) { + // $obj->rowid is rowid in $origin."det" table + $alreadysent[$obj->rowid][$obj->shipmentline_id] = array( + 'shipment_ref'=>$obj->shipment_ref, 'shipment_id'=>$obj->shipment_id, 'warehouse'=>$obj->fk_entrepot, 'qty_shipped'=>$obj->qty_shipped, + 'product_tosell'=>$obj->product_tosell, 'product_tobuy'=>$obj->product_tobuy, 'product_tobatch'=>$obj->product_tobatch, + 'date_valid'=>$db->jdate($obj->date_valid), 'date_delivery'=>$db->jdate($obj->date_delivery)); } + $i++; } - //var_dump($alreadysent); + } + //var_dump($alreadysent); + } + + print ''; + + // Loop on each product to send/sent + for ($i = 0; $i < $num_prod; $i++) { + $parameters = array('i' => $i, 'line' => $lines[$i], 'line_id' => $line_id, 'num' => $num_prod, 'alreadysent' => $alreadysent, 'editColspan' => !empty($editColspan) ? $editColspan : 0, 'outputlangs' => $outputlangs); + $reshook = $hookmanager->executeHooks('printObjectLine', $parameters, $object, $action); + if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } - print ''; + if (empty($reshook)) { + print ''; // id of order line + print ''; - // Loop on each product to send/sent - for ($i = 0; $i < $num_prod; $i++) { - $parameters = array('i' => $i, 'line' => $lines[$i], 'line_id' => $line_id, 'num' => $num_prod, 'alreadysent' => $alreadysent, 'editColspan' => !empty($editColspan) ? $editColspan : 0, 'outputlangs' => $outputlangs); - $reshook = $hookmanager->executeHooks('printObjectLine', $parameters, $object, $action); - if ($reshook < 0) { - setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + // # + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { + print ''; } - if (empty($reshook)) { - print ''; // id of order line - print ''; - - // # - if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { - print ''; - } - - // Predefined product or service - if ($lines[$i]->fk_product > 0) { - // Define output language - if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { - $prod = new Product($db); - $prod->fetch($lines[$i]->fk_product); - $label = (!empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $lines[$i]->product_label; - } else { - $label = (!empty($lines[$i]->label) ? $lines[$i]->label : $lines[$i]->product_label); - } - - print '\n"; + // Predefined product or service + if ($lines[$i]->fk_product > 0) { + // Define output language + if (getDolGlobalInt('MAIN_MULTILANGS') && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + $prod = new Product($db); + $prod->fetch($lines[$i]->fk_product); + $label = (!empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $lines[$i]->product_label; } else { - print '\n"; + $label = (!empty($lines[$i]->label) ? $lines[$i]->label : $lines[$i]->product_label); } - $unit_order = ''; - if (!empty($conf->global->PRODUCT_USE_UNITS)) { - $unit_order = measuringUnitString($lines[$i]->fk_unit); + print '\n"; + } else { + print ''; + if (!empty($lines[$i]->label)) { + $text .= ' '.$lines[$i]->label.''; + print $form->textwithtooltip($text, $lines[$i]->description, 3, '', '', $i); + } else { + print $text.' '.nl2br($lines[$i]->description); + } - // Qty in other shipments (with shipment and warehouse used) - if ($origin && $origin_id > 0) { - print '\n"; + } - $j++; - if ($j > 1) { - print '
'; - } - $shipment_static->fetch($shipmentline_var['shipment_id']); - print $shipment_static->getNomUrl(1); - print ' - '.$shipmentline_var['qty_shipped']; - $htmltext = $langs->trans("DateValidation").' : '.(empty($shipmentline_var['date_valid']) ? $langs->trans("Draft") : dol_print_date($shipmentline_var['date_valid'], 'dayhour')); - if (isModEnabled('stock') && $shipmentline_var['warehouse'] > 0) { - $warehousestatic->fetch($shipmentline_var['warehouse']); - $htmltext .= '
'.$langs->trans("FromLocation").' : '.$warehousestatic->getNomUrl(1, '', 0, 1); - } - print ' '.$form->textwithpicto('', $htmltext, 1); + $unit_order = ''; + if (!empty($conf->global->PRODUCT_USE_UNITS)) { + $unit_order = measuringUnitString($lines[$i]->fk_unit); + } + + // Qty ordered + print ''; + + // Qty in other shipments (with shipment and warehouse used) + if ($origin && $origin_id > 0) { + print ''; } + print ''; + } - if ($action == 'editline' && $lines[$i]->id == $line_id) { - // edit mode - print ''; + } else { + // Qty to ship or shipped + print ''; + + // Warehouse source + if (isModEnabled('stock')) { + print ''; + } + + // Batch number managment + if (isModEnabled('productbatch')) { + if (isset($lines[$i]->detail_batch)) { + print ''; + print ''; - } - - // Batch number managment - if (isModEnabled('productbatch')) { - if (isset($lines[$i]->detail_batch)) { - print ''; - print ''; - } else { - print ''; - } - } - } - - // Weight - print ''; - - // Volume - print ''; - - // Size - //print ''; - - if ($action == 'editline' && $lines[$i]->id == $line_id) { - print ''; - } elseif ($object->statut == Expedition::STATUS_DRAFT) { - // edit-delete buttons - print ''; - print ''; - - // Display lines extrafields - if (!empty($rowExtrafieldsStart)) { - print $rowExtrafieldsStart; - print $rowExtrafieldsView; - print $rowEnd; - } - } - print ""; - - // Display lines extrafields. - // $line is a line of shipment - if (!empty($extrafields)) { - $colspan = 6; - if ($origin && $origin_id > 0) { - $colspan++; - } - if (isModEnabled('productbatch')) { - $colspan++; - } - if (isModEnabled('stock')) { - $colspan++; - } - - $line = $lines[$i]; - $line->fetch_optionals(); - - // TODO Show all in same line by setting $display_type = 'line' - if ($action == 'editline' && $line->id == $line_id) { - print $lines[$i]->showOptionals($extrafields, 'edit', array('colspan'=>$colspan), !empty($indiceAsked) ? $indiceAsked : '', '', 0, 'card'); } else { - print $lines[$i]->showOptionals($extrafields, 'view', array('colspan'=>$colspan), !empty($indiceAsked) ? $indiceAsked : '', '', 0, 'card'); + print ''; } } } + + // Weight + print ''; + + // Volume + print ''; + + // Size + //print ''; + + if ($action == 'editline' && $lines[$i]->id == $line_id) { + print ''; + } elseif ($object->statut == Expedition::STATUS_DRAFT) { + // edit-delete buttons + print ''; + print ''; + + // Display lines extrafields + if (!empty($rowExtrafieldsStart)) { + print $rowExtrafieldsStart; + print $rowExtrafieldsView; + print $rowEnd; + } + } + print ""; + + // Display lines extrafields. + // $line is a line of shipment + if (!empty($extrafields)) { + $colspan = 6; + if ($origin && $origin_id > 0) { + $colspan++; + } + if (isModEnabled('productbatch')) { + $colspan++; + } + if (isModEnabled('stock')) { + $colspan++; + } + + $line = $lines[$i]; + $line->fetch_optionals(); + + // TODO Show all in same line by setting $display_type = 'line' + if ($action == 'editline' && $line->id == $line_id) { + print $lines[$i]->showOptionals($extrafields, 'edit', array('colspan'=>$colspan), !empty($indiceAsked) ? $indiceAsked : '', '', 0, 'card'); + } else { + print $lines[$i]->showOptionals($extrafields, 'view', array('colspan'=>$colspan), !empty($indiceAsked) ? $indiceAsked : '', '', 0, 'card'); + } + } } - - // TODO Show also lines ordered but not delivered - - print "
 '.$langs->trans("Products").''.$langs->trans("QtyOrdered").''.$langs->trans("QtyInOtherShipments").''; + if ($object->statut <= 1) { + print $langs->trans("QtyToShip").' - '; + } else { + print $langs->trans("QtyShipped").' - '; + } + if (isModEnabled('stock')) { + print $langs->trans("WarehouseSource").' - '; + } + if (isModEnabled('productbatch')) { + print $langs->trans("Batch"); + } + print ''.$langs->trans("QtyToShip").''.$langs->trans("QtyShipped").''.$langs->trans("WarehouseSource").''.$langs->trans("Batch").''.$langs->trans("CalculatedWeight").''.$langs->trans("CalculatedVolume").''.$langs->trans("Size").'
'.($i + 1).'
'.($i + 1).''; - - // Show product and description - $product_static->type = $lines[$i]->fk_product_type; - $product_static->id = $lines[$i]->fk_product; - $product_static->ref = $lines[$i]->ref; - $product_static->status = $lines[$i]->product_tosell; - $product_static->status_buy = $lines[$i]->product_tobuy; - $product_static->status_batch = $lines[$i]->product_tobatch; - - $product_static->weight = $lines[$i]->weight; - $product_static->weight_units = $lines[$i]->weight_units; - $product_static->length = $lines[$i]->length; - $product_static->length_units = $lines[$i]->length_units; - $product_static->width = !empty($lines[$i]->width) ? $lines[$i]->width : 0; - $product_static->width_units = !empty($lines[$i]->width_units) ? $lines[$i]->width_units : 0; - $product_static->height = !empty($lines[$i]->height) ? $lines[$i]->height : 0; - $product_static->height_units = !empty($lines[$i]->height_units) ? $lines[$i]->height_units : 0; - $product_static->surface = $lines[$i]->surface; - $product_static->surface_units = $lines[$i]->surface_units; - $product_static->volume = $lines[$i]->volume; - $product_static->volume_units = $lines[$i]->volume_units; - - $text = $product_static->getNomUrl(1); - $text .= ' - '.$label; - $description = (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE') ? '' : dol_htmlentitiesbr($lines[$i]->description)); - print $form->textwithtooltip($text, $description, 3, '', '', $i); - print_date_range(!empty($lines[$i]->date_start) ? $lines[$i]->date_start : '', !empty($lines[$i]->date_end) ? $lines[$i]->date_end : ''); - if (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { - print (!empty($lines[$i]->description) && $lines[$i]->description != $lines[$i]->product) ? '
'.dol_htmlentitiesbr($lines[$i]->description) : ''; - } - print "
'; - if ($lines[$i]->product_type == Product::TYPE_SERVICE) { - $text = img_object($langs->trans('Service'), 'service'); - } else { - $text = img_object($langs->trans('Product'), 'product'); - } - - if (!empty($lines[$i]->label)) { - $text .= ' '.$lines[$i]->label.''; - print $form->textwithtooltip($text, $lines[$i]->description, 3, '', '', $i); - } else { - print $text.' '.nl2br($lines[$i]->description); - } - - print_date_range($lines[$i]->date_start, $lines[$i]->date_end); - print "'; + + // Show product and description + $product_static->type = $lines[$i]->fk_product_type; + $product_static->id = $lines[$i]->fk_product; + $product_static->ref = $lines[$i]->ref; + $product_static->status = $lines[$i]->product_tosell; + $product_static->status_buy = $lines[$i]->product_tobuy; + $product_static->status_batch = $lines[$i]->product_tobatch; + + $product_static->weight = $lines[$i]->weight; + $product_static->weight_units = $lines[$i]->weight_units; + $product_static->length = $lines[$i]->length; + $product_static->length_units = $lines[$i]->length_units; + $product_static->width = !empty($lines[$i]->width) ? $lines[$i]->width : 0; + $product_static->width_units = !empty($lines[$i]->width_units) ? $lines[$i]->width_units : 0; + $product_static->height = !empty($lines[$i]->height) ? $lines[$i]->height : 0; + $product_static->height_units = !empty($lines[$i]->height_units) ? $lines[$i]->height_units : 0; + $product_static->surface = $lines[$i]->surface; + $product_static->surface_units = $lines[$i]->surface_units; + $product_static->volume = $lines[$i]->volume; + $product_static->volume_units = $lines[$i]->volume_units; + + $text = $product_static->getNomUrl(1); + $text .= ' - '.$label; + $description = (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE') ? '' : dol_htmlentitiesbr($lines[$i]->description)); + print $form->textwithtooltip($text, $description, 3, '', '', $i); + print_date_range(!empty($lines[$i]->date_start) ? $lines[$i]->date_start : '', !empty($lines[$i]->date_end) ? $lines[$i]->date_end : ''); + if (getDolGlobalInt('PRODUIT_DESC_IN_FORM_ACCORDING_TO_DEVICE')) { + print (!empty($lines[$i]->description) && $lines[$i]->description != $lines[$i]->product) ? '
'.dol_htmlentitiesbr($lines[$i]->description) : ''; + } + print "
'; + if ($lines[$i]->product_type == Product::TYPE_SERVICE) { + $text = img_object($langs->trans('Service'), 'service'); + } else { + $text = img_object($langs->trans('Product'), 'product'); } - // Qty ordered - print ''.$lines[$i]->qty_asked.' '.$unit_order.''; - foreach ($alreadysent as $key => $val) { - if ($lines[$i]->fk_origin_line == $key) { - $j = 0; - foreach ($val as $shipmentline_id => $shipmentline_var) { - if ($shipmentline_var['shipment_id'] == $lines[$i]->fk_expedition) { - continue; // We want to show only "other shipments" - } + print_date_range($lines[$i]->date_start, $lines[$i]->date_end); + print "'.$lines[$i]->qty_asked.' '.$unit_order.''; + foreach ($alreadysent as $key => $val) { + if ($lines[$i]->fk_origin_line == $key) { + $j = 0; + foreach ($val as $shipmentline_id => $shipmentline_var) { + if ($shipmentline_var['shipment_id'] == $lines[$i]->fk_expedition) { + continue; // We want to show only "other shipments" } + + $j++; + if ($j > 1) { + print '
'; + } + $shipment_static->fetch($shipmentline_var['shipment_id']); + print $shipment_static->getNomUrl(1); + print ' - '.$shipmentline_var['qty_shipped']; + $htmltext = $langs->trans("DateValidation").' : '.(empty($shipmentline_var['date_valid']) ? $langs->trans("Draft") : dol_print_date($shipmentline_var['date_valid'], 'dayhour')); + if (isModEnabled('stock') && $shipmentline_var['warehouse'] > 0) { + $warehousestatic->fetch($shipmentline_var['warehouse']); + $htmltext .= '
'.$langs->trans("FromLocation").' : '.$warehousestatic->getNomUrl(1, '', 0, 1); + } + print ' '.$form->textwithpicto('', $htmltext, 1); } } - print '
'; - if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0) { - print ''; - $line = new ExpeditionLigne($db); - foreach ($lines[$i]->detail_batch as $detail_batch) { - print ''; - // Qty to ship or shipped - print ''; - // Batch number managment - if ($lines[$i]->entrepot_id == 0) { - // only show lot numbers from src warehouse when shipping from multiple warehouses - $line->fetch($detail_batch->fk_expeditiondet); - } - $entrepot_id = !empty($detail_batch->entrepot_id)?$detail_batch->entrepot_id:$lines[$i]->entrepot_id; - print ''; - print ''; - } - // add a 0 qty lot row to be able to add a lot + if ($action == 'editline' && $lines[$i]->id == $line_id) { + // edit mode + print ''; - } else { + } elseif (!isModEnabled('stock') && empty($conf->productbatch->enabled)) { // both product batch and stock are not activated. + print ''; + print ''; // Qty to ship or shipped - print ''; - + print ''; // Warehouse source - if (isModEnabled('stock')) { - print ''; + // Batch number managment + print ''; + print ''; + } + + print '
'.$formproduct->selectLotStock($detail_batch->fk_origin_stock, 'batchl'.$detail_batch->fk_expeditiondet.'_'.$detail_batch->fk_origin_stock, '', 1, 0, $lines[$i]->fk_product, $entrepot_id).'
'; + if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0) { + print ''; + $line = new ExpeditionLigne($db); + foreach ($lines[$i]->detail_batch as $detail_batch) { print ''; // Qty to ship or shipped - print ''; + print ''; // Batch number managment - print ''; + if ($lines[$i]->entrepot_id == 0) { + // only show lot numbers from src warehouse when shipping from multiple warehouses + $line->fetch($detail_batch->fk_expeditiondet); + } + $entrepot_id = !empty($detail_batch->entrepot_id)?$detail_batch->entrepot_id:$lines[$i]->entrepot_id; + print ''; print ''; - } elseif (isModEnabled('stock')) { - if ($lines[$i]->fk_product > 0) { - if ($lines[$i]->entrepot_id > 0) { - print ''; - print ''; - // Qty to ship or shipped - print ''; - // Warehouse source - print ''; - // Batch number managment - print ''; - print ''; - } elseif (count($lines[$i]->details_entrepot) > 1) { - print ''; - foreach ($lines[$i]->details_entrepot as $detail_entrepot) { - print ''; - // Qty to ship or shipped - print ''; - // Warehouse source - print ''; - // Batch number managment - print ''; - print ''; - } - } else { - print ''; - print ''; - } - } else { - print ''; + } + // add a 0 qty lot row to be able to add a lot + print ''; + // Qty to ship or shipped + print ''; + // Batch number managment + print ''; + print ''; + } elseif (isModEnabled('stock')) { + if ($lines[$i]->fk_product > 0) { + if ($lines[$i]->entrepot_id > 0) { + print ''; print ''; // Qty to ship or shipped print ''; // Warehouse source - print ''; + print ''; // Batch number managment - print ''; + print ''; print ''; + } elseif (count($lines[$i]->details_entrepot) > 1) { + print ''; + foreach ($lines[$i]->details_entrepot as $detail_entrepot) { + print ''; + // Qty to ship or shipped + print ''; + // Warehouse source + print ''; + // Batch number managment + print ''; + print ''; + } + } else { + print ''; + print ''; } - } elseif (!isModEnabled('stock') && empty($conf->productbatch->enabled)) { // both product batch and stock are not activated. - print ''; + } else { + print ''; print ''; // Qty to ship or shipped - print ''; + print ''; // Warehouse source print ''; // Batch number managment print ''; print ''; } - - print '
'.$formproduct->selectLotStock('', 'batchl'.$line_id.'_0', '', 1, 0, $lines[$i]->fk_product).''.$formproduct->selectLotStock($detail_batch->fk_origin_stock, 'batchl'.$detail_batch->fk_expeditiondet.'_'.$detail_batch->fk_origin_stock, '', 1, 0, $lines[$i]->fk_product, $entrepot_id).'
'.$unit_order.''.$formproduct->selectWarehouses($lines[$i]->entrepot_id, 'entl'.$line_id, '', 1, 0, $lines[$i]->fk_product, '', 1).' - '.$langs->trans("NA").'
'.$unit_order.''.$formproduct->selectWarehouses($detail_entrepot->entrepot_id, 'entl'.$detail_entrepot->line_id, '', 1, 0, $lines[$i]->fk_product, '', 1).' - '.$langs->trans("NA").'
'.$langs->trans("NotEnoughStock").'
'.$formproduct->selectLotStock('', 'batchl'.$line_id.'_0', '', 1, 0, $lines[$i]->fk_product).'
'.$unit_order.''.$formproduct->selectWarehouses($lines[$i]->entrepot_id, 'entl'.$line_id, '', 1, 0, $lines[$i]->fk_product, '', 1).' - '.$langs->trans("NA").'
'.$unit_order.''.$formproduct->selectWarehouses($detail_entrepot->entrepot_id, 'entl'.$detail_entrepot->line_id, '', 1, 0, $lines[$i]->fk_product, '', 1).' - '.$langs->trans("NA").'
'.$langs->trans("NotEnoughStock").'
'.$unit_order.'
'.$lines[$i]->qty_shipped.' '.$unit_order.''; - if ($lines[$i]->entrepot_id > 0) { - $entrepot = new Entrepot($db); - $entrepot->fetch($lines[$i]->entrepot_id); - print $entrepot->getNomUrl(1); - } elseif (count($lines[$i]->details_entrepot) > 1) { - $detail = ''; - foreach ($lines[$i]->details_entrepot as $detail_entrepot) { - if ($detail_entrepot->entrepot_id > 0) { - $entrepot = new Entrepot($db); - $entrepot->fetch($detail_entrepot->entrepot_id); - $detail .= $langs->trans("DetailWarehouseFormat", $entrepot->libelle, $detail_entrepot->qty_shipped).'
'; - } + print '
'.$lines[$i]->qty_shipped.' '.$unit_order.''; + if ($lines[$i]->entrepot_id > 0) { + $entrepot = new Entrepot($db); + $entrepot->fetch($lines[$i]->entrepot_id); + print $entrepot->getNomUrl(1); + } elseif (count($lines[$i]->details_entrepot) > 1) { + $detail = ''; + foreach ($lines[$i]->details_entrepot as $detail_entrepot) { + if ($detail_entrepot->entrepot_id > 0) { + $entrepot = new Entrepot($db); + $entrepot->fetch($detail_entrepot->entrepot_id); + $detail .= $langs->trans("DetailWarehouseFormat", $entrepot->libelle, $detail_entrepot->qty_shipped).'
'; } - print $form->textwithtooltip(img_picto('', 'object_stock').' '.$langs->trans("DetailWarehouseNumber"), $detail); + } + print $form->textwithtooltip(img_picto('', 'object_stock').' '.$langs->trans("DetailWarehouseNumber"), $detail); + } + print '
'; + if ($lines[$i]->product_tobatch) { + $detail = ''; + foreach ($lines[$i]->detail_batch as $dbatch) { // $dbatch is instance of ExpeditionLineBatch + $detail .= $langs->trans("Batch").': '.$dbatch->batch; + if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { + $detail .= ' - '.$langs->trans("SellByDate").': '.dol_print_date($dbatch->sellby, "day"); + } + if (empty($conf->global->PRODUCT_DISABLE_EATBY)) { + $detail .= ' - '.$langs->trans("EatByDate").': '.dol_print_date($dbatch->eatby, "day"); + } + $detail .= ' - '.$langs->trans("Qty").': '.$dbatch->qty; + $detail .= '
'; + } + print $form->textwithtooltip(img_picto('', 'object_barcode').' '.$langs->trans("DetailBatchNumber"), $detail); + } else { + print $langs->trans("NA"); } print '
'; - if ($lines[$i]->product_tobatch) { - $detail = ''; - foreach ($lines[$i]->detail_batch as $dbatch) { // $dbatch is instance of ExpeditionLineBatch - $detail .= $langs->trans("Batch").': '.$dbatch->batch; - if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { - $detail .= ' - '.$langs->trans("SellByDate").': '.dol_print_date($dbatch->sellby, "day"); - } - if (empty($conf->global->PRODUCT_DISABLE_EATBY)) { - $detail .= ' - '.$langs->trans("EatByDate").': '.dol_print_date($dbatch->eatby, "day"); - } - $detail .= ' - '.$langs->trans("Qty").': '.$dbatch->qty; - $detail .= '
'; - } - print $form->textwithtooltip(img_picto('', 'object_barcode').' '.$langs->trans("DetailBatchNumber"), $detail); - } else { - print $langs->trans("NA"); - } - print '
'; - if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) { - print $lines[$i]->weight * $lines[$i]->qty_shipped.' '.measuringUnitString(0, "weight", $lines[$i]->weight_units); - } else { - print ' '; - } - print ''; - if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) { - print $lines[$i]->volume * $lines[$i]->qty_shipped.' '.measuringUnitString(0, "volume", $lines[$i]->volume_units); - } else { - print ' '; - } - print ''.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuringUnitString(0, "volume", $lines[$i]->volume_units).''; - print '
'; - print '
'; - print '
'; - print 'id.'">'.img_edit().''; - print ''; - print 'id.'">'.img_delete().''; - print '
'; + if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) { + print $lines[$i]->weight * $lines[$i]->qty_shipped.' '.measuringUnitString(0, "weight", $lines[$i]->weight_units); + } else { + print ' '; + } + print ''; + if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) { + print $lines[$i]->volume * $lines[$i]->qty_shipped.' '.measuringUnitString(0, "volume", $lines[$i]->volume_units); + } else { + print ' '; + } + print ''.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuringUnitString(0, "volume", $lines[$i]->volume_units).''; + print '
'; + print '
'; + print '
'; + print 'id.'">'.img_edit().''; + print ''; + print 'id.'">'.img_delete().''; + print '
\n"; - print ''; - print '
'; } + // TODO Show also lines ordered but not delivered + + print "\n"; + print ''; + print ''; + print dol_get_fiche_end(); diff --git a/htdocs/expedition/class/api_shipments.class.php b/htdocs/expedition/class/api_shipments.class.php index 357683ef35a..450fe943d7e 100644 --- a/htdocs/expedition/class/api_shipments.class.php +++ b/htdocs/expedition/class/api_shipments.class.php @@ -686,6 +686,11 @@ class Shipments extends DolibarrApi if (!empty($object->lines) && is_array($object->lines)) { foreach ($object->lines as $line) { + if (is_array($line->detail_batch)) { + foreach ($line->detail_batch as $keytmp2 => $valtmp2) { + unset($line->detail_batch[$keytmp2]->db); + } + } unset($line->tva_tx); unset($line->vat_src_code); unset($line->total_ht); diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 0b8668a6c1a..dd6dfee55b1 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -1911,23 +1911,6 @@ class Expedition extends CommonObject dol_syslog(get_class($this)."::initAsSpecimen"); - // Load array of products prodids - $num_prods = 0; - $prodids = array(); - $sql = "SELECT rowid"; - $sql .= " FROM ".MAIN_DB_PREFIX."product"; - $sql .= " WHERE entity IN (".getEntity('product').")"; - $resql = $this->db->query($sql); - if ($resql) { - $num_prods = $this->db->num_rows($resql); - $i = 0; - while ($i < $num_prods) { - $i++; - $row = $this->db->fetch_row($resql); - $prodids[$i] = $row[0]; - } - } - $order = new Commande($this->db); $order->initAsSpecimen(); @@ -1940,7 +1923,7 @@ class Expedition extends CommonObject $this->date = $now; $this->date_creation = $now; $this->date_valid = $now; - $this->date_delivery = $now; + $this->date_delivery = $now + 24 * 3600; $this->date_expedition = $now + 24 * 3600; $this->entrepot_id = 0; @@ -2450,18 +2433,18 @@ class Expedition extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'expedition' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } } diff --git a/htdocs/expedition/class/expeditionlinebatch.class.php b/htdocs/expedition/class/expeditionlinebatch.class.php index 5d99d1c7a74..ab1d9123830 100644 --- a/htdocs/expedition/class/expeditionlinebatch.class.php +++ b/htdocs/expedition/class/expeditionlinebatch.class.php @@ -194,7 +194,7 @@ class ExpeditionLineBatch extends CommonObject } $sql .= " WHERE fk_expeditiondet=".(int) $id_line_expdet; - dol_syslog(__METHOD__."", LOG_DEBUG); + dol_syslog(__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); diff --git a/htdocs/expedition/contact.php b/htdocs/expedition/contact.php index 48822121fa3..a3bcd1a2ef0 100644 --- a/htdocs/expedition/contact.php +++ b/htdocs/expedition/contact.php @@ -158,7 +158,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { $proj = new Project($db); diff --git a/htdocs/expedition/document.php b/htdocs/expedition/document.php index 517c1cea8d2..c0725bd5fe1 100644 --- a/htdocs/expedition/document.php +++ b/htdocs/expedition/document.php @@ -150,7 +150,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($objectsrc->fk_project)) { $proj = new Project($db); diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php index 14544087647..26cafe14b5d 100644 --- a/htdocs/expedition/list.php +++ b/htdocs/expedition/list.php @@ -78,6 +78,7 @@ $search_sale = GETPOST('search_sale', 'int'); $search_categ_cus = GETPOST("search_categ_cus", 'int'); $search_product_category = GETPOST('search_product_category', 'int'); $optioncss = GETPOST('optioncss', 'alpha'); +$mode = GETPOST('mode', 'alpha'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -489,6 +490,9 @@ $arrayofselected = is_array($toselect) ? $toselect : array(); $expedition = new Expedition($db); $param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -577,7 +581,10 @@ $massactionbutton = $form->selectMassAction('', $arrayofmassactions); // $url = DOL_URL_ROOT.'/expedition/card.php?action=create'; // if (!empty($socid)) $url .= '&socid='.$socid; // $newcardbutton = dolGetButtonTitle($langs->trans('NewSending'), '', 'fa fa-plus-circle', $url, '', $user->rights->expedition->creer); -$newcardbutton = dolGetButtonTitle($langs->trans('NewSending'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/expedition/card.php?action=create2', '', $user->rights->expedition->creer); +$newcardbutton = ''; +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); +$newcardbutton .= dolGetButtonTitle($langs->trans('NewSending'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/expedition/card.php?action=create2', '', $user->rights->expedition->creer); $i = 0; print ''."\n"; @@ -589,6 +596,7 @@ print ''; print ''; print ''; +print ''; print_barre_liste($langs->trans('ListOfSendings'), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'dolly', 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -786,8 +794,8 @@ if (!empty($arrayfields['e.tms']['checked'])) { } // Status if (!empty($arrayfields['e.fk_statut']['checked'])) { - print ''; - print $form->selectarray('search_status', array('0'=>$langs->trans('StatusSendingDraftShort'), '1'=>$langs->trans('StatusSendingValidatedShort'), '2'=>$langs->trans('StatusSendingProcessedShort')), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'onrightofpage'); + print ''; + print $form->selectarray('search_status', array('0'=>$langs->trans('StatusSendingDraftShort'), '1'=>$langs->trans('StatusSendingValidatedShort'), '2'=>$langs->trans('StatusSendingProcessedShort')), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage'); print ''; } // Status billed @@ -892,213 +900,227 @@ while ($i < min($num, $limit)) { $object = new Expedition($db); $object->fetch($obj->rowid); - print ''; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + print '
'; + } + $object->socid = $companystatic->getNomUrl(1); + $object->date_delivery = $obj->delivery_date; + $object->town = $obj->town; + print $object->getKanbanView(''); + if ($i == min($num, $limit) - 1) { + print '
'; + print ''; + } + } else { + print ''; - // Action column - if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; - } - print ''; - } - // Ref - if (!empty($arrayfields['e.ref']['checked'])) { - print ''; - print $shipment->getNomUrl(1); - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Ref customer - if (!empty($arrayfields['e.ref_customer']['checked'])) { - print ""; - print $obj->ref_customer; - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Third party - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; - print $companystatic->getNomUrl(1); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - print $obj->town; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - print $obj->zip; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print ''.$obj->state_name."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - $tmparray = getCountry($obj->fk_pays, 'all'); - print $tmparray['label']; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type ent - if (!empty($arrayfields['typent.code']['checked'])) { - print ''; - if (isset($typenArray[$obj->typent_code])) { - print $typenArray[$obj->typent_code]; - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Weight - if (!empty($arrayfields['e.weight']['checked'])) { - print ''; - if (empty($object->trueWeight)) { - $tmparray = $object->getTotalWeightVolume(); - print showDimensionInBestUnit($tmparray['weight'], 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND) ? $conf->global->MAIN_WEIGHT_DEFAULT_ROUND : -1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT) ? $conf->global->MAIN_WEIGHT_DEFAULT_UNIT : 'no'); - print $form->textwithpicto('', $langs->trans('EstimatedWeight'), 1); - } else { - print $object->trueWeight; - print ($object->trueWeight && $object->weight_units != '') ? ' '.measuringUnitString(0, "weight", $object->weight_units) : ''; - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date delivery planed - if (!empty($arrayfields['e.date_delivery']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->delivery_date), "dayhour"); - print "\n"; - } - if (!empty($arrayfields['e.fk_shipping_method']['checked'])) { - // Get code using getLabelFromKey - $code=$langs->getLabelFromKey($db, $shipment->shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); - print ''; - if ($shipment->shipping_method_id > 0) print $langs->trans("SendingMethod".strtoupper($code)); - print ''; - } - // Tracking number - if (!empty($arrayfields['e.tracking_number']['checked'])) { - $shipment->getUrlTrackingStatus($obj->tracking_number); - print ''.$shipment->tracking_url."\n"; - //print $form->editfieldval("TrackingNumber", 'tracking_number', $obj->tracking_url, $obj, $user->rights->expedition->creer, 'string', $obj->tracking_number); - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['l.ref']['checked']) || !empty($arrayfields['l.date_delivery']['checked'])) { - $shipment->fetchObjectLinked($shipment->id, $shipment->element); - $receiving = ''; - if (is_array($shipment->linkedObjects['delivery']) && count($shipment->linkedObjects['delivery']) > 0) { - $receiving = reset($shipment->linkedObjects['delivery']); - } - - if (!empty($arrayfields['l.ref']['checked'])) { - // Ref - print ''; - print !empty($receiving) ? $receiving->getNomUrl($db) : ''; print ''; } - - if (!empty($arrayfields['l.date_delivery']['checked'])) { - // Date received - print ''; - print dol_print_date($db->jdate($obj->date_reception), "day"); - print ''."\n"; - } - } - - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Date creation - if (!empty($arrayfields['e.datec']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date modification - if (!empty($arrayfields['e.tms']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['e.fk_statut']['checked'])) { - print ''.$shipment->LibStatut($obj->fk_statut, 5).''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Billed - if (!empty($arrayfields['e.billed']['checked'])) { - print ''.yn($obj->billed).''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Action column - if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + // Ref + if (!empty($arrayfields['e.ref']['checked'])) { + print ''; + print $shipment->getNomUrl(1); + print "\n"; + if (!$i) { + $totalarray['nbfield']++; } - print ''; } - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - print "\n"; + // Ref customer + if (!empty($arrayfields['e.ref_customer']['checked'])) { + print ""; + print $obj->ref_customer; + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Third party + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + print $companystatic->getNomUrl(1); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + print $obj->town; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + print $obj->zip; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print ''.$obj->state_name."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (isset($typenArray[$obj->typent_code])) { + print $typenArray[$obj->typent_code]; + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Weight + if (!empty($arrayfields['e.weight']['checked'])) { + print ''; + if (empty($object->trueWeight)) { + $tmparray = $object->getTotalWeightVolume(); + print showDimensionInBestUnit($tmparray['weight'], 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND) ? $conf->global->MAIN_WEIGHT_DEFAULT_ROUND : -1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT) ? $conf->global->MAIN_WEIGHT_DEFAULT_UNIT : 'no'); + print $form->textwithpicto('', $langs->trans('EstimatedWeight'), 1); + } else { + print $object->trueWeight; + print ($object->trueWeight && $object->weight_units != '') ? ' '.measuringUnitString(0, "weight", $object->weight_units) : ''; + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date delivery planed + if (!empty($arrayfields['e.date_delivery']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->delivery_date), "dayhour"); + print "\n"; + } + if (!empty($arrayfields['e.fk_shipping_method']['checked'])) { + // Get code using getLabelFromKey + $code=$langs->getLabelFromKey($db, $shipment->shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); + print ''; + if ($shipment->shipping_method_id > 0) print $langs->trans("SendingMethod".strtoupper($code)); + print ''; + } + // Tracking number + if (!empty($arrayfields['e.tracking_number']['checked'])) { + $shipment->getUrlTrackingStatus($obj->tracking_number); + print ''.$shipment->tracking_url."\n"; + //print $form->editfieldval("TrackingNumber", 'tracking_number', $obj->tracking_url, $obj, $user->rights->expedition->creer, 'string', $obj->tracking_number); + if (!$i) { + $totalarray['nbfield']++; + } + } + + if (!empty($arrayfields['l.ref']['checked']) || !empty($arrayfields['l.date_delivery']['checked'])) { + $shipment->fetchObjectLinked($shipment->id, $shipment->element); + $receiving = ''; + if (is_array($shipment->linkedObjects['delivery']) && count($shipment->linkedObjects['delivery']) > 0) { + $receiving = reset($shipment->linkedObjects['delivery']); + } + + if (!empty($arrayfields['l.ref']['checked'])) { + // Ref + print ''; + print !empty($receiving) ? $receiving->getNomUrl($db) : ''; + print ''; + } + + if (!empty($arrayfields['l.date_delivery']['checked'])) { + // Date received + print ''; + print dol_print_date($db->jdate($obj->date_reception), "day"); + print ''."\n"; + } + } + + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (!empty($arrayfields['e.datec']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date modification + if (!empty($arrayfields['e.tms']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['e.fk_statut']['checked'])) { + print ''.$shipment->LibStatut($obj->fk_statut, 5).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Billed + if (!empty($arrayfields['e.billed']['checked'])) { + print ''.yn($obj->billed).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print "\n"; + } $i++; } diff --git a/htdocs/expedition/note.php b/htdocs/expedition/note.php index 4401af0b20c..fcf191c4915 100644 --- a/htdocs/expedition/note.php +++ b/htdocs/expedition/note.php @@ -119,7 +119,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { $proj = new Project($db); diff --git a/htdocs/expedition/shipment.php b/htdocs/expedition/shipment.php index 9394269a03a..b4a89c5be30 100644 --- a/htdocs/expedition/shipment.php +++ b/htdocs/expedition/shipment.php @@ -296,7 +296,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($objectsrc) && !empty($objectsrc->fk_project)) { $proj = new Project($db); @@ -329,7 +329,7 @@ if ($id > 0 || !empty($ref)) { $filtercreditnote = "fk_facture_source IS NOT NULL AND (description NOT LIKE '(DEPOSIT)%' OR description LIKE '(EXCESS RECEIVED)%')"; } - print ''.$langs->trans('Discounts').''; + print ''.$langs->trans('Discounts').''; $absolute_discount = $soc->getAvailableDiscounts('', $filterabsolutediscount); $absolute_creditnote = $soc->getAvailableDiscounts('', $filtercreditnote); @@ -393,7 +393,7 @@ if ($id > 0 || !empty($ref)) { print 'id.'">'.img_edit($langs->trans('SetAvailability'), 1).''; } print ''; - print ''; + print ''; if ($action == 'editavailability') { $form->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id, $object->availability_id, 'availability_id', 1); } else { @@ -450,7 +450,7 @@ if ($id > 0 || !empty($ref)) { print 'id.'">'.img_edit($langs->trans('SetDemandReason'), 1).''; } print ''; - print ''; + print ''; if ($action == 'editdemandreason') { $form->formInputReason($_SERVER['PHP_SELF'].'?id='.$object->id, $object->demand_reason_id, 'demand_reason_id', 1); } else { @@ -500,11 +500,11 @@ if ($id > 0 || !empty($ref)) { $totalVolume = $tmparray['volume']; if ($totalWeight || $totalVolume) { print ''.$langs->trans("CalculatedWeight").''; - print ''; + print ''; print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND) ? $conf->global->MAIN_WEIGHT_DEFAULT_ROUND : -1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT) ? $conf->global->MAIN_WEIGHT_DEFAULT_UNIT : 'no'); print ''; print ''.$langs->trans("CalculatedVolume").''; - print ''; + print ''; print showDimensionInBestUnit($totalVolume, 0, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND) ? $conf->global->MAIN_VOLUME_DEFAULT_ROUND : -1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT) ? $conf->global->MAIN_VOLUME_DEFAULT_UNIT : 'no'); print ''; } @@ -524,7 +524,7 @@ if ($id > 0 || !empty($ref)) { } print ''; print ''; - print ''; + print ''; if ($action != 'editincoterm') { print $form->textwithpicto($object->display_incoterms(), $object->label_incoterms, 1); } else { diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index f6aa14865ec..7f3fb7d8b32 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -295,7 +295,7 @@ if (empty($reshook)) { } if (!$error && empty($conf->global->EXPENSEREPORT_ALLOW_OVERLAPPING_PERIODS)) { - $overlappingExpenseReportID = $object->periode_existe($fuser, $object->date_debut, $object->date_fin, true); + $overlappingExpenseReportID = $object->periode_existe($fuser, $object->date_debut, $object->date_fin); if ($overlappingExpenseReportID > 0) { $error++; @@ -971,7 +971,7 @@ if (empty($reshook)) { setEventMessages($object->error, $object->errors, 'errors'); } } else { - setEventMessages("NOT_AUTHOR", '', 'errors'); + setEventMessages("NOT_AUTHOR", null, 'errors'); } } @@ -1210,11 +1210,17 @@ if (empty($reshook)) { unset($date); } else { + $error++; setEventMessages($object->error, $object->errors, 'errors'); } } - $action = ''; + if (!$error) { + header("Location: ".$_SERVER["PHP_SELF"]."?id=".GETPOST('id', 'int')); + exit; + } else { + $action = ''; + } } if ($action == 'confirm_delete_line' && GETPOST("confirm", 'alpha') == "yes" && $user->rights->expensereport->creer) { @@ -2427,12 +2433,14 @@ if ($action == 'create') { } else { jQuery("input[name=\"senditdisabled\"]").prop("name", "sendit"); } + // TODO Switch css fa-chevron-dow and add fa-chevron-up return false; }); $( ".aattachtodoc" ).click(function() { console.log("We click on toggle of aattachtodoc"); jQuery(".trattachnewfilenow").toggle(); jQuery(".truploadnewfilenow").hide(); + // TODO Switch css fa-chevron-dow and add fa-chevron-up return false; });'."\n"; if (is_array(GETPOST('attachfile', 'array')) && count(GETPOST('attachfile', 'array')) && $action != 'updateline') { diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index ecb1cf3d65b..06adcd92770 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -462,6 +462,8 @@ class ExpenseReport extends CommonObject $action = ''; $reshook = $hookmanager->executeHooks('createFrom', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { + $this->errors += $hookmanager->errors; + $this->error = $hookmanager->error; $error++; } } @@ -985,6 +987,8 @@ class ExpenseReport extends CommonObject return -1; } } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -1328,8 +1332,6 @@ class ExpenseReport extends CommonObject public function set_save_from_refuse($fuser) { // phpcs:enable - global $conf, $langs; - // Sélection de la date de début de la NDF $sql = 'SELECT date_debut'; $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element; @@ -1357,6 +1359,8 @@ class ExpenseReport extends CommonObject } else { dol_syslog(get_class($this)."::set_save_from_refuse expensereport already with save status", LOG_WARNING); } + + return 0; } /** @@ -1465,6 +1469,8 @@ class ExpenseReport extends CommonObject } else { dol_syslog(get_class($this)."::setDeny expensereport already with refuse status", LOG_WARNING); } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -1531,6 +1537,8 @@ class ExpenseReport extends CommonObject } else { dol_syslog(get_class($this)."::set_unpaid expensereport already with unpaid status", LOG_WARNING); } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -1553,7 +1561,7 @@ class ExpenseReport extends CommonObject $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; $sql .= " SET fk_statut = ".self::STATUS_CANCELED.", fk_user_cancel = ".((int) $fuser->id); $sql .= ", date_cancel='".$this->db->idate($this->date_cancel)."'"; - $sql .= " ,detail_cancel='".$this->db->escape($detail)."'"; + $sql .= ", detail_cancel='".$this->db->escape($detail)."'"; $sql .= " WHERE rowid = ".((int) $this->id); dol_syslog(get_class($this)."::set_cancel", LOG_DEBUG); @@ -1585,6 +1593,7 @@ class ExpenseReport extends CommonObject } else { dol_syslog(get_class($this)."::set_cancel expensereport already with cancel status", LOG_WARNING); } + return 0; } /** @@ -1733,9 +1742,9 @@ class ExpenseReport extends CommonObject /** * Update total of an expense report when you add a line. * - * @param string $ligne_total_ht Amount without taxes + * @param string $ligne_total_ht Amount without taxes * @param string $ligne_total_tva Amount of all taxes - * @return void + * @return int */ public function update_totaux_add($ligne_total_ht, $ligne_total_tva) { @@ -1884,7 +1893,7 @@ class ExpenseReport extends CommonObject * * @param int $type Type of line * @param string $seller Seller, but actually he is unknown - * @return true or false + * @return boolean true or false */ public function checkRules($type = 0, $seller = '') { @@ -2179,6 +2188,8 @@ class ExpenseReport extends CommonObject return -2; } } + + return 0; } /** @@ -2572,14 +2583,13 @@ class ExpenseReport extends CommonObject * \brief Compute the cost of the kilometers expense based on the number of kilometers and the vehicule category * * @param int $fk_cat Category of the vehicule used - * @param real $qty Number of kilometers - * @param real $tva VAT rate + * @param float $qty Number of kilometers + * @param float $tva VAT rate * @return int <0 if KO, total ttc if OK */ public function computeTotalKm($fk_cat, $qty, $tva) { - global $langs,$user,$db,$conf; - + global $langs, $db, $conf; $cumulYearQty = 0; $ranges = array(); @@ -2667,6 +2677,44 @@ class ExpenseReport extends CommonObject return -1; } } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs, $selected,$arrayofselected; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + if (in_array($this->id, $arrayofselected)) { + $selected = 1; + } + $return .= ''; + if (property_exists($this, 'fk_user_author') && !empty($this->id)) { + $return .= '
'.$this->fk_user_author.''; + } + if (property_exists($this, 'date_debut') && property_exists($this, 'date_fin')) { + $return .= '
'.dol_print_date($this->date_debut, 'day').''; + $return .= ' '.$langs->trans("To").' '; + $return .= ''.dol_print_date($this->date_fin, 'day').''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } @@ -2814,8 +2862,11 @@ class ExpenseReportLine extends CommonObjectLine $this->rule_warning_message = $objp->rule_warning_message; $this->db->free($result); + + return $this->id; } else { dol_print_error($this->db); + return -1; } } @@ -2828,7 +2879,7 @@ class ExpenseReportLine extends CommonObjectLine */ public function insert($notrigger = 0, $fromaddline = false) { - global $langs, $user, $conf; + global $user, $conf; $error = 0; diff --git a/htdocs/expensereport/class/paymentexpensereport.class.php b/htdocs/expensereport/class/paymentexpensereport.class.php index e871cba86b3..053f46d20cf 100644 --- a/htdocs/expensereport/class/paymentexpensereport.class.php +++ b/htdocs/expensereport/class/paymentexpensereport.class.php @@ -317,7 +317,7 @@ class PaymentExpenseReport extends CommonObject $sql .= " note=".(isset($this->note) ? "'".$this->db->escape($this->note)."'" : "null").","; $sql .= " fk_bank=".(isset($this->fk_bank) ? $this->fk_bank : "null").","; $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? $this->fk_user_creat : "null").","; - $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null").""; + $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null"); $sql .= " WHERE rowid=".((int) $this->id); @@ -713,4 +713,42 @@ class PaymentExpenseReport extends CommonObject dol_print_error($this->db); } } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + if (property_exists($this, 'datep')) { + $return .= '
'.$langs->trans("Date").' : '.dol_print_date($this->db->jdate($this->datep), 'dayhour').''; + } + if (property_exists($this, 'fk_typepayment')) { + $return .= '
'.$langs->trans("Type").' : '.$this->fk_typepayment.''; + } + if (property_exists($this, 'fk_bank') && !is_null($this->fk_bank)) { + $return .= '
'.$langs->trans("Account").' : '.$this->fk_bank.''; + } + if (property_exists($this, 'amount') ) { + $return .= '
'.$langs->trans("Amount").' : '.price($this->amount).''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/expensereport/index.php b/htdocs/expensereport/index.php index fced8a58e14..c8048e78621 100644 --- a/htdocs/expensereport/index.php +++ b/htdocs/expensereport/index.php @@ -78,7 +78,7 @@ $childids[] = $user->id; $help_url = "EN:Module_Expense_Reports|FR:Module_Notes_de_frais"; -llxHeader('', $langs->trans("ListOfFees"), $help_url); +llxHeader('', $langs->trans("TripsAndExpenses"), $help_url); $label = $somme = $nb = array(); diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index bded18fa597..918c916a52c 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -50,6 +50,7 @@ $confirm = GETPOST('confirm', 'alpha'); $cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'expensereportlist'; +$mode = GETPOST('mode', 'alpha'); $childids = $user->getAllChildIds(1); @@ -254,7 +255,7 @@ $formexpensereport = new FormExpenseReport($db); $fuser = new User($db); -$title = $langs->trans("ListOfTrips"); +$title = $langs->trans("TripsAndExpenses"); llxHeader('', $title); $max_year = 5; @@ -378,6 +379,9 @@ if ($resql) { $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); } @@ -471,6 +475,7 @@ if ($resql) { print ''; print ''; print ''; + print ''; if ($id > 0) { print ''; } @@ -512,7 +517,10 @@ if ($resql) { if (!empty($socid)) { $url .= '&socid='.$socid; } - $newcardbutton = dolGetButtonTitle($langs->trans('NewTrip'), '', 'fa fa-plus-circle', $url, '', $user->rights->expensereport->creer); + $newcardbutton = ''; + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('NewTrip'), '', 'fa fa-plus-circle', $url, '', $user->rights->expensereport->creer); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'trip', 0, $newcardbutton, '', $limit, 0, 0, 1); } @@ -739,185 +747,204 @@ if ($resql) { $expensereportstatic->note_private = $obj->note_private; $expensereportstatic->note_public = $obj->note_public; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + print '
'; + } + $usertmp->fetch($obj->id_user); + $expensereportstatic->fk_user_author = $usertmp->getNomUrl(1); - print ''; - // Action column - if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + // Output Kanban + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + if ($massactionbutton || $massaction) { + $selected = 0; + + print $expensereportstatic->getKanbanView(''); } - print ''; } - print ''; - } - // Ref - if (!empty($arrayfields['d.ref']['checked'])) { - print ''; - print ''; - print ''; - // Warning late icon and note - print ''; } - if ($expensereportstatic->status == 5 && $expensereportstatic->hasDelay('topay')) { - print img_warning($langs->trans("Late")); - } - if (!empty($obj->note_private) || !empty($obj->note_public)) { - print ' '; - print ''.img_picto($langs->trans("ViewPrivateNote"), 'object_generic').''; - print ''; - } - print ''; - print ''; - print '
'; - print $expensereportstatic->getNomUrl(1); - print ''; - if ($expensereportstatic->status == 2 && $expensereportstatic->hasDelay('toappove')) { - print img_warning($langs->trans("Late")); + if ($i == (min($num, $limit) - 1)) { + print ''; + print '
'; - $filename = dol_sanitizeFileName($obj->ref); - $filedir = $conf->expensereport->dir_output.'/'.dol_sanitizeFileName($obj->ref); - $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; - print $formfile->getDocumentsLink($expensereportstatic->element, $filename, $filedir); - print '
'; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // User - if (!empty($arrayfields['user']['checked'])) { - print ''; - $usertmp->id = $obj->id_user; - $usertmp->lastname = $obj->lastname; - $usertmp->firstname = $obj->firstname; - $usertmp->login = $obj->login; - $usertmp->statut = $obj->statut; - $usertmp->photo = $obj->photo; - $usertmp->email = $obj->email; - print $usertmp->getNomUrl(-1); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Start date - if (!empty($arrayfields['d.date_debut']['checked'])) { - print ''.($obj->date_debut > 0 ? dol_print_date($db->jdate($obj->date_debut), 'day') : '').''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // End date - if (!empty($arrayfields['d.date_fin']['checked'])) { - print ''.($obj->date_fin > 0 ? dol_print_date($db->jdate($obj->date_fin), 'day') : '').''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date validation - if (!empty($arrayfields['d.date_valid']['checked'])) { - print ''.($obj->date_valid > 0 ? dol_print_date($db->jdate($obj->date_valid), 'day') : '').''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date approval - if (!empty($arrayfields['d.date_approve']['checked'])) { - print ''.($obj->date_approve > 0 ? dol_print_date($db->jdate($obj->date_approve), 'day') : '').''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount HT - if (!empty($arrayfields['d.total_ht']['checked'])) { - print ''.price($obj->total_ht)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'd.total_ht'; - } - $totalarray['val']['d.total_ht'] += $obj->total_ht; - } - // Amount VAT - if (!empty($arrayfields['d.total_vat']['checked'])) { - print ''.price($obj->total_tva)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'd.total_tva'; - } - $totalarray['val']['d.total_tva'] += $obj->total_tva; - } - // Amount TTC - if (!empty($arrayfields['d.total_ttc']['checked'])) { - print ''.price($obj->total_ttc)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'd.total_ttc'; - } - $totalarray['val']['d.total_ttc'] += $obj->total_ttc; - } - - // 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['d.date_create']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_create), 'dayhour'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date modification - if (!empty($arrayfields['d.tms']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_modif), 'dayhour'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['d.fk_statut']['checked'])) { - print ''.$expensereportstatic->getLibStatut(5).''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Action column - if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + } else { + print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print ''; } - print ''; + // Ref + if (!empty($arrayfields['d.ref']['checked'])) { + print ''; + print ''; + print ''; + // Warning late icon and note + print ''; + print ''; + print '
'; + print $expensereportstatic->getNomUrl(1); + print ''; + if ($expensereportstatic->status == 2 && $expensereportstatic->hasDelay('toappove')) { + print img_warning($langs->trans("Late")); + } + if ($expensereportstatic->status == 5 && $expensereportstatic->hasDelay('topay')) { + print img_warning($langs->trans("Late")); + } + if (!empty($obj->note_private) || !empty($obj->note_public)) { + print ' '; + print ''.img_picto($langs->trans("ViewPrivateNote"), 'object_generic').''; + print ''; + } + print ''; + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->expensereport->dir_output.'/'.dol_sanitizeFileName($obj->ref); + $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; + print $formfile->getDocumentsLink($expensereportstatic->element, $filename, $filedir); + print '
'; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // User + if (!empty($arrayfields['user']['checked'])) { + print ''; + $usertmp->id = $obj->id_user; + $usertmp->lastname = $obj->lastname; + $usertmp->firstname = $obj->firstname; + $usertmp->login = $obj->login; + $usertmp->statut = $obj->statut; + $usertmp->photo = $obj->photo; + $usertmp->email = $obj->email; + print $usertmp->getNomUrl(-1); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Start date + if (!empty($arrayfields['d.date_debut']['checked'])) { + print ''.($obj->date_debut > 0 ? dol_print_date($db->jdate($obj->date_debut), 'day') : '').''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // End date + if (!empty($arrayfields['d.date_fin']['checked'])) { + print ''.($obj->date_fin > 0 ? dol_print_date($db->jdate($obj->date_fin), 'day') : '').''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date validation + if (!empty($arrayfields['d.date_valid']['checked'])) { + print ''.($obj->date_valid > 0 ? dol_print_date($db->jdate($obj->date_valid), 'day') : '').''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date approval + if (!empty($arrayfields['d.date_approve']['checked'])) { + print ''.($obj->date_approve > 0 ? dol_print_date($db->jdate($obj->date_approve), 'day') : '').''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['d.total_ht']['checked'])) { + print ''.price($obj->total_ht)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'd.total_ht'; + } + $totalarray['val']['d.total_ht'] += $obj->total_ht; + } + // Amount VAT + if (!empty($arrayfields['d.total_vat']['checked'])) { + print ''.price($obj->total_tva)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'd.total_tva'; + } + $totalarray['val']['d.total_tva'] += $obj->total_tva; + } + // Amount TTC + if (!empty($arrayfields['d.total_ttc']['checked'])) { + print ''.price($obj->total_ttc)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'd.total_ttc'; + } + $totalarray['val']['d.total_ttc'] += $obj->total_ttc; + } + + // 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['d.date_create']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_create), 'dayhour'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date modification + if (!empty($arrayfields['d.tms']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_modif), 'dayhour'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['d.fk_statut']['checked'])) { + print ''.$expensereportstatic->getLibStatut(5).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print "\n"; } - if (!$i) { - $totalarray['nbfield']++; - } - - print "\n"; - - $total_total_ht = $total_total_ht + $obj->total_ht; - $total_total_tva = $total_total_tva + $obj->total_tva; - $total_total_ttc = $total_total_ttc + $obj->total_ttc; - + $total_total_ht = $total_total_ht + $obj->total_ht; + $total_total_tva = $total_total_tva + $obj->total_tva; + $total_total_ttc = $total_total_ttc + $obj->total_ttc; $i++; } } else { diff --git a/htdocs/expensereport/payment/card.php b/htdocs/expensereport/payment/card.php index db6c21e202f..bdc7b51312a 100644 --- a/htdocs/expensereport/payment/card.php +++ b/htdocs/expensereport/payment/card.php @@ -209,7 +209,7 @@ if ($resql) { print ''.price($objp->total_ttc - $objp->amount).''; // Status - print ''.$expensereport->getLibStatut(4, $objp->amount).''; + print ''.$expensereport->getLibStatut(4).''; print "\n"; diff --git a/htdocs/expensereport/payment/info.php b/htdocs/expensereport/payment/info.php index b5d87b81a51..c1e00ffa0fb 100644 --- a/htdocs/expensereport/payment/info.php +++ b/htdocs/expensereport/payment/info.php @@ -52,7 +52,7 @@ $confirm = GETPOST('confirm', 'alpha'); llxHeader('', $langs->trans("Payment")); $object = new PaymentExpenseReport($db); -$object->fetch($id, $ref); +$object->fetch($id); $object->info($object->id); $head = payment_expensereport_prepare_head($object); diff --git a/htdocs/expensereport/payment/list.php b/htdocs/expensereport/payment/list.php index cb93aae4ff0..4c838a73b1e 100644 --- a/htdocs/expensereport/payment/list.php +++ b/htdocs/expensereport/payment/list.php @@ -48,6 +48,7 @@ $action = GETPOST('action', 'alpha'); $massaction = GETPOST('massaction', 'alpha'); $optioncss = GETPOST('optioncss', 'alpha'); $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'vendorpaymentlist'; +$mode = GETPOST('mode', 'alpha'); $socid = GETPOST('socid', 'int'); @@ -254,6 +255,9 @@ $num = $db->num_rows($resql); $i = 0; $param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER['PHP_SELF']) { $param .= '&contextpage='.urlencode($contextpage); } @@ -315,8 +319,13 @@ 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); +$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')); + +print_barre_liste($langs->trans('ExpenseReportPayments'), $page, $_SERVER['PHP_SELF'], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'expensereport', 0, $newcardbutton, '', $limit, 0, 0, 1); if ($search_all) { foreach ($fieldstosearchall as $key => $val) { @@ -473,116 +482,138 @@ while ($i < min($num, $limit)) { $paymentexpensereportstatic->id = $objp->rowid; $paymentexpensereportstatic->ref = $objp->ref; - $paymentexpensereportstatic->datepaye = $objp->datep; + $paymentexpensereportstatic->datep = $objp->datep; + $paymentexpensereportstatic->amount = $objp->pamount; + $paymentexpensereportstatic->fk_typepayment = $objp->paiement_type; + + if ($objp->bid) { + $accountstatic->fetch($objp->bid); + $paymentexpensereportstatic->fk_bank = $accountstatic->getNomUrl(1); + } else { + $paymentexpensereportstatic->fk_bank = null; + } $userstatic->id = $objp->userid; $userstatic->lastname = $objp->lastname; $userstatic->firstname = $objp->firstname; - print ''; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + print '
'; + } + // Output Kanban + print $paymentexpensereportstatic->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print '
'; + print ''; + } + } else { + print ''; - // No - if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { - print ''.(($offset * $limit) + $i).''; + // No + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { + print ''.(($offset * $limit) + $i).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Ref + if (!empty($arrayfields['pndf.rowid']['checked'])) { + print ''.$paymentexpensereportstatic->getNomUrl(1).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date + if (!empty($arrayfields['pndf.datep']['checked'])) { + $dateformatforpayment = 'dayhour'; + print ''.dol_print_date($db->jdate($objp->datep), $dateformatforpayment).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Thirdparty + if (!empty($arrayfields['u.login']['checked'])) { + print ''; + if ($userstatic->id > 0) { + print $userstatic->getNomUrl(1); + } + 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 ''.$payment_type.' '.dol_trunc($objp->num_payment, 32).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Cheque number (fund transfer) + if (!empty($arrayfields['pndf.num_payment']['checked'])) { + print ''.$objp->num_payment.''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Bank account + if (!empty($arrayfields['ba.label']['checked'])) { + print ''; + 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 ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Amount + if (!empty($arrayfields['pndf.amount']['checked'])) { + print ''.price($objp->pamount).''; + 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 ''; } - - // Ref - if (!empty($arrayfields['pndf.rowid']['checked'])) { - print ''.$paymentexpensereportstatic->getNomUrl(1).''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date - if (!empty($arrayfields['pndf.datep']['checked'])) { - $dateformatforpayment = 'dayhour'; - print ''.dol_print_date($db->jdate($objp->datep), $dateformatforpayment).''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Thirdparty - if (!empty($arrayfields['u.login']['checked'])) { - print ''; - if ($userstatic->id > 0) { - print $userstatic->getNomUrl(1); - } - 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 ''.$payment_type.' '.dol_trunc($objp->num_payment, 32).''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Cheque number (fund transfer) - if (!empty($arrayfields['pndf.num_payment']['checked'])) { - print ''.$objp->num_payment.''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Bank account - if (!empty($arrayfields['ba.label']['checked'])) { - print ''; - 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 ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Amount - if (!empty($arrayfields['pndf.amount']['checked'])) { - print ''.price($objp->pamount).''; - 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++; } diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index cf0383dd08c..4b8be1dc74d 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -175,21 +175,21 @@ class Export $this->array_export_perms[$i] = $bool; // Icon $this->array_export_icon[$i] = (isset($module->export_icon[$r]) ? $module->export_icon[$r] : $module->picto); - // Code du dataset export + // Code of the export dataset / Code du dataset export $this->array_export_code[$i] = $module->export_code[$r]; // Define a key for sort $this->array_export_code_for_sort[$i] = $module->module_position.'_'.$module->export_code[$r]; // Add a key into the module - // Libelle du dataset export + // Export Dataset Label / Libelle du dataset export $this->array_export_label[$i] = $module->getExportDatasetLabel($r); - // Tableau des champ a exporter (cle=champ, valeur=libelle) + // Table of fields to export / Tableau des champ a exporter (cle=champ, valeur=libelle) $this->array_export_fields[$i] = $module->export_fields_array[$r]; - // Tableau des champs a filtrer (cle=champ, valeur1=type de donnees) on verifie que le module a des filtres + // Table of fields to be filtered / Tableau des champs a filtrer (cle=champ, valeur1=type de donnees) on verifie que le module a des filtres $this->array_export_TypeFields[$i] = (isset($module->export_TypeFields_array[$r]) ? $module->export_TypeFields_array[$r] : ''); - // Tableau des entites a exporter (cle=champ, valeur=entite) + // Table of entities for export / Tableau des entites a exporter (cle=champ, valeur=entite) $this->array_export_entities[$i] = $module->export_entities_array[$r]; // Tableau des entites qui requiert abandon du DISTINCT (cle=entite, valeur=champ id child records) $this->array_export_dependencies[$i] = (!empty($module->export_dependencies_array[$r]) ? $module->export_dependencies_array[$r] : ''); - // Tableau des operations speciales sur champ + // Table of special field operations / Tableau des operations speciales sur champ $this->array_export_special[$i] = (!empty($module->export_special_array[$r]) ? $module->export_special_array[$r] : ''); // Array of examples $this->array_export_examplevalues[$i] = (!empty($module->export_examplevalues_array[$r]) ? $module->export_examplevalues_array[$r] : null); @@ -461,9 +461,9 @@ class Export } break; case 'List': - // 0 : Type du champ - // 1 : Nom de la table - // 2 : Nom du champ contenant le libelle + // 0 : Type of the field / Type du champ + // 1 : Name of the table / Nom de la table + // 2 : Name of the field containing the label / Nom du champ contenant le libelle // 3 : Name of field with key (if it is not "rowid"). Used this field as key for combo list. // 4 : Name of element for getEntity(). diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 4591ccd0bf3..f35ae3a3121 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -1187,7 +1187,7 @@ if ($step == 5 && $datatoexport) { $htmltabloflibs .= ''.$langs->trans("LibraryVersion").''; $htmltabloflibs .= ''."\n"; - $liste = $objmodelexport->liste_modeles($db); + $liste = $objmodelexport->listOfAvailableExportFormat($db); $listeall = $liste; foreach ($listeall as $key => $val) { if (preg_match('/__\(Disabled\)__/', $listeall[$key])) { diff --git a/htdocs/exports/index.php b/htdocs/exports/index.php index 41d6cd18ed0..6039a9c447a 100644 --- a/htdocs/exports/index.php +++ b/htdocs/exports/index.php @@ -72,7 +72,7 @@ print ''; include_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php'; $model = new ModeleExports($db); -$liste = $model->liste_modeles($db); // This is not a static method for exports because method load non static properties +$liste = $model->listOfAvailableExportFormat($db); // This is not a static method for exports because method load non static properties foreach ($liste as $key => $val) { if (preg_match('/__\(Disabled\)__/', $liste[$key])) { diff --git a/htdocs/fichinter/card-rec.php b/htdocs/fichinter/card-rec.php index 2f82b16e1ad..bfed76168d5 100644 --- a/htdocs/fichinter/card-rec.php +++ b/htdocs/fichinter/card-rec.php @@ -52,7 +52,12 @@ $langs->loadLangs(array("interventions", "admin", "compta", "bills")); // Security check $id = (GETPOST('fichinterid', 'int') ?GETPOST('fichinterid', 'int') : GETPOST('id', 'int')); +$ref = GETPOST('ref', 'alpha'); +$date_next_execution = GETPOST('date_next_execution', 'alpha'); $action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); +$socid = GETPOST('socid', 'int'); if ($user->socid) { $socid = $user->socid; } @@ -62,12 +67,19 @@ if ($action == "create" || $action == "add") { } $result = restrictedArea($user, 'ficheinter', $id, $objecttype); -if ($page == -1) { +// Load variable for pagination +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'aZ09comma'); +$sortorder = GETPOST('sortorder', 'aZ09comma'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { + // If $page is not defined, or '' or -1 or if we click on clear filters $page = 0; } - -$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; + $sortorder = GETPOST('sortorder', 'aZ09comma'); $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -102,6 +114,17 @@ $arrayfields = array( * Actions */ +if ($cancel) { + /*var_dump($cancel);var_dump($backtopage);var_dump($backtopageforcancel);exit;*/ + if (!empty($backtopageforcancel)) { + header("Location: ".$backtopageforcancel); + exit; + } elseif (!empty($backtopage)) { + header("Location: ".$backtopage); + exit; + } + $action = ''; +} // Create predefined intervention if ($action == 'add') { @@ -130,6 +153,8 @@ if ($action == 'add') { setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("Date")), null, 'errors'); $action = "create"; $error++; + } else { + $date_next_execution = dol_mktime($rehour, $remin, 0, $remonth, $reday, $reyear); } if ($nb_gen_max === '') { setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("MaxPeriodNumber")), null, 'errors'); @@ -151,7 +176,6 @@ if ($action == 'add') { $object->nb_gen_max = $nb_gen_max; $object->auto_validate = GETPOST('auto_validate', 'int'); - $date_next_execution = dol_mktime($rehour, $remin, 0, $remonth, $reday, $reyear); $object->date_when = $date_next_execution; if ($object->create($user) > 0) { @@ -210,7 +234,7 @@ if ($action == 'add') { } elseif ($action == 'delete' && $user->rights->ficheinter->supprimer) { // delete modele $object->fetch($id); - $object->delete(); + $object->delete($user); $id = 0; header('Location: '.$_SERVER["PHP_SELF"]); exit; @@ -268,6 +292,7 @@ if ($action == 'create') { print ''; print ''; print ''; + print ''; print ''; print dol_get_fiche_head(); @@ -332,7 +357,7 @@ if ($action == 'create') { if (isModEnabled('contrat')) { $formcontract = new FormContract($db); print "".$langs->trans("Contract").""; - $contractid = GETPOST('contractid') ?GETPOST('contractid') : $object->fk_contract; + $contractid = GETPOST('contractid') ? GETPOST('contractid') : (!empty($object->fk_contract) ? $object->fk_contract : 0) ; $numcontract = $formcontract->select_contract($object->thirdparty->id, $contractid, 'contracttid'); print ""; } @@ -357,7 +382,7 @@ if ($action == 'create') { // First date of execution for cron print "".$langs->trans('NextDateToExecution').""; - if ($date_next_execution != "") { + if (empty($date_next_execution)) { $date_next_execution = (GETPOST('remonth') ? dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')) : -1); } print $form->selectDate($date_next_execution, '', 1, 1, '', "add", 1, 1); @@ -502,7 +527,7 @@ if ($action == 'create') { $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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { @@ -736,7 +761,7 @@ if ($action == 'create') { if ($user->rights->ficheinter->creer) { print ''; } @@ -763,22 +788,22 @@ if ($action == 'create') { } $sql .= " WHERE f.fk_soc = s.rowid"; $sql .= " AND f.entity = ".$conf->entity; - if ($socid) { + if (!empty($socid)) { $sql .= " AND s.rowid = ".((int) $socid); } if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } - if ($search_ref) { + if (!empty($search_ref)) { $sql .= natural_search('f.titre', $search_ref); } - if ($search_societe) { + if (!empty($search_societe)) { $sql .= natural_search('s.nom', $search_societe); } - if ($search_frequency == '1') { + if (!empty($search_frequency) && $search_frequency == '1') { $sql .= ' AND f.frequency > 0'; } - if ($search_frequency == '0') { + if (isset($search_frequency) && (string) $search_frequency == '0') { $sql .= ' AND (f.frequency IS NULL or f.frequency = 0)'; } diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index 89205de02d5..accf1bb3cb5 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -1177,7 +1177,7 @@ if ($action == 'create') { $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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { @@ -1642,7 +1642,7 @@ if ($action == 'create') { // Create intervention model if ($conf->global->MAIN_FEATURES_LEVEL >= 1 && $object->statut == Fichinter::STATUS_DRAFT && $user->rights->ficheinter->creer && (count($object->lines) > 0)) { print ''; } diff --git a/htdocs/fichinter/class/api_interventions.class.php b/htdocs/fichinter/class/api_interventions.class.php index f96dc3d6aa7..14fc9f16fcf 100644 --- a/htdocs/fichinter/class/api_interventions.class.php +++ b/htdocs/fichinter/class/api_interventions.class.php @@ -64,11 +64,10 @@ class Interventions extends DolibarrApi /** * Get properties of a Expense Report object - * * Return an array with Expense Report information * * @param int $id ID of Expense Report - * @return array|mixed Data without useless information + * @return Object Object with cleaned properties * * @throws RestException */ @@ -93,7 +92,6 @@ class Interventions extends DolibarrApi /** * List of interventions - * * Return a list of interventions * * @param string $sortfield Sort field @@ -336,12 +334,11 @@ class Interventions extends DolibarrApi * "notrigger": 0 * } * - * @param int $id Intervention ID - * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * @param int $id Intervention ID + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * @return Object Object with cleaned properties * * @url POST {id}/validate - * - * @return array */ public function validate($id, $notrigger = 0) { @@ -373,11 +370,10 @@ class Interventions extends DolibarrApi /** * Close an intervention * - * @param int $id Intervention ID + * @param int $id Intervention ID + * @return Object Object with cleaned properties * * @url POST {id}/close - * - * @return array */ public function closeFichinter($id) { diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php index e36598d04bc..450e2c63af3 100644 --- a/htdocs/fichinter/class/fichinter.class.php +++ b/htdocs/fichinter/class/fichinter.class.php @@ -38,7 +38,7 @@ class Fichinter extends CommonObject { public $fields = array( 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>10), - 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>15), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'isModEnabled("societe")', '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), @@ -501,6 +501,8 @@ class Fichinter extends CommonObject $this->db->free($resql); return 1; } + + return 0; } else { $this->error = $this->db->lasterror(); return -1; @@ -515,8 +517,6 @@ class Fichinter extends CommonObject */ public function setDraft($user) { - global $langs, $conf; - $error = 0; // Protection @@ -664,6 +664,8 @@ class Fichinter extends CommonObject return -1; } } + + return 0; } /** @@ -747,25 +749,25 @@ class Fichinter extends CommonObject { // phpcs:enable // Init/load array of translation of status - if (empty($this->statuts) || empty($this->statuts_short) || empty($this->statuts_logo)) { + if (empty($this->labelStatus) || empty($this->labelStatusShort)) { global $langs; $langs->load("fichinter"); - $this->statuts[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); - $this->statuts[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Validated'); - $this->statuts[self::STATUS_BILLED] = $langs->transnoentitiesnoconv('StatusInterInvoiced'); - $this->statuts[self::STATUS_CLOSED] = $langs->transnoentitiesnoconv('Done'); - $this->statuts_short[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); - $this->statuts_short[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Validated'); - $this->statuts_short[self::STATUS_BILLED] = $langs->transnoentitiesnoconv('StatusInterInvoiced'); - $this->statuts_short[self::STATUS_CLOSED] = $langs->transnoentitiesnoconv('Done'); - $this->statuts_logo[self::STATUS_DRAFT] = 'status0'; - $this->statuts_logo[self::STATUS_VALIDATED] = 'status1'; - $this->statuts_logo[self::STATUS_BILLED] = 'status6'; - $this->statuts_logo[self::STATUS_CLOSED] = 'status6'; + $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); + $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Validated'); + $this->labelStatus[self::STATUS_BILLED] = $langs->transnoentitiesnoconv('StatusInterInvoiced'); + $this->labelStatus[self::STATUS_CLOSED] = $langs->transnoentitiesnoconv('Done'); + $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); + $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Validated'); + $this->labelStatusShort[self::STATUS_BILLED] = $langs->transnoentitiesnoconv('StatusInterInvoiced'); + $this->labelStatusShort[self::STATUS_CLOSED] = $langs->transnoentitiesnoconv('Done'); } - return dolGetStatus($this->statuts[$status], $this->statuts_short[$status], '', $this->statuts_logo[$status], $mode); + $statuscode = 'status'.$status; + if ($status == self::STATUS_BILLED || $status == self::STATUS_CLOSED) { + $statuscode = 'status6'; + } + return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status], '', $statuscode, $mode); } /** @@ -904,8 +906,6 @@ class Fichinter extends CommonObject */ public function info($id) { - global $conf; - $sql = "SELECT f.rowid,"; $sql .= " f.datec,"; $sql .= " f.tms as date_modification,"; @@ -955,7 +955,7 @@ class Fichinter extends CommonObject * @param int $notrigger Disable trigger * @return int <0 if KO, >0 if OK */ - public function delete($user, $notrigger = 0) + public function delete(User $user, $notrigger = 0) { global $conf, $langs; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -1074,13 +1074,11 @@ class Fichinter extends CommonObject * * @param User $user Object user who define * @param integer $date_delivery date of delivery - * @return int <0 if ko, >0 if ok + * @return int <0 if KO, >0 if OK */ public function set_date_delivery($user, $date_delivery) { // phpcs:enable - global $conf; - if ($user->rights->ficheinter->creer) { $sql = "UPDATE ".MAIN_DB_PREFIX."fichinter "; $sql .= " SET datei = '".$this->db->idate($date_delivery)."'"; @@ -1096,6 +1094,8 @@ class Fichinter extends CommonObject return -1; } } + + return 0; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps @@ -1109,8 +1109,6 @@ class Fichinter extends CommonObject public function set_description($user, $description) { // phpcs:enable - global $conf; - if ($user->rights->ficheinter->creer) { $sql = "UPDATE ".MAIN_DB_PREFIX."fichinter "; $sql .= " SET description = '".$this->db->escape($description)."',"; @@ -1126,6 +1124,8 @@ class Fichinter extends CommonObject return -1; } } + + return 0; } @@ -1135,13 +1135,11 @@ class Fichinter extends CommonObject * * @param User $user Object user who modify * @param int $contractid Description - * @return int <0 if ko, >0 if ok + * @return int <0 if KO, >0 if OK */ public function set_contrat($user, $contractid) { // phpcs:enable - global $conf; - if ($user->rights->ficheinter->creer) { $sql = "UPDATE ".MAIN_DB_PREFIX."fichinter "; $sql .= " SET fk_contrat = ".((int) $contractid); @@ -1155,6 +1153,7 @@ class Fichinter extends CommonObject return -1; } } + return -2; } @@ -1228,6 +1227,8 @@ class Fichinter extends CommonObject $action = ''; $reshook = $hookmanager->executeHooks('createFrom', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { + $this->errors += $hookmanager->errors; + $this->error = $hookmanager->error; $error++; } } @@ -1261,7 +1262,7 @@ class Fichinter extends CommonObject { dol_syslog(get_class($this)."::addline $fichinterid, $desc, $date_intervention, $duration"); - if ($this->statut == 0) { + if ($this->statut == self::STATUS_DRAFT) { $this->db->begin(); // Insertion ligne @@ -1288,6 +1289,8 @@ class Fichinter extends CommonObject return -1; } } + + return 0; } @@ -1300,7 +1303,7 @@ class Fichinter extends CommonObject */ public function initAsSpecimen() { - global $user, $langs, $conf; + global $langs; $now = dol_now(); @@ -1383,18 +1386,18 @@ class Fichinter extends CommonObject /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'fichinter' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -1453,6 +1456,39 @@ class Fichinter extends CommonObject return -1; } } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + //$return .= ''; // Can be image + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).''; + if (property_exists($this, 'socid')) { + $return .= '
'.$this->socid.''; + } + if (property_exists($this, 'duration')) { + $return .= '
'.$langs->trans("Duration").' : '.convertSecondToTime($this->duration, 'allhourmin').''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } /** diff --git a/htdocs/fichinter/class/fichinterrec.class.php b/htdocs/fichinter/class/fichinterrec.class.php index 96ef9e97314..44dd63abcd2 100644 --- a/htdocs/fichinter/class/fichinterrec.class.php +++ b/htdocs/fichinter/class/fichinterrec.class.php @@ -150,7 +150,7 @@ class FichinterRec extends Fichinter $fichintsrc = new Fichinter($this->db); $result = $fichintsrc->fetch($this->id_origin); - $result = $fichintsrc->fetch_lines(1); // to get all lines + $result = $fichintsrc->fetch_lines(); // to get all lines if ($result > 0) { @@ -234,7 +234,7 @@ class FichinterRec extends Fichinter 0, $fichintsrc->lines[$i]->product_type, $fichintsrc->lines[$i]->special_code, - $fichintsrc->lines[$i]->label, + !empty($fichintsrc->lines[$i]->label) ? $fichintsrc->lines[$i]->label : "", $fichintsrc->lines[$i]->fk_unit ); @@ -304,10 +304,10 @@ class FichinterRec extends Fichinter $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; $this->user_author = $obj->fk_user_author; - $this->model_pdf = $obj->model_pdf; - $this->modelpdf = $obj->model_pdf; // deprecated - $this->rang = $obj->rang; - $this->special_code = $obj->special_code; + $this->model_pdf = !empty($obj->model_pdf) ? $obj->model_pdf : ""; + $this->modelpdf = !empty($obj->model_pdf) ? $obj->model_pdf : ""; // deprecated + $this->rang = !empty($obj->rang) ? $obj->rang : ""; + $this->special_code = !empty($obj->special_code) ? $obj->special_code : ""; $this->frequency = $obj->frequency; $this->unit_frequency = $obj->unit_frequency; $this->date_when = $this->db->jdate($obj->date_when); @@ -384,9 +384,9 @@ class FichinterRec extends Fichinter $line->subprice = $objp->subprice; $line->tva_tx = $objp->tva_tx; $line->remise_percent = $objp->remise_percent; - $line->fk_remise_except = $objp->fk_remise_except; + $line->fk_remise_except = !empty($objp->fk_remise_except) ? $objp->fk_remise_except : ""; $line->fk_product = $objp->fk_product; - $line->info_bits = $objp->info_bits; + $line->info_bits = !empty($objp->info_bits) ? $objp->info_bits : ""; $line->total_ht = $objp->total_ht; $line->total_tva = $objp->total_tva; $line->total_ttc = $objp->total_ttc; @@ -411,16 +411,13 @@ class FichinterRec extends Fichinter /** * Delete template fichinter rec * - * @param int $rowid Id of fichinter rec to delete. If empty, we delete current instance of fichinter rec - * @param int $notrigger 1=Does not execute triggers, 0= execute triggers - * @param int $idwarehouse Id warehouse to use for stock change. + * @param User $user Object user who delete + * @param int $notrigger Disable trigger * @return int <0 if KO, >0 if OK */ - public function delete($rowid = 0, $notrigger = 0, $idwarehouse = -1) + public function delete(User $user, $notrigger = 0) { - if (empty($rowid)) { - $rowid = $this->id; - } + $rowid = $this->id; dol_syslog(get_class($this)."::delete rowid=".$rowid, LOG_DEBUG); @@ -664,18 +661,15 @@ class FichinterRec extends Fichinter * Used to build previews or test instances. * id must be 0 if object instance is a specimen. * - * @param string $option ''=Create a specimen fichinter with lines, 'nolines'=No lines * @return void */ - public function initAsSpecimen($option = '') + public function initAsSpecimen() { - global $user, $langs, $conf; + //$now = dol_now(); + //$arraynow = dol_getdate($now); + //$nownotime = dol_mktime(0, 0, 0, $arraynow['mon'], $arraynow['mday'], $arraynow['year']); - $now = dol_now(); - $arraynow = dol_getdate($now); - $nownotime = dol_mktime(0, 0, 0, $arraynow['mon'], $arraynow['mday'], $arraynow['year']); - - parent::initAsSpecimen($option); + parent::initAsSpecimen(); $this->usenewprice = 1; } @@ -683,16 +677,16 @@ class FichinterRec extends Fichinter /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array('fichinter_rec'); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** diff --git a/htdocs/fichinter/contact.php b/htdocs/fichinter/contact.php index 02099d959c7..aa0fe5b482f 100644 --- a/htdocs/fichinter/contact.php +++ b/htdocs/fichinter/contact.php @@ -141,7 +141,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= ''; $morehtmlref .= ''; } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/fichinter/document.php b/htdocs/fichinter/document.php index 1b388763c02..3b4721d63a0 100644 --- a/htdocs/fichinter/document.php +++ b/htdocs/fichinter/document.php @@ -141,7 +141,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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/fichinter/info.php b/htdocs/fichinter/info.php index c556ba022e0..da1af1d613b 100644 --- a/htdocs/fichinter/info.php +++ b/htdocs/fichinter/info.php @@ -96,7 +96,7 @@ if (isModEnabled('project')) { $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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index a3b69d6e26c..705dac46e50 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -57,6 +57,7 @@ $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'interventionlist'; +$mode = GETPOST('mode', 'alpha'); $search_ref = GETPOST('search_ref') ?GETPOST('search_ref', 'alpha') : GETPOST('search_inter', 'alpha'); $search_ref_client = GETPOST('search_ref_client', 'alpha'); @@ -213,7 +214,7 @@ if (isModEnabled('contrat')) { $now = dol_now(); $help_url = ''; -$title = $langs->trans("ListOfInterventions"); +$title = $langs->trans("Interventions"); $morejs = array(); $morecss = array(); @@ -249,7 +250,7 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) { } // Add fields from hooks $parameters = array(); -$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; $sqlfields = $sql; // $sql fields to remove for count total @@ -460,7 +461,10 @@ $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); +$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('NewIntervention'), '', 'fa fa-plus-circle', $url, '', $user->rights->ficheinter->creer); print_barre_liste($title, $page, $_SERVER['PHP_SELF'], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'object_'.$object->picto, 0, $newcardbutton, '', $limit, 0, 0, 1); @@ -498,7 +502,7 @@ $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfi $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); print '
'; -print ''."\n"; +print '
'."\n"; // Fields title search // -------------------------------------------------------------------- @@ -569,13 +573,13 @@ if (!empty($arrayfields['f.note_private']['checked'])) { } // Status if (!empty($arrayfields['f.fk_statut']['checked'])) { - print ''; } // Fields of detail line @@ -695,197 +699,219 @@ while ($i < $imaxinloop) { $companystatic->email = $obj->email; $companystatic->status = $obj->thirdpartystatus; - print ''; - // Action column - if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - } - if (!empty($arrayfields['f.ref']['checked'])) { - print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } } - } - if (!empty($arrayfields['f.ref_client']['checked'])) { - // Customer ref - print ''; - 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 ''; - 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']++; + } } - print ''; - if (!$i) { - $totalarray['nbfield']++; + if (!empty($arrayfields['c.ref']['checked'])) { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } } - } - if (!empty($arrayfields['c.ref']['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'; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'fd.duree'; + } + $totalarray['val']['fd.duree'] += $obj->duree; + } + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + 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['val']['fd.duree'] += $obj->duree; - } - // Action column - if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } + print ''."\n"; - print ''."\n"; - - $total += $obj->duree; + $total += $obj->duree; + } $i++; } diff --git a/htdocs/fichinter/note.php b/htdocs/fichinter/note.php index 5b246e55eb7..93bd60e519b 100644 --- a/htdocs/fichinter/note.php +++ b/htdocs/fichinter/note.php @@ -106,7 +106,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= ''; $morehtmlref .= ''; } else { - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/fichinter/stats/index.php b/htdocs/fichinter/stats/index.php index 162afb68077..59c3ba83ee1 100644 --- a/htdocs/fichinter/stats/index.php +++ b/htdocs/fichinter/stats/index.php @@ -288,11 +288,11 @@ foreach ($data as $val) { print ''; print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; $oldyear = $year; } diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index 910b56ddae4..a5b5264052d 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', '17.0.0-beta'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c + define('DOL_VERSION', '18.0.0-alpha'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c } if (!defined('EURO')) { @@ -138,10 +138,10 @@ if (!empty($dolibarr_main_prod)) { } // Clean parameters -$dolibarr_main_data_root = trim($dolibarr_main_data_root); -$dolibarr_main_url_root = trim(preg_replace('/\/+$/', '', $dolibarr_main_url_root)); +$dolibarr_main_data_root = (empty($dolibarr_main_data_root) ? '' : trim($dolibarr_main_data_root)); +$dolibarr_main_url_root = trim(preg_replace('/\/+$/', '', empty($dolibarr_main_url_root) ? '' : $dolibarr_main_url_root)); $dolibarr_main_url_root_alt = (empty($dolibarr_main_url_root_alt) ? '' : trim($dolibarr_main_url_root_alt)); -$dolibarr_main_document_root = trim($dolibarr_main_document_root); +$dolibarr_main_document_root = (empty($dolibarr_main_document_root) ? '' : trim($dolibarr_main_document_root)); $dolibarr_main_document_root_alt = (empty($dolibarr_main_document_root_alt) ? '' : trim($dolibarr_main_document_root_alt)); if (empty($dolibarr_main_db_port)) { diff --git a/htdocs/fourn/ajax/getSupplierPrices.php b/htdocs/fourn/ajax/getSupplierPrices.php index 29cf421059e..66001ccc5a6 100644 --- a/htdocs/fourn/ajax/getSupplierPrices.php +++ b/htdocs/fourn/ajax/getSupplierPrices.php @@ -88,7 +88,7 @@ if ($idprod > 0) { $label .= ' ('.$productSupplier->fourn_ref.')'; } - $prices[] = array("id" => $productSupplier->product_fourn_price_id, "price" => price2num($price, 0, '', 0), "label" => $label, "title" => $title); // For price field, we must use price2num(), for label or title, price() + $prices[] = array("id" => $productSupplier->product_fourn_price_id, "price" => price2num($price, '', 0), "label" => $label, "title" => $title); // For price field, we must use price2num(), for label or title, price() } } diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index f3260d8ea48..19335656f51 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -98,7 +98,8 @@ if (empty($reshook)) { $action = ""; } - if ($action == 'setsupplieraccountancycode') { + // Set supplier accounting account + if ($action == 'setsupplieraccountancycode' && $user->hasRight('societe', 'creer')) { $result = $object->fetch($id); $object->code_compta_fournisseur = GETPOST("supplieraccountancycode"); $result = $object->update($object->id, $user, 1, 0, 1); @@ -106,8 +107,17 @@ if (empty($reshook)) { setEventMessages($object->error, $object->errors, 'errors'); } } + // Set vat number accounting account + if ($action == 'settva_intra' && $user->hasRight('societe', 'creer')) { + $result = $object->fetch($id); + $object->tva_intra = GETPOST("tva_intra"); + $result = $object->update($object->id, $user, 1, 0, 0); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } + } // Set payment terms of the settlement - if ($action == 'setconditions' && $user->rights->societe->creer) { + if ($action == 'setconditions' && $user->hasRight('societe', 'creer')) { $object->fetch($id); $result = $object->setPaymentTerms(GETPOST('cond_reglement_supplier_id', 'int')); if ($result < 0) { @@ -115,7 +125,7 @@ if (empty($reshook)) { } } // Payment mode - if ($action == 'setmode' && $user->rights->societe->creer) { + if ($action == 'setmode' && $user->hasRight('societe', 'creer')) { $object->fetch($id); $result = $object->setPaymentMethods(GETPOST('mode_reglement_supplier_id', 'int')); if ($result < 0) { @@ -124,7 +134,7 @@ if (empty($reshook)) { } // Bank account - if ($action == 'setbankaccount' && $user->rights->societe->creer) { + if ($action == 'setbankaccount' && $user->hasRight('societe', 'creer')) { $object->fetch($id); $result = $object->setBankAccount(GETPOST('fk_account', 'int')); if ($result < 0) { @@ -133,7 +143,7 @@ if (empty($reshook)) { } // update supplier order min amount - if ($action == 'setsupplier_order_min_amount') { + if ($action == 'setsupplier_order_min_amount' && $user->hasRight('societe', 'creer')) { $object->fetch($id); $object->supplier_order_min_amount = price2num(GETPOST('supplier_order_min_amount', 'alpha')); $result = $object->update($object->id, $user); @@ -142,7 +152,7 @@ if (empty($reshook)) { } } - if ($action == 'update_extras') { + if ($action == 'update_extras' && $user->hasRight('societe', 'creer')) { $object->fetch($id); $object->oldcopy = dol_clone($object); @@ -232,9 +242,9 @@ if ($object->id > 0) { $langs->load('compta'); print ''; print ''; print ''; } @@ -261,8 +271,12 @@ if ($object->id > 0) { } // TVA Intra - print ''; // Default terms of the settlement @@ -272,7 +286,7 @@ if ($object->id > 0) { 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, 0, 0, '', 'onrightofpage'); + print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 1, 0, 0, '', 'search_status width100 onrightofpage'); 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 ''; + //mode kanban + if ($mode == 'kanban') { + if ($i == 0) { + print '
'; + print '
'; } - 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 .= ''; + // Output Kanban + $objectstatic->duration = $obj->duree; + $objectstatic->socid = $companystatic->getNomUrl(1, '', 44); + + + print $objectstatic->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print ''; + print ''; } - if ($warnornote) { - print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; } + if (!empty($arrayfields['f.ref']['checked'])) { + print "
'; - print $objectstatic->getNomUrl(1); - print '
'; - print $warnornote; + } else { + 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 '"; - // Other picto tool - 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 ''; + // 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 ''; + } - print "\n"; - if (!$i) { - $totalarray['nbfield']++; + // 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 dol_escape_htmltag($obj->ref_client); + print ''; - print $companystatic->getNomUrl(1, '', 44); - 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, ''); + if (!empty($arrayfields['pr.ref']['checked'])) { + 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 ''; - $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, ''); + if (!empty($arrayfields['f.description']['checked'])) { + 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').''; + 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 ''.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').''; - 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 '
0 ? '&userid='.$userid : '').'">'.$year.''.$val['nb'].''.round($val['nb_diff']).''.(isset($val['nb_diff']) ? round($val['nb_diff']): "0").'%'.price(price2num($val['total'], 'MT'), 1).''.round($val['total_diff']).''.(isset($val['total_diff']) ? round($val['total_diff']) : "0").'%'.price(price2num($val['avg'], 'MT'), 1).''.round($val['avg_diff']).''.(isset($val['avg_diff']) ? round($val['avg_diff']) : "0").'%
'; - print $form->editfieldkey("SupplierAccountancyCode", 'supplieraccountancycode', $object->code_compta_fournisseur, $object, $user->rights->societe->creer); + print $form->editfieldkey("SupplierAccountancyCode", 'supplieraccountancycode', $object->code_compta_fournisseur, $object, $user->hasRight('societe', 'creer')); print ''; - print $form->editfieldval("SupplierAccountancyCode", 'supplieraccountancycode', $object->code_compta_fournisseur, $object, $user->rights->societe->creer); + print $form->editfieldval("SupplierAccountancyCode", 'supplieraccountancycode', $object->code_compta_fournisseur, $object, $user->hasRight('societe', 'creer')); print '
'.$langs->trans('VATIntra').''; - print showValueWithClipboardCPButton(dol_escape_htmltag($object->tva_intra)); + print '
'; + //print $langs->trans('VATIntra').''; + $vattoshow = ($object->tva_intra ? showValueWithClipboardCPButton(dol_escape_htmltag($object->tva_intra)) : ''); + print $form->editfieldkey("VATIntra", 'tva_intra', $object->tva_intra, $object, $user->hasRight('societe', 'creer')); + print ''; + print $form->editfieldval("VATIntra", 'tva_intra', $vattoshow, $object, $user->hasRight('societe', 'creer'), 'string', $object->tva_intra, null, null, '', 1, '', 'id', 'auto', array('valuealreadyhtmlescaped'=>1)); print '
'; } print '
'; print $langs->trans('PaymentConditions'); print ''; - if (($action != 'editconditions') && $user->rights->societe->creer) { + if (($action != 'editconditions') && $user->hasRight('societe', 'creer')) { print 'id.'">'.img_edit($langs->trans('SetConditions'), 1).'
'; @@ -290,7 +304,7 @@ if ($object->id > 0) { print ''; } print '
'; print $langs->trans('PaymentMode'); print ''; - if (($action != 'editmode') && $user->rights->societe->creer) { + if (($action != 'editmode') && $user->hasRight('societe', 'creer')) { print 'id.'">'.img_edit($langs->trans('SetMode'), 1).'
'; @@ -309,7 +323,7 @@ if ($object->id > 0) { print ''; } print '
'; print $langs->trans('PaymentBankAccount'); print ''; - if (($action != 'editbankaccount') && $user->rights->societe->creer) { + if (($action != 'editbankaccount') && $user->hasRight('societe', 'creer')) { print 'id.'">'.img_edit($langs->trans('SetBankAccount'), 1).'
'; @@ -328,7 +342,7 @@ if ($object->id > 0) { print '
'; print $langs->trans("CustomerRelativeDiscountShort"); print ''; - if ($user->rights->societe->creer && !$user->socid > 0) { + if ($user->hasRight('societe', 'creer') && !$user->socid > 0) { print ''.img_edit($langs->trans("Modify")).''; } print '
'; @@ -341,7 +355,7 @@ if ($object->id > 0) { print ''; print $langs->trans("CustomerAbsoluteDiscountShort"); print ''; - if ($user->rights->societe->creer && !$user->socid > 0) { + if ($user->hasRight('societe', 'creer') && !$user->socid > 0) { print ''.img_edit($langs->trans("Modify")).''; } print ''; @@ -881,7 +895,7 @@ if ($object->id > 0) { } } - if ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer) { + if ($user->hasRight('fournisseur', 'commande', 'creer') || $user->hasRight('supplier_order', 'creer')) { $langs->load("orders"); if ($object->status == 1) { print dolGetButtonAction('', $langs->trans('AddSupplierOrderShort'), 'default', DOL_URL_ROOT.'/fourn/commande/card.php?action=create&token='.newToken().'&socid='.$object->id, ''); @@ -890,7 +904,7 @@ if ($object->id > 0) { } } - if ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer) { + if ($user->hasRight('fournisseur', 'facture', 'creer') || $user->hasRight('supplier_invoice', 'creer')) { if (!empty($orders2invoice) && $orders2invoice > 0) { if ($object->status == 1) { // Company is open @@ -903,7 +917,7 @@ if ($object->id > 0) { } } - if ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer) { + if ($user->hasRight('fournisseur', 'facture', 'creer') || $user->hasRight('supplier_invoice', 'creer')) { $langs->load("bills"); if ($object->status == 1) { print dolGetButtonAction('', $langs->trans('AddBill'), 'default', DOL_URL_ROOT.'/fourn/facture/card.php?action=create&socid='.$object->id, ''); diff --git a/htdocs/fourn/class/api_supplier_orders.class.php b/htdocs/fourn/class/api_supplier_orders.class.php index d55a398dbd6..1b7098d9cc5 100644 --- a/htdocs/fourn/class/api_supplier_orders.class.php +++ b/htdocs/fourn/class/api_supplier_orders.class.php @@ -288,6 +288,155 @@ class SupplierOrders extends DolibarrApi return false; } + /** + * Get contacts of given supplier order + * + * Return an array with contact informations + * + * @param int $id ID of supplier order + * @param string $source Source of the contact (internal, external, all). + * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER, SALESREPFOLL, ...) + * @return Object Object with cleaned properties + * + * @url GET {id}/contacts + * + * @throws RestException + */ + public function getContacts($id, $source, $type = '') + { + if (!DolibarrApiAccess::$user->rights->fournisseur->commande->lire) { + throw new RestException(401); + } + + $result = $this->order->fetch($id); + if (!$result) { + throw new RestException(404, 'Supplier order not found'); + } + + if (!DolibarrApi::_checkAccessToResource('fournisseur', $this->order->id, 'commande_fournisseur', 'commande')) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + $contacts = array(); + + if ($source == 'all' || $source == 'external') { + $tmpContacts = $this->order->liste_contact(-1, 'external', 0, $type); + $contacts = array_merge($contacts, $tmpContacts); + } + + if ($source == 'all' || $source == 'internal') { + $tmpContacts = $this->order->liste_contact(-1, 'internal', 0, $type); + $contacts = array_merge($contacts, $tmpContacts); + } + + return $this->_cleanObjectDatas($contacts); + } + + /** + * Add a contact type of given supplier order + * + * @param int $id Id of supplier order to update + * @param int $contactid Id of contact/user to add + * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER, SALESREPFOLL, ...) + * @param string $source Source of the contact (external, internal) + * @return array + * + * @url POST {id}/contact/{contactid}/{type}/{source} + * + * @throws RestException 401 + * @throws RestException 404 + */ + public function postContact($id, $contactid, $type, $source) + { + if (!DolibarrApiAccess::$user->rights->fournisseur->commande->creer) { + throw new RestException(401); + } + + $result = $this->order->fetch($id); + if (!$result) { + throw new RestException(404, 'Supplier order not found'); + } + + if (!DolibarrApi::_checkAccessToResource('fournisseur', $this->order->id, 'commande_fournisseur', 'commande')) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $result = $this->order->add_contact($contactid, $type, $source); + + if ($result < 0) { + throw new RestException(500, 'Error when added the contact'); + } + + if ($result == 0) { + throw new RestException(304, 'contact already added'); + } + + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Contact linked to the order' + ) + ); + } + + /** + * Unlink a contact type of given supplier order + * + * @param int $id Id of supplier order to update + * @param int $contactid Id of contact/user to add + * @param string $type Type of the contact (BILLING, SHIPPING, CUSTOMER, SALESREPFOLL, ...). + * @param string $source Source of the contact (internal, external). + * + * @url DELETE {id}/contact/{contactid}/{type}/{source} + * + * @return array + * + * @throws RestException 401 + * @throws RestException 404 + * @throws RestException 500 System error + */ + public function deleteContact($id, $contactid, $type, $source) + { + if (!DolibarrApiAccess::$user->rights->fournisseur->commande->creer) { + throw new RestException(401); + } + + $result = $this->order->fetch($id); + if (!$result) { + throw new RestException(404, 'Supplier order not found'); + } + + if (!DolibarrApi::_checkAccessToResource('fournisseur', $this->order->id, 'commande_fournisseur', 'commande')) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $contacts = $this->order->liste_contact(-1, $source, 0, $type); + + $contactToUnlink = 0; + foreach ($contacts as $contact) { + if ($contact['id'] == $contactid && $contact['code'] == $type) { + $contactToUnlink = $contact['rowid']; + break; + } + } + + if ($contactToUnlink == 0) { + throw new RestException(404, 'Linked contact not found'); + } + + $result = $this->order->delete_contact($contact['rowid']); + + if (!$result) { + throw new RestException(500, 'Error when deleted the contact'); + } + + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Contact unlinked from supplier order' + ) + ); + } + /** * Delete supplier order * diff --git a/htdocs/fourn/class/fournisseur.class.php b/htdocs/fourn/class/fournisseur.class.php index baed7051ef8..30dc5c17425 100644 --- a/htdocs/fourn/class/fournisseur.class.php +++ b/htdocs/fourn/class/fournisseur.class.php @@ -209,17 +209,17 @@ class Fournisseur extends Societe /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old third-party id - * @param int $dest_id New third-party id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'facture_fourn' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } } diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index aed73da97ba..94415f5f1f3 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -35,11 +35,12 @@ */ require_once DOL_DOCUMENT_ROOT.'/core/class/commonorder.class.php'; -require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; if (isModEnabled('productbatch')) { require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php'; } -require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; + /** * Class to manage predefined suppliers products @@ -253,7 +254,7 @@ class CommandeFournisseur extends CommonOrder 'multicurrency_total_tva' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountVAT', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>235), 'multicurrency_total_ttc' =>array('type'=>'double(24,8)', 'label'=>'MulticurrencyAmountTTC', 'enabled'=>'isModEnabled("multicurrency")', 'visible'=>-1, 'position'=>240), 'date_creation' =>array('type'=>'datetime', 'label'=>'Date creation', 'enabled'=>1, 'visible'=>-1, 'position'=>500), - 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>1, 'notnull'=>1, 'position'=>46), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'isModEnabled("societe")', '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), @@ -1593,7 +1594,7 @@ class CommandeFournisseur extends CommonOrder $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; $sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").","; - $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null").""; + $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null"); $sql .= " WHERE rowid=".((int) $this->id); @@ -1703,6 +1704,8 @@ class CommandeFournisseur extends CommonOrder $action = ''; $reshook = $hookmanager->executeHooks('createFrom', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { + $this->errors += $hookmanager->errors; + $this->error = $hookmanager->error; $error++; } } @@ -1820,10 +1823,10 @@ class CommandeFournisseur extends CommonOrder $label = ''; // deprecated if ($fk_product > 0) { - if (!empty($conf->global->SUPPLIER_ORDER_WITH_PREDEFINED_PRICES_ONLY)) { + if (!empty($conf->global->SUPPLIER_ORDER_WITH_PREDEFINED_PRICES_ONLY)) { // Not the common case // Check quantity is enough dol_syslog(get_class($this)."::addline we check supplier prices fk_product=".$fk_product." fk_prod_fourn_price=".$fk_prod_fourn_price." qty=".$qty." ref_supplier=".$ref_supplier); - $prod = new Product($this->db); + $prod = new ProductFournisseur($this->db); if ($prod->fetch($fk_product) > 0) { $product_type = $prod->type; $label = $prod->label; @@ -1882,7 +1885,7 @@ 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'); + setEventMessages($langs->trans('QtyRecalculatedWithPackaging'), null, 'mesgs'); } } } @@ -1895,6 +1898,7 @@ class CommandeFournisseur extends CommonOrder $localtaxes_type = getLocalTaxesFromRate($txtva, 0, $mysoc, $this->thirdparty); // Clean vat code + $reg = array(); $vat_src_code = ''; if (preg_match('/\((.*)\)/', $txtva, $reg)) { $vat_src_code = $reg[1]; @@ -2137,6 +2141,16 @@ class CommandeFournisseur extends CommonOrder return 0; } + // check if not yet received + $dispatchedLines = $this->getDispachedLines(); + foreach ($dispatchedLines as $dispatchLine) { + if ($dispatchLine['orderlineid'] == $idline) { + $this->error = "LineAlreadyDispatched"; + $this->errors[] = $this->error; + return -3; + } + } + if ($line->delete($notrigger) > 0) { $this->update_price(1); return 1; @@ -2325,7 +2339,7 @@ class CommandeFournisseur extends CommonOrder // List of already dispatched lines $sql = "SELECT p.ref, p.label,"; $sql .= " e.rowid as warehouse_id, e.ref as entrepot,"; - $sql .= " cfd.rowid as dispatchedlineid, cfd.fk_product, cfd.qty, cfd.eatby, cfd.sellby, cfd.batch, cfd.comment, cfd.status"; + $sql .= " cfd.rowid as dispatchedlineid, cfd.fk_product, cfd.qty, cfd.eatby, cfd.sellby, cfd.batch, cfd.comment, cfd.status, cfd.fk_commandefourndet"; $sql .= " FROM ".MAIN_DB_PREFIX."product as p,"; $sql .= " ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as cfd"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."entrepot as e ON cfd.fk_entrepot = e.rowid"; @@ -2349,6 +2363,7 @@ class CommandeFournisseur extends CommonOrder 'productid' => $objp->fk_product, 'warehouseid' => $objp->warehouse_id, 'qty' => $objp->qty, + 'orderlineid' => $objp->fk_commandefourndet ); } @@ -3263,18 +3278,18 @@ class CommandeFournisseur extends CommonOrder /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'commande_fournisseur' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -3542,6 +3557,39 @@ class CommandeFournisseur extends CommonOrder return -1; } } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + //$return .= ''; // Can be image + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).''; + if (property_exists($this, 'socid') || property_exists($this, 'total_tva')) { + $return .='
'.$this->socid.''; + } + if (property_exists($this, 'billed')) { + $return .= '
'.$langs->trans("Billed").' : '.yn($this->billed).''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } @@ -3899,8 +3947,8 @@ class CommandeFournisseurLigne extends CommonOrderLine $sql .= ", vat_src_code = '".(empty($this->vat_src_code) ? '' : $this->vat_src_code)."'"; $sql .= ", tva_tx='".price2num($this->tva_tx)."'"; - $sql .= ", localtax1_tx='".price2num($this->total_localtax1)."'"; - $sql .= ", localtax2_tx='".price2num($this->total_localtax2)."'"; + $sql .= ", localtax1_tx='".price2num($this->localtax1_tx)."'"; + $sql .= ", localtax2_tx='".price2num($this->localtax2_tx)."'"; $sql .= ", localtax1_type='".$this->db->escape($this->localtax1_type)."'"; $sql .= ", localtax2_type='".$this->db->escape($this->localtax2_type)."'"; $sql .= ", qty='".price2num($this->qty)."'"; @@ -3917,10 +3965,10 @@ class CommandeFournisseurLigne extends CommonOrderLine $sql .= ($this->fk_unit ? ", fk_unit='".$this->db->escape($this->fk_unit)."'" : ", fk_unit=null"); // Multicurrency - $sql .= ", multicurrency_subprice=".price2num($this->multicurrency_subprice).""; - $sql .= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; - $sql .= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; - $sql .= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; + $sql .= ", multicurrency_subprice=".price2num($this->multicurrency_subprice); + $sql .= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht); + $sql .= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva); + $sql .= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc); $sql .= " WHERE rowid = ".((int) $this->id); diff --git a/htdocs/fourn/class/fournisseur.commande.dispatch.class.php b/htdocs/fourn/class/fournisseur.commande.dispatch.class.php index 7c8e4acb25f..02fbff5b363 100644 --- a/htdocs/fourn/class/fournisseur.commande.dispatch.class.php +++ b/htdocs/fourn/class/fournisseur.commande.dispatch.class.php @@ -218,7 +218,7 @@ class CommandeFournisseurDispatch extends CommonObjectLine $sql .= " ".(!isset($this->eatby) || dol_strlen($this->eatby) == 0 ? 'NULL' : "'".$this->db->idate($this->eatby)."'").","; $sql .= " ".(!isset($this->sellby) || dol_strlen($this->sellby) == 0 ? 'NULL' : "'".$this->db->idate($this->sellby)."'").","; $sql .= " ".(!isset($this->fk_reception) ? 'NULL' : "'".$this->db->escape($this->fk_reception)."'").","; - $sql .= " ".(!isset($this->cost_price) ? '0' : "'".$this->db->escape($this->cost_price)."'").""; + $sql .= " ".(!isset($this->cost_price) ? '0' : "'".$this->db->escape($this->cost_price)."'"); $sql .= ")"; $this->db->begin(); @@ -396,7 +396,7 @@ class CommandeFournisseurDispatch extends CommonObjectLine $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null').","; $sql .= " batch=".(isset($this->batch) ? "'".$this->db->escape($this->batch)."'" : "null").","; $sql .= " eatby=".(dol_strlen($this->eatby) != 0 ? "'".$this->db->idate($this->eatby)."'" : 'null').","; - $sql .= " sellby=".(dol_strlen($this->sellby) != 0 ? "'".$this->db->idate($this->sellby)."'" : 'null').""; + $sql .= " sellby=".(dol_strlen($this->sellby) != 0 ? "'".$this->db->idate($this->sellby)."'" : 'null'); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); diff --git a/htdocs/fourn/class/fournisseur.facture-rec.class.php b/htdocs/fourn/class/fournisseur.facture-rec.class.php index b2b30ebe281..8964213f83d 100644 --- a/htdocs/fourn/class/fournisseur.facture-rec.class.php +++ b/htdocs/fourn/class/fournisseur.facture-rec.class.php @@ -181,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'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>30), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'isModEnabled("societe")', '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), @@ -1331,7 +1331,7 @@ class FactureFournisseurRec extends CommonInvoice // We refresh the object in order to have all necessary data (like date_lim_reglement) $new_fac_fourn->fetch($new_fac_fourn->id); $result = $new_fac_fourn->generateDocument($facturerec->model_pdf, $langs); - if ($result <= 0) { + if ($result < 0) { $this->errors = $new_fac_fourn->errors; $this->error = $new_fac_fourn->error; $error++; @@ -1737,18 +1737,18 @@ class FactureFournisseurRec extends CommonInvoice /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'facture_rec' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -1771,7 +1771,7 @@ class FactureFournisseurRec extends CommonInvoice } $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element; - $sql .= " SET frequency = ".($frequency ? ((int) $this->db->escape($frequency)) : "NULL"); + $sql .= " SET frequency = ".($frequency ? ((int) $frequency) : "NULL"); if (!empty($unit)) { $sql .= ", unit_frequency = '".$this->db->escape($unit)."'"; } diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 2f607ad75cf..2c45a8d67d5 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -38,12 +38,10 @@ include_once DOL_DOCUMENT_ROOT.'/core/class/commoninvoice.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/commonobjectline.class.php'; require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; -require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; -} -if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; } @@ -277,7 +275,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'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>40), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'isModEnabled("societe")', '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), @@ -592,7 +590,7 @@ class FactureFournisseur extends CommonInvoice $sql .= ", ".(int) $this->fk_multicurrency; $sql .= ", '".$this->db->escape($this->multicurrency_code)."'"; $sql .= ", ".(double) $this->multicurrency_tx; - $sql .= ", ".(isset($this->fk_facture_source) ? $this->fk_facture_source : "NULL"); + $sql .= ", ".($this->fk_facture_source ? ((int) $this->fk_facture_source) : "null"); $sql .= ", ".(isset($this->fk_fac_rec_source) ? $this->fk_fac_rec_source : "NULL"); $sql .= ")"; @@ -854,15 +852,18 @@ class FactureFournisseur extends CommonInvoice } /** - * Load object in memory from database + * Load object in memory from database * - * @param int $id Id supplier invoice - * @param string $ref Ref supplier invoice - * @return int <0 if KO, >0 if OK, 0 if not found + * @param int $id Id supplier invoice + * @param string $ref Ref supplier invoice + * @param string $ref_ext External reference of invoice + * @return int <0 if KO, >0 if OK, 0 if not found */ - public function fetch($id = '', $ref = '') + public function fetch($id = '', $ref = '', $ref_ext = '') { - global $langs; + if (empty($id) && empty($ref) && empty($ref_ext)) { + return -1; + } $sql = "SELECT"; $sql .= " t.rowid,"; @@ -913,10 +914,15 @@ class FactureFournisseur extends CommonInvoice $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as p ON t.fk_mode_reglement = p.id"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON t.fk_incoterms = i.rowid'; if ($id) { - $sql .= " WHERE t.rowid=".((int) $id); - } - if ($ref) { - $sql .= " WHERE t.ref='".$this->db->escape($ref)."' AND t.entity IN (".getEntity('supplier_invoice').")"; + $sql .= " WHERE t.rowid = ".((int) $id); + } else { + $sql .= ' WHERE t.entity IN ('.getEntity('supplier_invoice').')'; // Don't use entity if you use rowid + if ($ref) { + $sql .= " AND t.ref = '".$this->db->escape($ref)."'"; + } + if ($ref_ext) { + $sql .= " AND t.ref_ext = '".$this->db->escape($ref_ext)."'"; + } } dol_syslog(get_class($this)."::fetch", LOG_DEBUG); @@ -1234,35 +1240,34 @@ class FactureFournisseur extends CommonInvoice $sql .= " ref=".(isset($this->ref) ? "'".$this->db->escape($this->ref)."'" : "null").","; $sql .= " ref_supplier=".(isset($this->ref_supplier) ? "'".$this->db->escape($this->ref_supplier)."'" : "null").","; $sql .= " ref_ext=".(isset($this->ref_ext) ? "'".$this->db->escape($this->ref_ext)."'" : "null").","; - $sql .= " entity=".(isset($this->entity) ? $this->entity : "null").","; - $sql .= " type=".(isset($this->type) ? $this->type : "null").","; - $sql .= " fk_soc=".(isset($this->fk_soc) ? $this->fk_soc : "null").","; + $sql .= " entity=".(isset($this->entity) ? ((int) $this->entity) : "null").","; + $sql .= " type=".(isset($this->type) ? ((int) $this->type) : "null").","; + $sql .= " fk_soc=".(isset($this->fk_soc) ? ((int) $this->fk_soc) : "null").","; $sql .= " datec=".(dol_strlen($this->datec) != 0 ? "'".$this->db->idate($this->datec)."'" : 'null').","; $sql .= " datef=".(dol_strlen($this->date) != 0 ? "'".$this->db->idate($this->date)."'" : 'null').","; if (dol_strlen($this->tms) != 0) { $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null').","; } $sql .= " libelle=".(isset($this->label) ? "'".$this->db->escape($this->label)."'" : "null").","; - $sql .= " paye=".(isset($this->paye) ? $this->paye : "null").","; + $sql .= " paye=".(isset($this->paye) ? ((int) $this->paye) : "null").","; $sql .= " close_code=".(isset($this->close_code) ? "'".$this->db->escape($this->close_code)."'" : "null").","; $sql .= " close_note=".(isset($this->close_note) ? "'".$this->db->escape($this->close_note)."'" : "null").","; - //$sql .= " tva=".(isset($this->tva) ? $this->tva : "null").","; - $sql .= " localtax1=".(isset($this->localtax1) ? $this->localtax1 : "null").","; - $sql .= " localtax2=".(isset($this->localtax2) ? $this->localtax2 : "null").","; - $sql .= " total_ht=".(isset($this->total_ht) ? $this->total_ht : "null").","; - $sql .= " total_tva=".(isset($this->total_tva) ? $this->total_tva : "null").","; - $sql .= " total_ttc=".(isset($this->total_ttc) ? $this->total_ttc : "null").","; - $sql .= " fk_statut=".(isset($this->status) ? $this->status : (isset($this->statut) ? $this->statut : "null")).","; - $sql .= " fk_user_author=".(isset($this->author) ? $this->author : "null").","; - $sql .= " fk_user_valid=".(isset($this->fk_user_valid) ? $this->fk_user_valid : "null").","; - $sql .= " fk_facture_source=".(isset($this->fk_facture_source) ? $this->fk_facture_source : "null").","; - $sql .= " fk_projet=".(isset($this->fk_project) ? $this->fk_project : "null").","; - $sql .= " fk_cond_reglement=".(isset($this->cond_reglement_id) ? $this->cond_reglement_id : "null").","; + $sql .= " localtax1=".(isset($this->localtax1) ? ((float) $this->localtax1) : "null").","; + $sql .= " localtax2=".(isset($this->localtax2) ? ((float) $this->localtax2) : "null").","; + $sql .= " total_ht=".(isset($this->total_ht) ? ((float) $this->total_ht) : "null").","; + $sql .= " total_tva=".(isset($this->total_tva) ? ((float) $this->total_tva) : "null").","; + $sql .= " total_ttc=".(isset($this->total_ttc) ? ((float) $this->total_ttc) : "null").","; + $sql .= " fk_statut=".(isset($this->status) ? ((int) $this->status) : (isset($this->statut) ? ((int) $this->statut) : "null")).","; + $sql .= " fk_user_author=".(isset($this->author) ? ((int) $this->author) : "null").","; + $sql .= " fk_user_valid=".(isset($this->fk_user_valid) ? ((int) $this->fk_user_valid) : "null").","; + $sql .= " fk_facture_source=".($this->fk_facture_source ? ((int) $this->fk_facture_source) : "null").","; + $sql .= " fk_projet=".(isset($this->fk_project) ? ((int) $this->fk_project) : "null").","; + $sql .= " fk_cond_reglement=".(isset($this->cond_reglement_id) ? ((int) $this->cond_reglement_id) : "null").","; $sql .= " date_lim_reglement=".(dol_strlen($this->date_echeance) != 0 ? "'".$this->db->idate($this->date_echeance)."'" : 'null').","; $sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").","; $sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; $sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").","; - $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null").""; + $sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null"); $sql .= " WHERE rowid=".((int) $this->id); $this->db->begin(); @@ -1386,7 +1391,7 @@ class FactureFournisseur extends CommonInvoice $result = $this->update_price(1); if ($result > 0) { // Create link between discount and invoice line - $result = $remise->link_to_invoice($lineid, 0, 'supplier'); + $result = $remise->link_to_invoice($lineid, 0); if ($result < 0) { $this->error = $remise->error; $this->db->rollback(); @@ -2074,7 +2079,7 @@ class FactureFournisseur extends CommonInvoice if (!empty($conf->global->SUPPLIER_INVOICE_WITH_PREDEFINED_PRICES_ONLY)) { // Check quantity is enough dol_syslog(get_class($this)."::addline we check supplier prices fk_product=".$fk_product." qty=".$qty." ref_supplier=".$ref_supplier); - $prod = new Product($this->db); + $prod = new ProductFournisseur($this->db); if ($prod->fetch($fk_product) > 0) { $product_type = $prod->type; $label = $prod->label; @@ -3157,18 +3162,18 @@ class FactureFournisseur extends CommonInvoice /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'facture_fourn' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** @@ -3228,6 +3233,44 @@ class FactureFournisseur extends CommonInvoice return $isUsed; } + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + if (property_exists($this, 'socid')) { + $return .= ' | '.$this->socid.''; + } + if (property_exists($this, 'date_echeance') && property_exists($this, 'date')) { + if (!empty($this->date_echeance)) { + $return .= '
'.dol_print_date($this->date_echeance).''; + } else { + $return .= '
'.dol_print_date($this->date).''; + } + } + if (property_exists($this, 'total_ht')) { + $return .= '
'.$langs->trans("AmountHT").' : '.price($this->total_ht).''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } @@ -3695,10 +3738,10 @@ class SupplierInvoiceLine extends CommonObjectLine } // Multicurrency - $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice).""; - $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; - $sql .= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; - $sql .= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; + $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice); + $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht); + $sql .= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva); + $sql .= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc); $sql .= " WHERE rowid = ".((int) $this->id); diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index ec923f91118..a01c8ec00d3 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -31,7 +31,6 @@ 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'; @@ -638,7 +637,8 @@ class ProductFournisseur extends Product } $this->packaging = $obj->packaging; - if (empty($ignore_expression) && !empty($this->fk_supplier_price_expression)) { + if (isModEnabled('dynamicprices') && empty($ignore_expression) && !empty($this->fk_supplier_price_expression)) { + require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php'; $priceparser = new PriceParser($this->db); $price_result = $priceparser->parseProductSupplier($this); if ($price_result >= 0) { @@ -748,6 +748,7 @@ class ProductFournisseur extends Product } if (isModEnabled('dynamicprices') && !empty($prodfourn->fk_supplier_price_expression)) { + require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php'; $priceparser = new PriceParser($this->db); $price_result = $priceparser->parseProductSupplier($prodfourn); if ($price_result >= 0) { @@ -860,6 +861,8 @@ class ProductFournisseur extends Product $prod_supplier->fourn_qty = $record["quantity"]; $prod_supplier->fourn_tva_tx = $record["tva_tx"]; $prod_supplier->fk_supplier_price_expression = $record["fk_supplier_price_expression"]; + + require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php'; $priceparser = new PriceParser($this->db); $price_result = $priceparser->parseProductSupplier($prod_supplier); if ($price_result >= 0) { @@ -1000,35 +1003,35 @@ class ProductFournisseur extends Product /** * Function used to replace a thirdparty id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + public static function replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'product_fournisseur_price' ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($dbs, $origin_id, $dest_id, $tables); } /** * Function used to replace a product id with another one. * - * @param DoliDB $db Database handler - * @param int $origin_id Old product id - * @param int $dest_id New product id - * @return bool + * @param DoliDB $dbs Database handler, because function is static we name it $dbs not $db to avoid breaking coding test + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool */ - public static function replaceProduct(DoliDB $db, $origin_id, $dest_id) + public static function replaceProduct(DoliDB $dbs, $origin_id, $dest_id) { $tables = array( 'product_fournisseur_price' ); - return CommonObject::commonReplaceProduct($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceProduct($dbs, $origin_id, $dest_id, $tables); } /** diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 1df6c37736b..48e74d223e6 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -76,7 +76,6 @@ $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'purchaseordercard'; // To manage different context of search - $backtopage = GETPOST('backtopage', 'alpha'); $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); @@ -125,12 +124,7 @@ if ($id > 0 || !empty($ref)) { dol_print_error($db, $object->error); } } elseif (!empty($socid) && $socid > 0) { - $fourn = new Fournisseur($db); - $ret = $fourn->fetch($socid); - if ($ret < 0) { - dol_print_error($db, $object->error); - } - $object->socid = $fourn->id; + $object->socid = $socid; $ret = $object->fetch_thirdparty(); if ($ret < 0) { dol_print_error($db, $object->error); @@ -419,7 +413,7 @@ if (empty($reshook)) { $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); + $result = $object->updateline($line->id, $line->desc, $line->subprice, $line->qty, $line->remise_percent, $vat_rate, $localtax1_rate, $localtax2_rate, 'HT', $line->info_bits, $line->product_type, 0, $line->date_start, $line->date_end, $line->array_options, $line->fk_unit, $line->multicurrency_subprice, $line->ref_supplier); } } elseif ($action == 'addline' && $usercancreate) { $db->begin(); @@ -1391,6 +1385,7 @@ if (empty($reshook)) { $reshook = $hookmanager->executeHooks('createFrom', $parameters, $object, $action); // Note that $action and $object may have been if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); $error++; } } else { @@ -1701,16 +1696,16 @@ if ($action == 'create') { print img_picto('', 'company').$form->select_company((empty($socid) ? '' : $socid), 'socid', '(s.fournisseur=1 AND s.status=1)', 'SelectThirdParty', 1, 0, null, 0, 'minwidth175 maxwidth500 widthcentpercentminusxx'); // reload page to retrieve customer informations if (!empty($conf->global->RELOAD_PAGE_ON_SUPPLIER_CHANGE)) { - print ''; + '; } print ' '; } @@ -1874,19 +1869,13 @@ if ($action == 'create') { print "\n"; } elseif (!empty($object->id)) { $result = $object->fetch($id, $ref); + $object->fetch_thirdparty(); - $societe = new Fournisseur($db); - $result = $societe->fetch($object->socid); - if ($result < 0) { - dol_print_error($db); - } + $societe = $object->thirdparty; $author = new User($db); $author->fetch($object->user_author_id); - $res = $object->fetch_optionals(); - - $head = ordersupplier_prepare_head($object); $title = $langs->trans("SupplierOrder"); @@ -2061,7 +2050,7 @@ if ($action == 'create') { if ($action != 'classify' && $caneditproject) { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -2415,7 +2404,7 @@ if ($action == 'create') { // Show object lines if (!empty($object->lines)) { - $ret = $object->printObjectLines($action, $societe, $mysoc, $lineid, 1); + $object->printObjectLines($action, $object->thirdparty, $mysoc, $lineid, 1); } $num = count($object->lines); @@ -2665,7 +2654,8 @@ if ($action == 'create') { $formorder->selectInputMethod(GETPOST('methodecommande'), "methodecommande", 1); print ''; - print ''.$langs->trans("Comment").''; + print ''.$langs->trans("Comment").''; + print ''; print ''; print '     '; @@ -2731,7 +2721,7 @@ if ($action == 'create') { print $form->selectarray("type", $liv); print ''; - print ''.$langs->trans("Comment").''; + print ''.$langs->trans("Comment").''; print ''; print ''; print '     '; @@ -2795,13 +2785,12 @@ if ($action == 'create') { print "
".$langs->trans("ErrorOccurredReviseAndRetry")."
"; print ''; } else { - $textinput_size = "50"; // Webservice url print ''.$langs->trans("WebServiceURL").''.dol_print_url($ws_url).''; //Remote User - print ''.$langs->trans("User").''; + print ''.$langs->trans("User").''; //Remote Password - print ''.$langs->trans("Password").''; + print ''.$langs->trans("Password").''; //Submit button print ''; print ''; diff --git a/htdocs/fourn/commande/contact.php b/htdocs/fourn/commande/contact.php index 3ca1eca77bf..1dfc47e9451 100644 --- a/htdocs/fourn/commande/contact.php +++ b/htdocs/fourn/commande/contact.php @@ -148,7 +148,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify' && $caneditproject) { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index c639e622337..f5a983ac5bb 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -7,7 +7,7 @@ * Copyright (C) 2014 Cedric Gross * Copyright (C) 2016 Florian Henry * Copyright (C) 2017-2022 Ferran Marcet - * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018-2022 Frédéric France * Copyright (C) 2019-2020 Christophe Battarel * * This program is free software; you can redistribute it and/or modify @@ -68,7 +68,7 @@ $hookmanager->initHooks(array('ordersupplierdispatch')); // Recuperation de l'id de projet $projectid = 0; -if ($_GET["projectid"]) { +if (GETPOSTISSET("projectid")) { $projectid = GETPOST("projectid", 'int'); } @@ -554,7 +554,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify' && $caneditproject) { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -782,7 +782,8 @@ if ($id > 0 || !empty($ref)) { if (!$objp->fk_product > 0) { $nbfreeproduct++; } else { - $remaintodispatch = price2num($objp->qty - ((float) $products_dispatched[$objp->rowid]), 5); // Calculation of dispatched + $alreadydispatched = isset($products_dispatched[$objp->rowid])?$products_dispatched[$objp->rowid]:0; + $remaintodispatch = price2num($objp->qty - ((float) $alreadydispatched), 5); // Calculation of dispatched if ($remaintodispatch < 0 && empty($conf->global->SUPPLIER_ORDER_ALLOW_NEGATIVE_QTY_FOR_SUPPLIER_ORDER_RETURN)) { $remaintodispatch = 0; } @@ -799,7 +800,7 @@ if ($id > 0 || !empty($ref)) { print ''."\n"; // hidden fields for js function print ''; - print ''; + print ''; print ''; if (empty($conf->cache['product'][$objp->fk_product])) { @@ -860,7 +861,7 @@ if ($id > 0 || !empty($ref)) { print ''.$objp->qty.''; // Already dispatched - print ''.$products_dispatched[$objp->rowid].''; + print ''.$alreadydispatched.''; if (isModEnabled('productbatch') && $objp->tobatch > 0) { $type = 'batch'; @@ -873,10 +874,11 @@ if ($id > 0 || !empty($ref)) { // Enable hooks to append additional columns $parameters = array( - 'is_information_row' => true, // allows hook to distinguish between the - // rows with information and the rows with - // dispatch form input - 'objp' => $objp + // allows hook to distinguish between the rows with information and the rows with dispatch form input + 'is_information_row' => true, + 'i' => $i, + 'suffix' => $suffix, + 'objp' => $objp, ); $reshook = $hookmanager->executeHooks( 'printFieldListValue', @@ -935,10 +937,11 @@ if ($id > 0 || !empty($ref)) { // Enable hooks to append additional columns $parameters = array( - 'is_information_row' => true, // allows hook to distinguish between the - // rows with information and the rows with - // dispatch form input - 'objp' => $objp + // allows hook to distinguish between the rows with information and the rows with dispatch form input + 'is_information_row' => true, + 'i' => $i, + 'suffix' => $suffix, + 'objp' => $objp, ); $reshook = $hookmanager->executeHooks( 'printFieldListValue', @@ -1016,7 +1019,10 @@ if ($id > 0 || !empty($ref)) { // Enable hooks to append additional columns $parameters = array( - 'is_information_row' => false // this is a dispatch form row + 'is_information_row' => false, // this is a dispatch form row + 'i' => $i, + 'suffix' => $suffix, + 'objp' => $objp, ); $reshook = $hookmanager->executeHooks( 'printFieldListValue', diff --git a/htdocs/fourn/commande/document.php b/htdocs/fourn/commande/document.php index b3dfb8b9ece..d11c08ec91d 100644 --- a/htdocs/fourn/commande/document.php +++ b/htdocs/fourn/commande/document.php @@ -140,7 +140,7 @@ if ($object->id > 0) { if ($action != 'classify' && $caneditproject) { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/fourn/commande/info.php b/htdocs/fourn/commande/info.php index fc3918a32f3..654845f59aa 100644 --- a/htdocs/fourn/commande/info.php +++ b/htdocs/fourn/commande/info.php @@ -153,7 +153,7 @@ if (isModEnabled('project')) { if ($action != 'classify' && $caneditproject) { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -196,7 +196,7 @@ if ($permok) { print '
'; if (isModEnabled('agenda')) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { print ''.$langs->trans("AddAction").''; } else { print ''.$langs->trans("AddAction").''; diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 89df5cac1d2..394660f3866 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -56,6 +56,7 @@ $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'supplierorderlist'; +$mode = GETPOST('mode', 'alpha'); // Search Criteria $search_date_order_startday = GETPOST('search_date_order_startday', 'int'); @@ -576,6 +577,9 @@ if (empty($reshook)) { // Make a redirect to avoid to bill twice if we make a refresh or back $param = ''; + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -751,6 +755,9 @@ if ($search_billed > 0) { //$help_url="EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes"; $help_url = ''; +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $sql = 'SELECT'; if ($sall) { $sql = 'SELECT DISTINCT'; @@ -814,11 +821,15 @@ if ($search_refsupp) { if ($sall) { $sql .= natural_search(array_keys($fieldstosearchall), $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 (empty($arrayfields['s.name_alias']['checked']) && $search_company) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_company); +} else { + if ($search_company) { + $sql .= natural_search('s.nom', $search_company); + } + if ($search_company_alias) { + $sql .= natural_search('s.name_alias', $search_company_alias); + } } if ($search_request_author) { $sql .= natural_search(array('u.lastname', 'u.firstname', 'u.login'), $search_request_author); @@ -872,12 +883,6 @@ if ($search_country) { if ($search_type_thirdparty != '' && $search_type_thirdparty > 0) { $sql .= " AND s.fk_typent IN (".$db->sanitize($db->escape($search_type_thirdparty)).')'; } -if ($search_company) { - $sql .= natural_search('s.nom', $search_company); -} -if ($search_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); } @@ -997,6 +1002,9 @@ if ($resql) { llxHeader('', $title, $help_url); $param = ''; + if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); + } if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -1183,7 +1191,10 @@ 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, '', $permissiontoadd); + $newcardbutton = ''; + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('NewSupplierOrderShort'), '', 'fa fa-plus-circle', $url, '', $permissiontoadd); // Lines of title fields print '
'; @@ -1197,17 +1208,18 @@ if ($resql) { print ''; print ''; print ''; + print ''; print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'supplier_order', 0, $newcardbutton, '', $limit, 0, 0, 1); $topicmail = "SendOrderRef"; $modelmail = "order_supplier_send"; - $objecttmp = new CommandeFournisseur($db); + $objecttmp = new CommandeFournisseur($db); // in case $object is not the good object $trackid = 'sord'.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; if ($massaction == 'prevalidate') { - print $form->formconfirm($_SERVER["PHP_SELF"].$fieldstosearchall, $langs->trans("ConfirmMassValidation"), $langs->trans("ConfirmMassValidationQuestion"), "validate", null, '', 0, 200, 500, 1); + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassValidation"), $langs->trans("ConfirmMassValidationQuestion"), "validate", null, '', 0, 200, 500, 1); } if ($massaction == 'createbills') { @@ -1468,8 +1480,8 @@ if ($resql) { } // Status billed if (!empty($arrayfields['cf.billed']['checked'])) { - print ''; - print $form->selectyesno('search_billed', $search_billed, 1, false, 1, 1, 'maxwidth100 onrightofpage'); + print ''; + print $form->selectyesno('search_billed', $search_billed, 1, false, 1, 1, 'search_status width100 onrightofpage'); print ''; } // Date valid @@ -1659,344 +1671,365 @@ if ($resql) { $objectstatic->note_private = $obj->note_private; $objectstatic->statut = $obj->fk_statut; - print ''; - // Action column - if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; - } - print ''; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + print '
'; } - print ''; - } - // Ref - if (!empty($arrayfields['cf.ref']['checked'])) { - print ''; - // Picto + Ref - print $objectstatic->getNomUrl(1, '', 0, -1, 1); - // Other picto tool - $filename = dol_sanitizeFileName($obj->ref); - $filedir = $conf->fournisseur->commande->dir_output.'/'.dol_sanitizeFileName($obj->ref); - print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); - - print ''."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Ref Supplier - if (!empty($arrayfields['cf.ref_supplier']['checked'])) { - print ''.dol_escape_htmltag($obj->ref_supplier).''."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Project - if (!empty($arrayfields['cf.fk_projet']['checked'])) { - $projectstatic->id = $obj->project_id; - $projectstatic->ref = $obj->project_ref; - $projectstatic->title = $obj->project_title; - print ''; - if ($obj->project_id > 0) { - print $projectstatic->getNomUrl(1); - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Author - $userstatic->id = $obj->fk_user_author; - $userstatic->lastname = $obj->lastname; - $userstatic->firstname = $obj->firstname; - $userstatic->login = $obj->login; - $userstatic->photo = $obj->photo; - $userstatic->email = $obj->user_email; - $userstatic->statut = $obj->user_status; - if (!empty($arrayfields['u.login']['checked'])) { - print ''; - if ($userstatic->id) { - print $userstatic->getNomUrl(1); - } - print ""; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Thirdparty - if (!empty($arrayfields['cf.fk_soc']['checked'])) { - print ''; $thirdpartytmp->id = $obj->socid; $thirdpartytmp->name = $obj->name; $thirdpartytmp->email = $obj->email; $thirdpartytmp->name_alias = $obj->alias; $thirdpartytmp->client = $obj->client; $thirdpartytmp->fournisseur = $obj->fournisseur; - print $thirdpartytmp->getNomUrl(1, 'supplier', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); - print ''."\n"; - if (!$i) { - $totalarray['nbfield']++; + $objectstatic->socid = $thirdpartytmp->getNomUrl('supplier', 0, 0, -1); + // Output Kanban + print $objectstatic->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print '
'; + print ''; } - } - //alias - if (!empty($arrayfields['s.name_alias']['checked'])) { - print ''; - print $obj->alias; - print ''."\n"; - if (!$i) { - $totalarray['nbfield']++; + } else { + print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; } - } - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - print $obj->town; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - print $obj->zip; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print "".$obj->state_name."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - $tmparray = getCountry($obj->fk_pays, 'all'); - print $tmparray['label']; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type ent - if (!empty($arrayfields['typent.code']['checked'])) { - print ''; - if (empty($typenArray)) { - $typenArray = $formcompany->typent_array(1); - } - print $typenArray[$obj->typent_code]; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } + // Ref + if (!empty($arrayfields['cf.ref']['checked'])) { + print ''; - // Order date - if (!empty($arrayfields['cf.date_commande']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_commande), 'day'); - if ($objectstatic->statut != $objectstatic::STATUS_ORDERSENT && $objectstatic->statut != $objectstatic::STATUS_RECEIVED_PARTIALLY) { - if ($objectstatic->hasDelay()) { - print ' '.img_picto($langs->trans("Late").' : '.$objectstatic->showDelay(), "warning"); + // Picto + Ref + print $objectstatic->getNomUrl(1, '', 0, -1, 1); + // Other picto tool + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->fournisseur->commande->dir_output.'/'.dol_sanitizeFileName($obj->ref); + print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); + + print ''."\n"; + if (!$i) { + $totalarray['nbfield']++; } } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Plannned date of delivery - if (!empty($arrayfields['cf.date_livraison']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_livraison), 'day'); - if ($objectstatic->statut == $objectstatic::STATUS_ORDERSENT || $objectstatic->statut == $objectstatic::STATUS_RECEIVED_PARTIALLY) { - if ($objectstatic->hasDelay()) { - print ' '.img_picto($langs->trans("Late").' : '.$objectstatic->showDelay(), "warning"); + // Ref Supplier + if (!empty($arrayfields['cf.ref_supplier']['checked'])) { + print ''.dol_escape_htmltag($obj->ref_supplier).''."\n"; + if (!$i) { + $totalarray['nbfield']++; } } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount HT - if (!empty($arrayfields['cf.total_ht']['checked'])) { - print ''.price($obj->total_ht)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'cf.total_ht'; - } - $totalarray['val']['cf.total_ht'] += $obj->total_ht; - } - // Amount VAT - if (!empty($arrayfields['cf.total_tva']['checked'])) { - print ''.price($obj->total_tva)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'cf.total_tva'; - } - $totalarray['val']['cf.total_tva'] += $obj->total_tva; - } - // Amount TTC - if (!empty($arrayfields['cf.total_ttc']['checked'])) { - print ''.price($obj->total_ttc)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'cf.total_ttc'; - } - $totalarray['val']['cf.total_ttc'] += $obj->total_ttc; - } - - // Currency - if (!empty($arrayfields['cf.multicurrency_code']['checked'])) { - print ''.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Currency rate - if (!empty($arrayfields['cf.multicurrency_tx']['checked'])) { - print ''; - $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount HT - if (!empty($arrayfields['cf.multicurrency_total_ht']['checked'])) { - print ''.price($obj->multicurrency_total_ht)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount VAT - if (!empty($arrayfields['cf.multicurrency_total_tva']['checked'])) { - print ''.price($obj->multicurrency_total_tva)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount TTC - if (!empty($arrayfields['cf.multicurrency_total_ttc']['checked'])) { - print ''.price($obj->multicurrency_total_ttc)."\n"; - 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['cf.date_creation']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date modification - if (!empty($arrayfields['cf.tms']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['cf.fk_statut']['checked'])) { - print ''.$objectstatic->LibStatut($obj->fk_statut, 5, $obj->billed).''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Billed - if (!empty($arrayfields['cf.billed']['checked'])) { - print ''.yn($obj->billed).''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // valid date - if (!empty($arrayfields['cf.date_valid']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_valid), 'day'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // approve date - if (!empty($arrayfields['cf.date_approve']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_approve), 'day'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Note public - if (!empty($arrayfields['cf.note_public']['checked'])) { - print ''; - print dol_string_nohtmltag($obj->note_public); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Note private - if (!empty($arrayfields['cf.note_private']['checked'])) { - print ''; - print dol_string_nohtmltag($obj->note_private); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Action column - if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + // Project + if (!empty($arrayfields['cf.fk_projet']['checked'])) { + $projectstatic->id = $obj->project_id; + $projectstatic->ref = $obj->project_ref; + $projectstatic->title = $obj->project_title; + print ''; + if ($obj->project_id > 0) { + print $projectstatic->getNomUrl(1); + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Author + $userstatic->id = $obj->fk_user_author; + $userstatic->lastname = $obj->lastname; + $userstatic->firstname = $obj->firstname; + $userstatic->login = $obj->login; + $userstatic->photo = $obj->photo; + $userstatic->email = $obj->user_email; + $userstatic->statut = $obj->user_status; + if (!empty($arrayfields['u.login']['checked'])) { + print ''; + if ($userstatic->id) { + print $userstatic->getNomUrl(1); + } + print ""; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Thirdparty + if (!empty($arrayfields['cf.fk_soc']['checked'])) { + print ''; + $thirdpartytmp->id = $obj->socid; + $thirdpartytmp->name = $obj->name; + $thirdpartytmp->email = $obj->email; + $thirdpartytmp->name_alias = $obj->alias; + $thirdpartytmp->client = $obj->client; + $thirdpartytmp->fournisseur = $obj->fournisseur; + print $thirdpartytmp->getNomUrl(1, 'supplier', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); + print ''."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + //alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + print $obj->alias; + print ''."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + print $obj->town; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + print $obj->zip; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print "".$obj->state_name."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (empty($typenArray)) { + $typenArray = $formcompany->typent_array(1); + } + print $typenArray[$obj->typent_code]; + print ''; + if (!$i) { + $totalarray['nbfield']++; } - print ''; } - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - print "\n"; + // Order date + if (!empty($arrayfields['cf.date_commande']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_commande), 'day'); + if ($objectstatic->statut != $objectstatic::STATUS_ORDERSENT && $objectstatic->statut != $objectstatic::STATUS_RECEIVED_PARTIALLY) { + if ($objectstatic->hasDelay()) { + print ' '.img_picto($langs->trans("Late").' : '.$objectstatic->showDelay(), "warning"); + } + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Plannned date of delivery + if (!empty($arrayfields['cf.date_livraison']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_livraison), 'day'); + if ($objectstatic->statut == $objectstatic::STATUS_ORDERSENT || $objectstatic->statut == $objectstatic::STATUS_RECEIVED_PARTIALLY) { + if ($objectstatic->hasDelay()) { + print ' '.img_picto($langs->trans("Late").' : '.$objectstatic->showDelay(), "warning"); + } + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['cf.total_ht']['checked'])) { + print ''.price($obj->total_ht)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cf.total_ht'; + } + $totalarray['val']['cf.total_ht'] += $obj->total_ht; + } + // Amount VAT + if (!empty($arrayfields['cf.total_tva']['checked'])) { + print ''.price($obj->total_tva)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cf.total_tva'; + } + $totalarray['val']['cf.total_tva'] += $obj->total_tva; + } + // Amount TTC + if (!empty($arrayfields['cf.total_ttc']['checked'])) { + print ''.price($obj->total_ttc)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'cf.total_ttc'; + } + $totalarray['val']['cf.total_ttc'] += $obj->total_ttc; + } - $total += $obj->total_ht; - $subtotal += $obj->total_ht; + // Currency + if (!empty($arrayfields['cf.multicurrency_code']['checked'])) { + print ''.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Currency rate + if (!empty($arrayfields['cf.multicurrency_tx']['checked'])) { + print ''; + $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['cf.multicurrency_total_ht']['checked'])) { + print ''.price($obj->multicurrency_total_ht)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount VAT + if (!empty($arrayfields['cf.multicurrency_total_tva']['checked'])) { + print ''.price($obj->multicurrency_total_tva)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount TTC + if (!empty($arrayfields['cf.multicurrency_total_ttc']['checked'])) { + print ''.price($obj->multicurrency_total_ttc)."\n"; + 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['cf.date_creation']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date modification + if (!empty($arrayfields['cf.tms']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['cf.fk_statut']['checked'])) { + print ''.$objectstatic->LibStatut($obj->fk_statut, 5, $obj->billed).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Billed + if (!empty($arrayfields['cf.billed']['checked'])) { + print ''.yn($obj->billed).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // valid date + if (!empty($arrayfields['cf.date_valid']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_valid), 'day'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // approve date + if (!empty($arrayfields['cf.date_approve']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_approve), 'day'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Note public + if (!empty($arrayfields['cf.note_public']['checked'])) { + print ''; + print dol_string_nohtmltag($obj->note_public); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Note private + if (!empty($arrayfields['cf.note_private']['checked'])) { + print ''; + print dol_string_nohtmltag($obj->note_private); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print "\n"; + + $total += $obj->total_ht; + $subtotal += $obj->total_ht; + } $i++; } diff --git a/htdocs/fourn/commande/note.php b/htdocs/fourn/commande/note.php index 33648dd9817..d1f21b0a2ee 100644 --- a/htdocs/fourn/commande/note.php +++ b/htdocs/fourn/commande/note.php @@ -122,7 +122,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify' && $caneditproject) { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php b/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php index 192a39c9b06..e2e9fb5f899 100644 --- a/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php +++ b/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php @@ -46,7 +46,7 @@ foreach ($linkedObjectBlock as $key => $objectlink) { ?> trans("SupplierOrder"); ?> - trans("ShowOrder"), "order").' '.$objectlink->ref; ?> + getNomUrl(1); ?> ref_supplier; ?> date, 'day'); ?> fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); $permissionnote = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer; // Used by the include of actions_setnotes.inc.php -$permissiondellink = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer;; // Used by the include of actions_dellink.inc.php -$permissiontoedit = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer;; // Used by the include of actions_lineupdonw.inc.php +$permissiondellink = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer; // Used by the include of actions_dellink.inc.php +$permissiontoedit = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer; // Used by the include of actions_lineupdonw.inc.php $usercanread = $user->rights->fournisseur->facture->lire || $user->rights->supplier_invoice->lire; $usercancreate = $user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer; @@ -1151,7 +1151,7 @@ if ($action == 'create') { $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, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index b846e3da9b1..dfb6327bd3f 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -1172,7 +1172,28 @@ if (empty($reshook)) { if (!empty($conf->global->MAIN_DEPOSIT_MULTI_TVA) && $diff != 0) { $object->fetch_lines(); $subprice_diff = $object->lines[0]->subprice - $diff / (1 + $object->lines[0]->tva_tx / 100); - $object->updateline($object->lines[0]->id, $object->lines[0]->desc, $subprice_diff, $object->lines[0]->qty, $object->lines[0]->remise_percent, $object->lines[0]->date_start, $object->lines[0]->date_end, $object->lines[0]->tva_tx, 0, 0, 'HT', $object->lines[0]->info_bits, $object->lines[0]->product_type, 0, 0, 0, $object->lines[0]->pa_ht, $object->lines[0]->label, 0, array(), 100); + $object->updateline( + $object->lines[0]->id, + $object->lines[0]->desc, + $subprice_diff, + $object->lines[0]->tva_tx, + $object->lines[0]->localtax1_tx, + $object->lines[0]->localtax2_tx, + $object->lines[0]->qty, + $object->lines[0]->fk_product, + 'HT', + $object->lines[0]->info_bits, + $object->lines[0]->product_type, + $object->lines[0]->remise_percent, + 0, + $object->lines[0]->date_start, + $object->lines[0]->date_end, + 0, + 0, + 0, + '', + 100 + ); } } elseif ($result > 0) { $lines = $srcobject->lines; @@ -1627,7 +1648,7 @@ if (empty($reshook)) { $productsupplier->fk_unit, 0, $pu_devise, - $ref_supplier, + GETPOST('fourn_ref', 'alpha'), '' ); } @@ -1987,15 +2008,93 @@ if ($action == 'create') { $projectid = (!empty($objectsrc->fk_project) ? $objectsrc->fk_project : ''); //$ref_client = (!empty($objectsrc->ref_client)?$object->ref_client:''); - $soc = $objectsrc->thirdparty; - $cond_reglement_id = (!empty($objectsrc->cond_reglement_id) ? $objectsrc->cond_reglement_id : (!empty($soc->cond_reglement_supplier_id) ? $soc->cond_reglement_supplier_id : 0)); // TODO maybe add default value option - $mode_reglement_id = (!empty($objectsrc->mode_reglement_id) ? $objectsrc->mode_reglement_id : (!empty($soc->mode_reglement_supplier_id) ? $soc->mode_reglement_supplier_id : 0)); - $fk_account = (!empty($objectsrc->fk_account) ? $objectsrc->fk_account : (!empty($soc->fk_account) ? $soc->fk_account : 0)); - $remise_percent = (!empty($objectsrc->remise_percent) ? $objectsrc->remise_percent : (!empty($soc->remise_supplier_percent) ? $soc->remise_supplier_percent : 0)); - $remise_absolue = (!empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (!empty($soc->remise_absolue) ? $soc->remise_absolue : 0)); - $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)); + + $cond_reglement_id = 0; + $mode_reglement_id = 0; + $fk_account = 0; + $remise_percent = 0; + $remise_absolue = 0; + $transport_mode_id = 0; + + // set from object source + if (!empty($objectsrc->cond_reglement_id)) { + $cond_reglement_id = $objectsrc->cond_reglement_id; + } + if (!empty($objectsrc->mode_reglement_id)) { + $mode_reglement_id = $objectsrc->mode_reglement_id; + } + if (!empty($objectsrc->fk_account)) { + $fk_account = $objectsrc->fk_account; + } + if (!empty($objectsrc->remise_percent)) { + $remise_percent = $objectsrc->remise_percent; + } + if (!empty($objectsrc->remise_absolue)) { + $remise_absolue = $objectsrc->remise_absolue; + } + if (!empty($objectsrc->transport_mode_id)) { + $transport_mode_id = $objectsrc->transport_mode_id; + } + + if (empty($cond_reglement_id) + || empty($mode_reglement_id) + || empty($fk_account) + || empty($remise_percent) + || empty($remise_absolue) + || empty($transport_mode_id) + ) { + if ($origin == 'reception') { + // try to get from source of reception (supplier order) + if (!isset($objectsrc->supplier_order)) { + $objectsrc->fetch_origin(); + } + + if (!empty($objectsrc->commandeFournisseur)) { + $supplierOrder = $objectsrc->commandeFournisseur; + if (empty($cond_reglement_id) && !empty($supplierOrder->cond_reglement_id)) { + $cond_reglement_id = $supplierOrder->cond_reglement_id; + } + if (empty($mode_reglement_id) && !empty($supplierOrder->mode_reglement_id)) { + $mode_reglement_id = $supplierOrder->mode_reglement_id; + } + if (empty($fk_account) && !empty($supplierOrder->fk_account)) { + $fk_account = $supplierOrder->fk_account; + } + if (empty($remise_percent) && !empty($supplierOrder->remise_percent)) { + $remise_percent = $supplierOrder->remise_percent; + } + if (empty($remise_absolue) && !empty($supplierOrder->remise_absolue)) { + $remise_absolue = $supplierOrder->remise_absolue; + } + if (empty($transport_mode_id) && !empty($supplierOrder->transport_mode_id)) { + $transport_mode_id = $supplierOrder->transport_mode_id; + } + } + } + + // try to get from third-party of source object + if (!empty($soc)) { + if (empty($cond_reglement_id) && !empty($soc->cond_reglement_supplier_id)) { + $cond_reglement_id = $soc->cond_reglement_supplier_id; + } + if (empty($mode_reglement_id) && !empty($soc->mode_reglement_supplier_id)) { + $mode_reglement_id = $soc->mode_reglement_supplier_id; + } + if (empty($fk_account) && !empty($soc->fk_account)) { + $fk_account = $soc->fk_account; + } + if (empty($remise_percent) && !empty($soc->remise_supplier_percent)) { + $remise_percent = $soc->remise_supplier_percent; + } + if (empty($remise_absolue) && !empty($soc->remise_absolue)) { + $remise_absolue = $soc->remise_absolue; + } + if (empty($transport_mode_id) && !empty($soc->transport_mode_id)) { + $transport_mode_id = $soc->transport_mode_id; + } + } + } if (isModEnabled("multicurrency")) { if (!empty($objectsrc->multicurrency_code)) { @@ -2007,7 +2106,7 @@ if ($action == 'create') { } $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); + $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); @@ -2080,14 +2179,15 @@ if ($action == 'create') { // reload page to retrieve supplier informations if (!empty($conf->global->RELOAD_PAGE_ON_SUPPLIER_CHANGE)) { print ''; + '; } if ($fac_recid <= 0) { print ' '; @@ -2212,7 +2312,7 @@ if ($action == 'create') { jQuery(".checkforselect").prop("disabled", false); jQuery(".checkforselect").prop("checked", true); } - }; + } }); '; @@ -2337,7 +2437,7 @@ if ($action == 'create') { print '
'; $tmp = 'global->INVOICE_CREDIT_NOTE_STANDALONE)) { $tmp .= ' disabled'; } $tmp .= '> '; @@ -2384,7 +2484,11 @@ if ($action == 'create') { } } else { print '
'; - $tmp = ' '; + if (empty($conf->global->INVOICE_CREDIT_NOTE_STANDALONE)) { + $tmp = ' '; + } else { + $tmp=' '; + } $text = $tmp.$langs->trans("InvoiceAvoir").' '; $text .= '('.$langs->trans("YouMustCreateInvoiceFromSupplierThird").') '; $desc = $form->textwithpicto($text, $langs->transnoentities("InvoiceAvoirDesc"), 1, 'help', '', 0, 3); @@ -2645,6 +2749,7 @@ if ($action == 'create') { $resteapayer = price2num($object->total_ttc - $totalpaid - $totalcreditnotes - $totaldeposits, 'MT'); // Multicurrency + $multicurrency_resteapayer = 0; if (isModEnabled("multicurrency")) { $multicurrency_totalpaid = $object->getSommePaiement(1); $multicurrency_totalcreditnotes = $object->getSumCreditNotesUsed(1); @@ -2690,6 +2795,7 @@ if ($action == 'create') { // Confirmation de la conversion de l'avoir en reduc if ($action == 'converttoreduc') { + $type_fac = ''; if ($object->type == FactureFournisseur::TYPE_STANDARD) { $type_fac = 'ExcessPaid'; } elseif ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE) { @@ -2908,7 +3014,7 @@ if ($action == 'create') { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); @@ -2965,7 +3071,8 @@ if ($action == 'create') { } if (isset($objectidnext) && $objectidnext > 0) { $facthatreplace = new FactureFournisseur($db); - $facthatreplace->fetch($facidnext); + + $facthatreplace->fetch($objectidnext); print ' '.str_replace('{s1}', $facthatreplace->getNomUrl(1), $langs->transnoentities("ReplacedByInvoice", '{s1}')).''; } if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE || $object->type == FactureFournisseur::TYPE_DEPOSIT) { @@ -3599,7 +3706,7 @@ if ($action == 'create') { /* * Lines */ - print '
'; + print ''; print ''; print ''; print ''; @@ -3624,7 +3731,7 @@ if ($action == 'create') { // Show object lines if (!empty($object->lines)) { - $ret = $object->printObjectLines($action, $societe, $mysoc, $lineid, 1); + $object->printObjectLines($action, $societe, $mysoc, $lineid, 1); } $num = count($object->lines); diff --git a/htdocs/fourn/facture/contact.php b/htdocs/fourn/facture/contact.php index 542b37db092..9cbf579c144 100644 --- a/htdocs/fourn/facture/contact.php +++ b/htdocs/fourn/facture/contact.php @@ -149,7 +149,7 @@ if ($id > 0 || !empty($ref)) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/fourn/facture/document.php b/htdocs/fourn/facture/document.php index 03012acbcaf..cff4a30f442 100644 --- a/htdocs/fourn/facture/document.php +++ b/htdocs/fourn/facture/document.php @@ -125,7 +125,7 @@ if ($object->id > 0) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/fourn/facture/info.php b/htdocs/fourn/facture/info.php index 9223d47b791..9369a290c9c 100644 --- a/htdocs/fourn/facture/info.php +++ b/htdocs/fourn/facture/info.php @@ -91,7 +91,7 @@ if (isModEnabled('project')) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index e69addd34fc..9b790050571 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -99,14 +99,8 @@ $search_country = GETPOST("search_country", 'int'); $search_type_thirdparty = GETPOST("search_type_thirdparty", 'int'); $search_user = GETPOST('search_user', 'int'); $search_sale = GETPOST('search_sale', 'int'); -$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_date_start = GETPOSTDATE('search_date_start', '', 'tzserver'); +$search_date_end = GETPOSTDATE('search_date_end', '23:59:59', 'tzserver'); $search_datelimit_startday = GETPOST('search_datelimit_startday', 'int'); $search_datelimit_startmonth = GETPOST('search_datelimit_startmonth', 'int'); $search_datelimit_startyear = GETPOST('search_datelimit_startyear', 'int'); @@ -277,12 +271,6 @@ if (empty($reshook)) { $search_type = ''; $search_country = ''; $search_type_thirdparty = ''; - $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_datelimit_startday = ''; @@ -404,6 +392,9 @@ $facturestatic = new FactureFournisseur($db); $formcompany = new FormCompany($db); $thirdparty = new Societe($db); +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $sql = "SELECT"; if ($search_all) { $sql = 'SELECT DISTINCT'; @@ -506,11 +497,15 @@ if ($search_type != '' && $search_type >= 0) { if ($search_project) { $sql .= natural_search('p.ref', $search_project); } -if ($search_company) { - $sql .= natural_search('s.nom', $search_company); -} -if ($search_company_alias) { - $sql .= natural_search('s.name_alias', $search_company_alias); +if (empty($arrayfields['s.name_alias']['checked']) && $search_company) { + $sql .= natural_search(array("s.nom", "s.name_alias"), $search_company); +} else { + if ($search_company) { + $sql .= natural_search('s.nom', $search_company); + } + if ($search_company_alias) { + $sql .= natural_search('s.name_alias', $search_company_alias); + } } if ($search_town) { $sql .= natural_search('s.town', $search_town); @@ -759,6 +754,9 @@ if ($socid) { } $param = '&socid='.$socid; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -768,23 +766,11 @@ if ($limit > 0 && $limit != $conf->liste_limit) { if ($search_all) { $param .= '&search_all='.urlencode($search_all); } -if ($search_date_startday) { - $param .= '&search_date_startday='.urlencode($search_date_startday); +if ($search_date_start) { + $param .= buildParamDate('search_date_start', null, '', 'tzserver'); } -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_date_end) { + $param .= buildParamDate('search_date_end', null, '', 'tzserver'); } if ($search_datelimit_startday) { $param .= '&search_datelimit_startday='.urlencode($search_datelimit_startday); @@ -911,7 +897,10 @@ $url = DOL_URL_ROOT.'/fourn/facture/card.php?action=create'; if (!empty($socid)) { $url .= '&socid='.urlencode($socid); } -$newcardbutton = dolGetButtonTitle($langs->trans('NewBill'), '', 'fa fa-plus-circle', $url, '', ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer)); +$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('NewBill'), '', 'fa fa-plus-circle', $url, '', ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer)); $i = 0; print ''."\n"; @@ -1219,9 +1208,9 @@ if (!empty($arrayfields['f.tms']['checked'])) { } // Status if (!empty($arrayfields['f.fk_statut']['checked'])) { - print ''; + print ''; $liststatus = array('0'=>$langs->trans("Draft"), '1'=>$langs->trans("Unpaid"), '2'=>$langs->trans("Paid")); - print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'onrightofpage', 1); + print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1); print ''; } // Action column @@ -1423,409 +1412,423 @@ if ($num > 0) { $remaintopay = -$facturestatic->getSumFromThisCreditNotesNotUsed(); } } - - print ''; - // Action column - if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->facid, $arrayofselected)) { - $selected = 1; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + print '
'; + } + // Output Kanban + $facturestatic->socid = $thirdparty->getNomUrl(1, 'supplier', 3); + $facturestatic->total_ht = $obj->total_ht; + $facturestatic->date = $obj->datef; + print $facturestatic->getKanbanView(''); + if ($i == (min($num, $limit) - 1)) { + print '
'; + print ''; + } + } else { + print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->facid, $arrayofselected)) { + $selected = 1; + } + print ''; } - print ''; + print ''; } - print ''; - } - if (!empty($arrayfields['f.ref']['checked'])) { - print ''; + if (!empty($arrayfields['f.ref']['checked'])) { + print ''; - print ''; - // Picto + Ref - print '
'; - print $facturestatic->getNomUrl(1, '', 0, 0, '', 0, -1, 1); + print ''; + // Picto + Ref + print '
'; + print $facturestatic->getNomUrl(1, '', 0, 0, '', 0, -1, 1); - $filename = dol_sanitizeFileName($obj->ref); - $filedir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($obj->facid, 2, 0, 0, $facturestatic, 'invoice_supplier').dol_sanitizeFileName($obj->ref); - $subdir = get_exdir($obj->facid, 2, 0, 0, $facturestatic, 'invoice_supplier').dol_sanitizeFileName($obj->ref); - print $formfile->getDocumentsLink('facture_fournisseur', $subdir, $filedir); - print '
'; + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($obj->facid, 2, 0, 0, $facturestatic, 'invoice_supplier').dol_sanitizeFileName($obj->ref); + $subdir = get_exdir($obj->facid, 2, 0, 0, $facturestatic, 'invoice_supplier').dol_sanitizeFileName($obj->ref); + print $formfile->getDocumentsLink('facture_fournisseur', $subdir, $filedir); + print '
'; - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Supplier ref - if (!empty($arrayfields['f.ref_supplier']['checked'])) { - print ''; - print $obj->ref_supplier; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Type - if (!empty($arrayfields['f.type']['checked'])) { - print ''; - print $facturestatic->getLibType(); - print ""; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Label - if (!empty($arrayfields['f.label']['checked'])) { - print ''; - print $obj->label; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date - if (!empty($arrayfields['f.datef']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->datef), 'day'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Date limit - if (!empty($arrayfields['f.date_lim_reglement']['checked'])) { - print ''.dol_print_date($datelimit, 'day'); - if ($facturestatic->hasDelay()) { - print img_warning($langs->trans('Alert').' - '.$langs->trans('Late')); - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Project - if (!empty($arrayfields['p.ref']['checked'])) { - print ''; - if ($obj->project_id > 0) { - $projectstatic->id = $obj->project_id; - $projectstatic->ref = $obj->project_ref; - $projectstatic->title = $obj->project_label; - print $projectstatic->getNomUrl(1); - } - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Third party - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; - print $thirdparty->getNomUrl(1, 'supplier', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Alias - if (!empty($arrayfields['s.name_alias']['checked'])) { - print ''; - print $thirdparty->name_alias; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Town - if (!empty($arrayfields['s.town']['checked'])) { - print ''; - print $obj->town; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Zip - if (!empty($arrayfields['s.zip']['checked'])) { - print ''; - print dol_escape_htmltag($obj->zip); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // State - if (!empty($arrayfields['state.nom']['checked'])) { - print "".$obj->state_name."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Country - if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; - $tmparray = getCountry($obj->fk_pays, 'all'); - print $tmparray['label']; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type ent - if (!empty($arrayfields['typent.code']['checked'])) { - print ''; - if (empty($typenArray)) { - $typenArray = $formcompany->typent_array(1); - } - print $typenArray[$obj->typent_code]; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Payment condition - if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { - $s = $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 1, '', -1, -1, 1); - print ''; - print dol_escape_htmltag($s); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Payment mode - if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { - $s = $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1, 0, '', 1); - print ''; - print dol_escape_htmltag($s); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Amount HT - if (!empty($arrayfields['f.total_ht']['checked'])) { - print ''.price($obj->total_ht)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ht'; - } - $totalarray['val']['f.total_ht'] += $obj->total_ht; - } - // Amount VAT - if (!empty($arrayfields['f.total_vat']['checked'])) { - print ''.price($obj->total_vat)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_vat'; - } - $totalarray['val']['f.total_vat'] += $obj->total_vat; - } - // Amount LocalTax1 - if (!empty($arrayfields['f.total_localtax1']['checked'])) { - print ''.price($obj->total_localtax1)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax1'; - } - $totalarray['val']['f.total_localtax1'] += $obj->total_localtax1; - } - // Amount LocalTax2 - if (!empty($arrayfields['f.total_localtax2']['checked'])) { - print ''.price($obj->total_localtax2)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax2'; - } - $totalarray['val']['f.total_localtax2'] += $obj->total_localtax2; - } - // Amount TTC - if (!empty($arrayfields['f.total_ttc']['checked'])) { - print ''.price($obj->total_ttc)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ttc'; - } - $totalarray['val']['f.total_ttc'] += $obj->total_ttc; - } - - $userstatic->id = $obj->fk_user_author; - $userstatic->login = $obj->login; - $userstatic->lastname = $obj->lastname; - $userstatic->firstname = $obj->firstname; - $userstatic->email = $obj->user_email; - $userstatic->statut = $obj->user_statut; - $userstatic->entity = $obj->entity; - $userstatic->photo = $obj->photo; - $userstatic->office_phone = $obj->office_phone; - $userstatic->office_fax = $obj->office_fax; - $userstatic->user_mobile = $obj->user_mobile; - $userstatic->job = $obj->job; - $userstatic->gender = $obj->gender; - - // Author - if (!empty($arrayfields['u.login']['checked'])) { - print ''; - if ($userstatic->id) { - print $userstatic->getLoginUrl(-1); - } else { - print ' '; - } - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - if (!empty($arrayfields['dynamount_payed']['checked'])) { - print ''.(!empty($totalpay) ?price($totalpay, 0, $langs) : '').''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'totalam'; - } - $totalarray['val']['totalam'] += $totalpay; - } - - if (!empty($arrayfields['rtp']['checked'])) { - print ''.(!empty($remaintopay) ?price($remaintopay, 0, $langs) : ' ').''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'rtp'; - } - $totalarray['val']['rtp'] += $remaintopay; - } - - // Currency - if (!empty($arrayfields['f.multicurrency_code']['checked'])) { - print ''.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Currency rate - if (!empty($arrayfields['f.multicurrency_tx']['checked'])) { - print ''; - $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount HT - if (!empty($arrayfields['f.multicurrency_total_ht']['checked'])) { - print ''.price($obj->multicurrency_total_ht)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount VAT - if (!empty($arrayfields['f.multicurrency_total_vat']['checked'])) { - print ''.price($obj->multicurrency_total_vat)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Amount TTC - if (!empty($arrayfields['f.multicurrency_total_ttc']['checked'])) { - print ''.price($obj->multicurrency_total_ttc)."\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['multicurrency_dynamount_payed']['checked'])) { - print ''.(!empty($multicurrency_totalpay) ?price($multicurrency_totalpay, 0, $langs) : '').''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Pending amount - if (!empty($arrayfields['multicurrency_rtp']['checked'])) { - print ''; - print (!empty($multicurrency_remaintopay) ? price($multicurrency_remaintopay, 0, $langs) : ''); - print ''; // TODO Use a denormalized field - if (!$i) { - $totalarray['nbfield']++; - } - } - - - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - // Date creation - if (!empty($arrayfields['f.datec']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date modification - if (!empty($arrayfields['f.tms']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['f.fk_statut']['checked'])) { - print ''; - print $facturestatic->LibStatut($obj->paye, $obj->fk_statut, 5, $paiement, $obj->type); - print ""; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Action column - if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->facid, $arrayofselected)) { - $selected = 1; + print "\n"; + if (!$i) { + $totalarray['nbfield']++; } - print ''; } - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - print "\n"; + // Supplier ref + if (!empty($arrayfields['f.ref_supplier']['checked'])) { + print ''; + print $obj->ref_supplier; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type + if (!empty($arrayfields['f.type']['checked'])) { + print ''; + print $facturestatic->getLibType(); + print ""; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Label + if (!empty($arrayfields['f.label']['checked'])) { + print ''; + print $obj->label; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date + if (!empty($arrayfields['f.datef']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->datef), 'day'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date limit + if (!empty($arrayfields['f.date_lim_reglement']['checked'])) { + print ''.dol_print_date($datelimit, 'day'); + if ($facturestatic->hasDelay()) { + print img_warning($langs->trans('Alert').' - '.$langs->trans('Late')); + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Project + if (!empty($arrayfields['p.ref']['checked'])) { + print ''; + if ($obj->project_id > 0) { + $projectstatic->id = $obj->project_id; + $projectstatic->ref = $obj->project_ref; + $projectstatic->title = $obj->project_label; + print $projectstatic->getNomUrl(1); + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Third party + if (!empty($arrayfields['s.nom']['checked'])) { + print ''; + print $thirdparty->getNomUrl(1, 'supplier', 0, 0, -1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + print $thirdparty->name_alias; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Town + if (!empty($arrayfields['s.town']['checked'])) { + print ''; + print $obj->town; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Zip + if (!empty($arrayfields['s.zip']['checked'])) { + print ''; + print dol_escape_htmltag($obj->zip); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // State + if (!empty($arrayfields['state.nom']['checked'])) { + print "".$obj->state_name."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Country + if (!empty($arrayfields['country.code_iso']['checked'])) { + print ''; + $tmparray = getCountry($obj->fk_pays, 'all'); + print $tmparray['label']; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type ent + if (!empty($arrayfields['typent.code']['checked'])) { + print ''; + if (empty($typenArray)) { + $typenArray = $formcompany->typent_array(1); + } + print $typenArray[$obj->typent_code]; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Payment condition + if (!empty($arrayfields['f.fk_cond_reglement']['checked'])) { + $s = $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 1, '', -1, -1, 1); + print ''; + print dol_escape_htmltag($s); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Payment mode + if (!empty($arrayfields['f.fk_mode_reglement']['checked'])) { + $s = $form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1, 0, '', 1); + print ''; + print dol_escape_htmltag($s); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Amount HT + if (!empty($arrayfields['f.total_ht']['checked'])) { + print ''.price($obj->total_ht)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ht'; + } + $totalarray['val']['f.total_ht'] += $obj->total_ht; + } + // Amount VAT + if (!empty($arrayfields['f.total_vat']['checked'])) { + print ''.price($obj->total_vat)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_vat'; + } + $totalarray['val']['f.total_vat'] += $obj->total_vat; + } + // Amount LocalTax1 + if (!empty($arrayfields['f.total_localtax1']['checked'])) { + print ''.price($obj->total_localtax1)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax1'; + } + $totalarray['val']['f.total_localtax1'] += $obj->total_localtax1; + } + // Amount LocalTax2 + if (!empty($arrayfields['f.total_localtax2']['checked'])) { + print ''.price($obj->total_localtax2)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_localtax2'; + } + $totalarray['val']['f.total_localtax2'] += $obj->total_localtax2; + } + // Amount TTC + if (!empty($arrayfields['f.total_ttc']['checked'])) { + print ''.price($obj->total_ttc)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'f.total_ttc'; + } + $totalarray['val']['f.total_ttc'] += $obj->total_ttc; + } + + $userstatic->id = $obj->fk_user_author; + $userstatic->login = $obj->login; + $userstatic->lastname = $obj->lastname; + $userstatic->firstname = $obj->firstname; + $userstatic->email = $obj->user_email; + $userstatic->statut = $obj->user_statut; + $userstatic->entity = $obj->entity; + $userstatic->photo = $obj->photo; + $userstatic->office_phone = $obj->office_phone; + $userstatic->office_fax = $obj->office_fax; + $userstatic->user_mobile = $obj->user_mobile; + $userstatic->job = $obj->job; + $userstatic->gender = $obj->gender; + + // Author + if (!empty($arrayfields['u.login']['checked'])) { + print ''; + if ($userstatic->id) { + print $userstatic->getLoginUrl(-1); + } else { + print ' '; + } + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + if (!empty($arrayfields['dynamount_payed']['checked'])) { + print ''.(!empty($totalpay) ?price($totalpay, 0, $langs) : '').''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'totalam'; + } + $totalarray['val']['totalam'] += $totalpay; + } + + if (!empty($arrayfields['rtp']['checked'])) { + print ''.(!empty($remaintopay) ?price($remaintopay, 0, $langs) : ' ').''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 'rtp'; + } + $totalarray['val']['rtp'] += $remaintopay; + } + + // Currency + if (!empty($arrayfields['f.multicurrency_code']['checked'])) { + print ''.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Currency rate + if (!empty($arrayfields['f.multicurrency_tx']['checked'])) { + print ''; + $form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code); + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount HT + if (!empty($arrayfields['f.multicurrency_total_ht']['checked'])) { + print ''.price($obj->multicurrency_total_ht)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount VAT + if (!empty($arrayfields['f.multicurrency_total_vat']['checked'])) { + print ''.price($obj->multicurrency_total_vat)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Amount TTC + if (!empty($arrayfields['f.multicurrency_total_ttc']['checked'])) { + print ''.price($obj->multicurrency_total_ttc)."\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['multicurrency_dynamount_payed']['checked'])) { + print ''.(!empty($multicurrency_totalpay) ?price($multicurrency_totalpay, 0, $langs) : '').''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Pending amount + if (!empty($arrayfields['multicurrency_rtp']['checked'])) { + print ''; + print (!empty($multicurrency_remaintopay) ? price($multicurrency_remaintopay, 0, $langs) : ''); + print ''; // TODO Use a denormalized field + if (!$i) { + $totalarray['nbfield']++; + } + } + + + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + // Date creation + if (!empty($arrayfields['f.datec']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date modification + if (!empty($arrayfields['f.tms']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Status + if (!empty($arrayfields['f.fk_statut']['checked'])) { + print ''; + print $facturestatic->LibStatut($obj->paye, $obj->fk_statut, 5, $paiement, $obj->type); + print ""; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->facid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print "\n"; + } $i++; } diff --git a/htdocs/fourn/facture/note.php b/htdocs/fourn/facture/note.php index 1c61fdc8e07..c8178e39d74 100644 --- a/htdocs/fourn/facture/note.php +++ b/htdocs/fourn/facture/note.php @@ -121,7 +121,7 @@ if ($object->id > 0) { if ($action != 'classify') { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' '; } - $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, ($action == 'classify' ? 1 : 0), 0, 1, ''); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300'); } else { if (!empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/ftp/index.php b/htdocs/ftp/index.php index 6222d3db8bd..e6c1aac1372 100644 --- a/htdocs/ftp/index.php +++ b/htdocs/ftp/index.php @@ -98,41 +98,6 @@ $mesg = ''; * ACTIONS */ -// Submit file -if (GETPOST("sendit") && !empty($conf->global->MAIN_UPLOAD_DOC)) { - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - - $result = $ecmdir->fetch(GETPOST("section", 'int')); - if (!($result > 0)) { - dol_print_error($db, $ecmdir->error); - exit; - } - $relativepath = $ecmdir->getRelativePath(); - $upload_dir = $conf->ecm->dir_output.'/'.$relativepath; - - if (dol_mkdir($upload_dir) >= 0) { - $resupload = dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir."/".dol_unescapefile($_FILES['userfile']['name']), 0); - if (is_numeric($resupload) && $resupload > 0) { - $result = $ecmdir->changeNbOfFiles('+'); - } else { - $langs->load("errors"); - if ($resupload < 0) { // Unknown error - setEventMessages($langs->trans("ErrorFileNotUploaded"), null, 'errors'); - } elseif (preg_match('/ErrorFileIsInfectedWithAVirus/', $resupload)) { - // Files infected by a virus - setEventMessages($langs->trans("ErrorFileIsInfectedWithAVirus"), null, 'errors'); - } else // Known error - { - setEventMessages($langs->trans($resupload), null, 'errors'); - } - } - } else { - // Transfer failure (file exceeding the limit ?) - $langs->load("errors"); - setEventMessages($langs->trans("ErrorFailToCreateDir", $upload_dir), null, 'errors'); - } -} - if ($action == 'uploadfile') { // set up a connection or die if (!$conn_id) { @@ -189,6 +154,7 @@ if ($action == 'addfolder') { // Action ajout d'un rep if ($action == 'add' && $user->rights->ftp->setup) { + $ecmdir = new EcmDirectory($db); $ecmdir->ref = GETPOST("ref"); $ecmdir->label = GETPOST("label"); $ecmdir->description = GETPOST("desc"); @@ -317,7 +283,7 @@ if ($action == 'download') { $newsection = $section; - $result = dol_ftp_get($connect_id, $localfile, $file, $newsection); + $result = dol_ftp_get($conn_id, $localfile, $file, $newsection); if ($result) { @@ -341,9 +307,9 @@ if ($action == 'download') { header('Content-Type: '.$type); } if ($attachment) { - header('Content-Disposition: attachment; filename="'.$filename.'"'); + header('Content-Disposition: attachment; filename="'.$file.'"'); } else { - header('Content-Disposition: inline; filename="'.$filename.'"'); + header('Content-Disposition: inline; filename="'.$file.'"'); } // Ajout directives pour resoudre bug IE @@ -354,7 +320,7 @@ if ($action == 'download') { exit; } else { - setEventMessages($langs->transnoentitiesnoconv('FailedToGetFile', $remotefile), null, 'errors'); + setEventMessages($langs->transnoentitiesnoconv('FailedToGetFile', $file), null, 'errors'); } } else { dol_print_error('', $mesg); @@ -661,6 +627,7 @@ if (!function_exists('ftp_connect')) { print '
'; print ""; + if ($user->hasRight('ftp', 'write')) { print load_fiche_titre($langs->trans("AttachANewFile"), null, null); print '
'; @@ -672,6 +639,9 @@ if (!function_exists('ftp_connect')) { print ''; print ''; print '
'; + + print '

'; + print load_fiche_titre($langs->trans("AddFolder"), null, null); print '
'; print ''; diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index 0a8f7a5c760..3e800760606 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -586,7 +586,7 @@ if (empty($reshook)) { // If no SQL error, we redirect to the request form if (!$error) { - // Calculcate number of days consummed + // Calculcate number of days consumed $nbopenedday = num_open_day($object->date_debut_gmt, $object->date_fin_gmt, 0, 1, $object->halfday); $soldeActuel = $object->getCpforUser($object->fk_user, $object->fk_type); $newSolde = ($soldeActuel - $nbopenedday); @@ -810,7 +810,7 @@ if (empty($reshook)) { $error++; } - // Calculcate number of days consummed + // Calculcate number of days consumed $nbopenedday = num_open_day($object->date_debut_gmt, $object->date_fin_gmt, 0, 1, $object->halfday); $soldeActuel = $object->getCpforUser($object->fk_user, $object->fk_type); diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index 0125becd21c..e4a82be6ea7 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -1470,7 +1470,7 @@ class Holiday extends CommonObject $sql .= " value = '".$this->db->escape($value)."'"; $sql .= " WHERE name = '".$this->db->escape($name)."'"; - dol_syslog(get_class($this).'::updateConfCP name='.$name.'', LOG_DEBUG); + dol_syslog(get_class($this).'::updateConfCP name='.$name, LOG_DEBUG); $result = $this->db->query($sql); if ($result) { return true; @@ -1580,7 +1580,7 @@ class Holiday extends CommonObject // We add a log for each user $this->addLogCP($user->id, $userCounter['rowid'], $langs->trans('HolidaysMonthlyUpdate'), $newSolde, $userCounter['type']); - $result = $this->updateSoldeCP($userCounter['rowid'], $newSolde, $userCounter['type'], $langs->trans('HolidaysMonthlyUpdate')); + $result = $this->updateSoldeCP($userCounter['rowid'], $newSolde, $userCounter['type']); if ($result < 0) { $error++; @@ -2419,4 +2419,39 @@ class Holiday extends CommonObject return -1; } } + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Label of holiday type (if known) + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs; + + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.$arraydata['user']->getNomUrl(-1).''; + if (property_exists($this, 'fk_type')) { + $return .= '
'.$langs->trans("Type").' : '; + $return .= ''.arraydata['labeltype'].''; + } + if (property_exists($this, 'date_debut') && property_exists($this, 'date_fin')) { + $return .= '
'.dol_print_date($this->date_debut, 'day').''; + $return .= ' '.$langs->trans("To").' '; + $return .= ''.dol_print_date($this->date_fin, 'day').''; + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php index 2d47467319d..2eb69145254 100644 --- a/htdocs/holiday/define_holiday.php +++ b/htdocs/holiday/define_holiday.php @@ -188,7 +188,7 @@ if (empty($reshook)) { $db->commit(); if ($nbok > 0) { - setEventMessages('UpdateConfCPOK', '', 'mesgs'); + setEventMessages('UpdateConfCPOK', null, 'mesgs'); } } else { $db->rollback(); diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 564fb8a2a96..42c64613933 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -52,6 +52,7 @@ $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') : 'holidaylist'; // To manage different context of search +$mode = GETPOST('mode', 'alpha'); // for switch mode view result $backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') @@ -204,17 +205,17 @@ if (empty($reshook)) { } 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 + $massaction = ''; // Protection to avoid mass action if we force a new search during a mass action confirmation } - // Mass actions - $objectclass = 'Holiday'; - $objectlabel = 'Holiday'; - $permissiontoread = $user->hasRight('holiday', 'read'); - $permissiontodelete = $user->hasRight('holiday', 'delete'); - $permissiontoapprove = $user->hasRight('holiday', 'approve'); - $uploaddir = $conf->holiday->dir_output; - include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; + // Mass actions + $objectclass = 'Holiday'; + $objectlabel = 'Holiday'; + $permissiontoread = $user->hasRight('holiday', 'read'); + $permissiontodelete = $user->hasRight('holiday', 'delete'); + $permissiontoapprove = $user->hasRight('holiday', 'approve'); + $uploaddir = $conf->holiday->dir_output; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -394,6 +395,9 @@ if ($resql) { $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); } @@ -476,6 +480,8 @@ if ($resql) { print ''; print ''; print ''; + print ''; + if ($id > 0) { print ''; } @@ -519,7 +525,11 @@ if ($resql) { } else { $title = $langs->trans("ListeCP"); - $newcardbutton = dolGetButtonTitle($langs->trans('MenuAddCP'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/holiday/card.php?action=create', '', $user->rights->holiday->write); + + $newcardbutton = ''; + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition')); + $newcardbutton .= dolGetButtonTitle($langs->trans('MenuAddCP'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/holiday/card.php?action=create', '', $user->rights->holiday->write); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_hrm', 0, $newcardbutton, '', $limit, 0, 0, 1); } @@ -597,7 +607,7 @@ if ($resql) { } print ''; - print $form->select_dolusers($search_employee, "search_employee", 1, "", $disabled, $include, '', 0, 0, 0, $morefilter, 0, '', 'maxwidth150'); + print $form->select_dolusers($search_employee, "search_employee", 1, "", $disabled, $include, '', 0, 0, 0, $morefilter, 0, '', 'maxwidth125'); print ''; } @@ -607,12 +617,12 @@ if ($resql) { print ''; $validator = new UserGroup($db); $excludefilter = $user->admin ? '' : 'u.rowid <> '.$user->id; - $valideurobjects = $validator->listUsersForGroup($excludefilter); + $valideurobjects = $validator->listUsersForGroup($excludefilter, 1); $valideurarray = array(); foreach ($valideurobjects as $val) { $valideurarray[$val->id] = $val->id; } - print $form->select_dolusers($search_valideur, "search_valideur", 1, "", 0, $valideurarray, '', 0, 0, 0, $morefilter, 0, '', 'maxwidth150'); + print $form->select_dolusers($search_valideur, "search_valideur", 1, "", 0, $valideurarray, '', 0, 0, 0, $morefilter, 0, '', 'maxwidth125'); print ''; } else { print ' '; @@ -632,7 +642,7 @@ if ($resql) { //$labeltoshow .= ($val['delay'] > 0 ? ' ('.$langs->trans("NoticePeriod").': '.$val['delay'].' '.$langs->trans("days").')':''); $arraytypeleaves[$val['rowid']] = $labeltoshow; } - print $form->selectarray('search_type', $arraytypeleaves, $search_type, 1, 0, 0, '', 0, 0, 0, '', '', 1); + print $form->selectarray('search_type', $arraytypeleaves, $search_type, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100', 1); } print ''; } @@ -787,7 +797,8 @@ if ($resql) { $holidaystatic->id = $obj->rowid; $holidaystatic->ref = ($obj->ref ? $obj->ref : $obj->rowid); $holidaystatic->statut = $obj->status; - $holidaystatic->date_debut = $db->jdate($obj->date_debut); + $holidaystatic->date_debut = $obj->date_debut; + $holidaystatic->date_fin = $obj->date_fin; // User $userstatic->id = $obj->fk_user; @@ -815,145 +826,182 @@ if ($resql) { $starthalfday = ($obj->halfday == -1 || $obj->halfday == 2) ? 'afternoon' : 'morning'; $endhalfday = ($obj->halfday == 1 || $obj->halfday == 2) ? 'morning' : 'afternoon'; - print ''; - // Action column - if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $nbopenedday = num_open_day($db->jdate($obj->date_debut, 1), $db->jdate($obj->date_fin, 1), 0, 1, $obj->halfday); // user jdate(..., 1) because num_open_day need UTC dates + $totalduration += $nbopenedday; + + if ($mode == 'kanban') { + if ($i == 0) { + print ''; + print '
'; + } + + $holidaystatic->fk_type = $typeleaves[$obj->fk_type]['rowid']; + + // Output Kanban + if ($massactionbutton || $massaction) { $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { + if (in_array($object->id, $arrayofselected)) { $selected = 1; } - print ''; - } - print ''; - } - if (!empty($arrayfields['cp.ref']['checked'])) { - print ''; - print $holidaystatic->getNomUrl(1, 1); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['cp.fk_user']['checked'])) { - print ''.$userstatic->getNomUrl(-1, 'leave').''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['cp.fk_validator']['checked'])) { - print ''.$approbatorstatic->getNomUrl(-1).''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['cp.fk_type']['checked'])) { - $labeltypeleavetoshow = ($langs->trans($typeleaves[$obj->fk_type]['code']) != $typeleaves[$obj->fk_type]['code'] ? $langs->trans($typeleaves[$obj->fk_type]['code']) : $typeleaves[$obj->fk_type]['label']); - $labeltypeleavetoshow = empty($typeleaves[$obj->fk_type]['label']) ? $langs->trans("TypeWasDisabledOrRemoved", $obj->fk_type) : $labeltypeleavetoshow; - - print ''; - print $labeltypeleavetoshow; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['duration']['checked'])) { - print ''; - $nbopenedday = num_open_day($db->jdate($obj->date_debut, 1), $db->jdate($obj->date_fin, 1), 0, 1, $obj->halfday); // user jdate(..., 1) because num_open_day need UTC dates - $totalduration += $nbopenedday; - print $nbopenedday; - //print ' '.$langs->trans('DurationDays'); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['cp.date_debut']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_debut), 'day'); - print ' ('.$langs->trans($listhalfday[$starthalfday]).')'; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['cp.date_fin']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_fin), 'day'); - print ' ('.$langs->trans($listhalfday[$endhalfday]).')'; - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Date validation - if (!empty($arrayfields['cp.date_valid']['checked'])) { // date_valid is both date_valid but also date_approval - print ''; - print dol_print_date($db->jdate($obj->date_valid), 'day'); - print ''; - if (!$i) $totalarray['nbfield']++; - } - // Date approval - if (!empty($arrayfields['cp.date_approval']['checked'])) { - print ''; - print dol_print_date($db->jdate($obj->date_approval), 'day'); - 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['cp.date_create']['checked'])) { - print ''.dol_print_date($date, 'dayhour').''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['cp.tms']['checked'])) { - print ''.dol_print_date($date_modif, 'dayhour').''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['cp.statut']['checked'])) { - print ''.$holidaystatic->getLibStatut(5).''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Action column - if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; + if (empty($typeleaves[$obj->fk_type])) { + $labeltypeleavetoshow = $langs->trans("TypeWasDisabledOrRemoved", $obj->fk_type); + } else { + $labeltypeleavetoshow = ($langs->trans($typeleaves[$obj->fk_type]['code']) != $typeleaves[$obj->fk_type]['code'] ? $langs->trans($typeleaves[$obj->fk_type]['code']) : $typeleaves[$obj->fk_type]['label']); } - print ''; + + $arraydata = array('user'=>$userstatic, 'labeltype'=>$labeltypeleavetoshow); + print $holidaystatic->getKanbanView('', $arraydata); } - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } + if ($i == (min($num, $limit) - 1)) { + print '
'; + print ''; + } + } else { + print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; + } + if (!empty($arrayfields['cp.ref']['checked'])) { + print ''; + print $holidaystatic->getNomUrl(1, 1); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['cp.fk_user']['checked'])) { + print ''.$userstatic->getNomUrl(-1, 'leave').''; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['cp.fk_validator']['checked'])) { + print ''.$approbatorstatic->getNomUrl(-1).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['cp.fk_type']['checked'])) { + if (empty($typeleaves[$obj->fk_type])) { + $labeltypeleavetoshow = $langs->trans("TypeWasDisabledOrRemoved", $obj->fk_type); + } else { + $labeltypeleavetoshow = ($langs->trans($typeleaves[$obj->fk_type]['code']) != $typeleaves[$obj->fk_type]['code'] ? $langs->trans($typeleaves[$obj->fk_type]['code']) : $typeleaves[$obj->fk_type]['label']); + } - print ''."\n"; + print ''; + print $labeltypeleavetoshow; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['duration']['checked'])) { + print ''; + $nbopenedday = num_open_day($db->jdate($obj->date_debut, 1), $db->jdate($obj->date_fin, 1), 0, 1, $obj->halfday); // user jdate(..., 1) because num_open_day need UTC dates + $totalduration += $nbopenedday; + print $nbopenedday; + //print ' '.$langs->trans('DurationDays'); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['cp.date_debut']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_debut), 'day'); + print ' ('.$langs->trans($listhalfday[$starthalfday]).')'; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['cp.date_fin']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_fin), 'day'); + print ' ('.$langs->trans($listhalfday[$endhalfday]).')'; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Date validation + if (!empty($arrayfields['cp.date_valid']['checked'])) { // date_valid is both date_valid but also date_approval + print ''; + print dol_print_date($db->jdate($obj->date_valid), 'day'); + print ''; + if (!$i) $totalarray['nbfield']++; + } + // Date approval + if (!empty($arrayfields['cp.date_approval']['checked'])) { + print ''; + print dol_print_date($db->jdate($obj->date_approval), 'day'); + 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['cp.date_create']['checked'])) { + print ''.dol_print_date($date, 'dayhour').''; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['cp.tms']['checked'])) { + print ''.dol_print_date($date_modif, 'dayhour').''; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['cp.statut']['checked'])) { + print ''.$holidaystatic->getLibStatut(5).''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print ''."\n"; + } $i++; } // Add a line for total if there is a total to show if (!empty($arrayfields['duration']['checked'])) { print ''; + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } foreach ($arrayfields as $key => $val) { if (!empty($val['checked'])) { if ($key == 'duration') { @@ -964,7 +1012,9 @@ if ($resql) { } } // status - print ''; + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } print ''; } } diff --git a/htdocs/holiday/month_report.php b/htdocs/holiday/month_report.php index a1a23715126..9b611c18852 100644 --- a/htdocs/holiday/month_report.php +++ b/htdocs/holiday/month_report.php @@ -118,16 +118,16 @@ if (empty($reshook)) { } $arrayfields = array( - 'cp.ref'=>array('label' => 'Ref', 'checked'=>1), - 'cp.fk_user'=>array('label' => 'Employee', 'checked'=>1), - 'cp.fk_type'=>array('label' => 'Type', 'checked'=>1), - 'cp.date_debut'=>array('label' => 'DateDebCP', 'checked'=>1), - 'cp.date_fin'=>array('label' => 'DateFinCP', 'checked'=>1), - 'used_days'=>array('label' => 'NbUseDaysCPShort', 'checked'=>1), - 'date_start_month'=>array('label' => 'DateStartInMonth', 'checked'=>1), - 'date_end_month'=>array('label' => 'DateEndInMonth', 'checked'=>1), - 'used_days_month'=>array('label' => 'NbUseDaysCPShortInMonth', 'checked'=>1), - 'cp.description'=>array('label' => 'DescCP', 'checked'=>1), + 'cp.ref'=>array('label' => 'Ref', 'checked'=>1, 'position'=>5), + 'cp.fk_type'=>array('label' => 'Type', 'checked'=>1, 'position'=>10), + 'cp.fk_user'=>array('label' => 'Employee', 'checked'=>1, 'position'=>20), + 'cp.date_debut'=>array('label' => 'DateDebCP', 'checked'=>1, 'position'=>30), + 'cp.date_fin'=>array('label' => 'DateFinCP', 'checked'=>1, 'position'=>32), + 'used_days'=>array('label' => 'NbUseDaysCPShort', 'checked'=>1, 'position'=>34), + 'date_start_month'=>array('label' => 'DateStartInMonth', 'checked'=>1, 'position'=>50), + 'date_end_month'=>array('label' => 'DateEndInMonth', 'checked'=>1, 'position'=>52), + 'used_days_month'=>array('label' => 'NbUseDaysCPShortInMonth', 'checked'=>1, 'position'=>54), + 'cp.description'=>array('label' => 'DescCP', 'checked'=>-1, 'position'=>800), ); @@ -149,7 +149,7 @@ $search_month = GETPOST("remonth", 'int') ?GETPOST("remonth", 'int') : date("m", $search_year = GETPOST("reyear", 'int') ?GETPOST("reyear", 'int') : date("Y", time()); $year_month = sprintf("%04d", $search_year).'-'.sprintf("%02d", $search_month); -$sql = "SELECT cp.rowid, cp.ref, cp.fk_user, cp.date_debut, cp.date_fin, cp.fk_type, cp.description, cp.halfday"; +$sql = "SELECT cp.rowid, cp.ref, cp.fk_user, cp.date_debut, cp.date_fin, cp.fk_type, cp.description, cp.halfday, cp.statut as status"; $sql .= " FROM ".MAIN_DB_PREFIX."holiday cp"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user u ON cp.fk_user = u.rowid"; $sql .= " WHERE cp.rowid > 0"; @@ -227,27 +227,27 @@ print '
'; $moreforfilter = ''; $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$selectedfields = ''; -$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 ''; +print '
'; -print ''; +print ''; + +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} // Filter: Ref if (!empty($arrayfields['cp.ref']['checked'])) { - print ''; + print ''; } // Filter: Type @@ -259,54 +259,66 @@ if (!empty($arrayfields['cp.fk_type']['checked'])) { $arraytypeleaves[$val['rowid']] = $labeltoshow; } - print ''; + print ''; +} + +// Filter: Employee +if (!empty($arrayfields['cp.fk_user']['checked'])) { + print ''; } if (!empty($arrayfields['cp.date_debut']['checked'])) { - print ''; + print ''; } if (!empty($arrayfields['cp.date_fin']['checked'])) { - print ''; + print ''; } if (!empty($arrayfields['used_days']['checked'])) { - print ''; + print ''; } if (!empty($arrayfields['date_start_month']['checked'])) { - print ''; + print ''; } if (!empty($arrayfields['date_end_month']['checked'])) { - print ''; + print ''; } if (!empty($arrayfields['used_days_month']['checked'])) { - print ''; + print ''; } // Filter: Description if (!empty($arrayfields['cp.description']['checked'])) { - print ''; } - // Action column -print ''; +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; +} print ''; print ''; +// Action column +if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} if (!empty($arrayfields['cp.ref']['checked'])) { print_liste_field_titre($arrayfields['cp.ref']['label'], $_SERVER["PHP_SELF"], 'cp.ref', '', '', '', $sortfield, $sortorder); } -if (!empty($arrayfields['cp.fk_user']['checked'])) { - print_liste_field_titre($arrayfields['cp.fk_user']['label'], $_SERVER["PHP_SELF"], 'cp.fk_user', '', '', '', $sortfield, $sortorder); -} if (!empty($arrayfields['cp.fk_type']['checked'])) { print_liste_field_titre($arrayfields['cp.fk_type']['label'], $_SERVER["PHP_SELF"], 'cp.fk_type', '', '', '', $sortfield, $sortorder); } +if (!empty($arrayfields['cp.fk_user']['checked'])) { + print_liste_field_titre($arrayfields['cp.fk_user']['label'], $_SERVER["PHP_SELF"], 'cp.fk_user', '', '', '', $sortfield, $sortorder); +} if (!empty($arrayfields['ct.label']['checked'])) { print_liste_field_titre($arrayfields['ct.label']['label'], $_SERVER["PHP_SELF"], 'ct.label', '', '', '', $sortfield, $sortorder); } @@ -331,11 +343,14 @@ if (!empty($arrayfields['used_days_month']['checked'])) { if (!empty($arrayfields['cp.description']['checked'])) { print_liste_field_titre($arrayfields['cp.description']['label'], $_SERVER["PHP_SELF"], 'cp.description', '', '', '', $sortfield, $sortorder); } -print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +// Action column +if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +} print ''; if ($num == 0) { - print ''; + print ''; } else { while ($obj = $db->fetch_object($resql)) { $user = new User($db); @@ -383,18 +398,31 @@ if ($num == 0) { // Leave request $holidaystatic->id = $obj->rowid; $holidaystatic->ref = $obj->ref; + $holidaystatic->statut = $obj->status; + $holidaystatic->status = $obj->status; + $holidaystatic->fk_user = $obj->fk_user; + $holidaystatic->fk_type = $obj->fk_type; + $holidaystatic->description = $obj->description; + $holidaystatic->halfday = $obj->halfday; + $holidaystatic->date_debut = $db->jdate($obj->date_debut); + $holidaystatic->date_fin = $db->jdate($obj->date_fin); + print ''; + // Action column + if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; + } if (!empty($arrayfields['cp.ref']['checked'])) { print ''; } - if (!empty($arrayfields['cp.fk_user']['checked'])) { - print ''; - } if (!empty($arrayfields['cp.fk_type']['checked'])) { print ''; } + if (!empty($arrayfields['cp.fk_user']['checked'])) { + print ''; + } if (!empty($arrayfields['cp.date_debut']['checked'])) { print ''; } if (!empty($arrayfields['cp.description']['checked'])) { - print ''; + print ''; + } + // Action column + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + print ''; } - - print ''; print ''; } } diff --git a/htdocs/holiday/view_log.php b/htdocs/holiday/view_log.php index 9bd55252a43..4235b7261eb 100644 --- a/htdocs/holiday/view_log.php +++ b/htdocs/holiday/view_log.php @@ -333,9 +333,8 @@ if (!empty($arrayfields['cpl.date_action']['checked'])) { if (!empty($arrayfields['cpl.fk_user_action']['checked'])) { $validator = new UserGroup($db); $excludefilter = $user->admin ? '' : 'u.rowid <> '.$user->id; - $valideurobjects = $validator->listUsersForGroup($excludefilter); + $valideurobjects = $validator->listUsersForGroup($excludefilter, 1); $valideurarray = array(); - foreach ($valideurobjects as $val) { $valideurarray[$val->id] = $val->id; } diff --git a/htdocs/hrm/admin/admin_establishment.php b/htdocs/hrm/admin/admin_establishment.php index 99212988488..59192bc5ca5 100644 --- a/htdocs/hrm/admin/admin_establishment.php +++ b/htdocs/hrm/admin/admin_establishment.php @@ -145,13 +145,12 @@ if ($result) { $establishmentstatic->label = $obj->label; $establishmentstatic->status = $obj->status; - print ''; print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; print ''; @@ -160,7 +159,7 @@ if ($result) { $i++; } } else { - print ''; + print ''; } print '
'; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; + print ''; print ''; - print ''; -} - -// Filter: Employee -if (!empty($arrayfields['cp.fk_user']['checked'])) { - print ''; - print $form->select_dolusers($search_employee, "search_employee", 1, null, 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth100'); - print ''; - print $form->selectarray('search_type', $arraytypeleaves, $search_type, 1, 0, 0, '', 0, 0, 0, '', '', 1); - print ''; + print $form->selectarray('search_type', $arraytypeleaves, $search_type, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100', 1); + print ''; + print $form->select_dolusers($search_employee, "search_employee", 1, null, 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth100'); + print ''; + print ''; print ''; - print ''; + print ''; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
'.$langs->trans('None').'
'.$langs->trans('None').'
'.$holidaystatic->getNomUrl(1, 1).''.$user->getFullName($langs).''.$arraytypeleaves[$obj->fk_type].''.$user->getFullName($langs).''.dol_print_date($db->jdate($obj->date_debut), 'day'); @@ -428,10 +456,16 @@ if ($num == 0) { print ''.num_open_day($date_start_inmonth, $date_end_inmonth, 0, 1, $halfdayinmonth).''.dolGetFirstLineOfText(dol_string_nohtmltag($obj->description, 1)).''; + print '
'; + print dolGetFirstLineOfText(dol_string_nohtmltag($obj->description, 1)); + print '
'; + print '
'.$establishmentstatic->getNomUrl(1).''.$obj->label.''.$obj->address.''.$obj->zip.''.$obj->town.''.dol_escape_htmltag($obj->label).''.dol_escape_htmltag($obj->address).''.dol_escape_htmltag($obj->zip).''.dol_escape_htmltag($obj->town).''; print $establishmentstatic->getLibStatut(5); print '
'.$langs->trans("None").'
'.$langs->trans("None").'
'; diff --git a/htdocs/hrm/class/establishment.class.php b/htdocs/hrm/class/establishment.class.php index 6a37ba1e929..05bd8d47cf8 100644 --- a/htdocs/hrm/class/establishment.class.php +++ b/htdocs/hrm/class/establishment.class.php @@ -285,7 +285,7 @@ class Establishment extends CommonObject * Load an object from database * * @param int $id Id of record to load - * @return int <0 if KO, >0 if OK + * @return int <0 if KO, >=0 if OK */ public function fetch($id) { @@ -299,21 +299,24 @@ class Establishment extends CommonObject $result = $this->db->query($sql); if ($result) { $obj = $this->db->fetch_object($result); + if ($obj) { + $this->id = $obj->rowid; + $this->ref = $obj->ref; + $this->label = $obj->label; + $this->address = $obj->address; + $this->zip = $obj->zip; + $this->town = $obj->town; + $this->status = $obj->status; + $this->entity = $obj->entity; - $this->id = $obj->rowid; - $this->ref = $obj->ref; - $this->label = $obj->label; - $this->address = $obj->address; - $this->zip = $obj->zip; - $this->town = $obj->town; - $this->status = $obj->status; - $this->entity = $obj->entity; + $this->country_id = $obj->country_id; + $this->country_code = $obj->country_code; + $this->country = $obj->country; - $this->country_id = $obj->country_id; - $this->country_code = $obj->country_code; - $this->country = $obj->country; - - return 1; + return 1; + } else { + return 0; + } } else { $this->error = $this->db->lasterror(); return -1; diff --git a/htdocs/hrm/class/evaluation.class.php b/htdocs/hrm/class/evaluation.class.php index b35a23a6389..48cb8cdd0c3 100644 --- a/htdocs/hrm/class/evaluation.class.php +++ b/htdocs/hrm/class/evaluation.class.php @@ -118,7 +118,7 @@ class Evaluation extends CommonObject 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), 'status' => array('type'=>'smallint', 'label'=>'Status', 'enabled'=>'1', 'position'=>1000, 'notnull'=>1, 'default'=>0, 'visible'=>5, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Draft', '1'=>'Validated', '6' => 'Closed'),), 'date_eval' => array('type'=>'date', 'label'=>'DateEval', 'enabled'=>'1', 'position'=>502, 'notnull'=>1, 'visible'=>1,), - 'fk_user' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'User', 'enabled'=>'1', 'position'=>504, 'notnull'=>1, 'visible'=>1,), + 'fk_user' => array('type'=>'integer:User:user/class/user.class.php:0', 'label'=>'User', 'enabled'=>'1', 'position'=>504, 'notnull'=>1, 'visible'=>1,), 'fk_job' => array('type'=>'integer:Job:/hrm/class/job.class.php', 'label'=>'JobPosition', 'enabled'=>'1', 'position'=>505, 'notnull'=>1, 'visible'=>1,), ); public $rowid; @@ -182,7 +182,7 @@ class Evaluation extends CommonObject */ public function __construct(DoliDB $db) { - global $conf, $langs; + global $conf, $langs, $user; $this->db = $db; @@ -193,6 +193,10 @@ class Evaluation extends CommonObject $this->fields['entity']['enabled'] = 0; } + if (empty($user->rights->hrm->evaluation->readall)) { + $this->fields['fk_user']['type'].= ':rowid IN('.$this->db->sanitize(implode(", ", $user->getAllChildIds(1))).')'; + } + $this->date_eval = dol_now(); // Unset fields that are disabled @@ -400,7 +404,7 @@ class Evaluation 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'; } @@ -849,7 +853,7 @@ class Evaluation extends CommonObject $this->labelStatus[self::STATUS_CLOSED] = $langs->transnoentitiesnoconv('Closed'); $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft'); $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Validated'); - $this->labelStatus[self::STATUS_CLOSED] = $langs->transnoentitiesnoconv('Closed'); + $this->labelStatusShort[self::STATUS_CLOSED] = $langs->transnoentitiesnoconv('Closed'); } $statusType = 'status'.$status; @@ -919,8 +923,8 @@ class Evaluation extends CommonObject $result = $objectline->fetchAll('ASC', '', 0, 0, array('customsql'=>'fk_evaluation = '.$this->id)); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; @@ -1051,4 +1055,40 @@ class Evaluation extends CommonObject return $error; } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $selected, $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + $return .= ''; + if (property_exists($this, 'fk_user') && !(empty($this->fk_user))) { + $return .= '
'.$langs->trans("Employee").' : '; + $return .= ''.$this->fk_user.''; + } + if (property_exists($this, 'fk_job') && !(empty($this->fk_job))) { + $return .= '
'.$langs->trans("Job").' : '; + $return .= ''.$this->fk_job.''; + } + + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= ''; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/hrm/class/evaluationdet.class.php b/htdocs/hrm/class/evaluationdet.class.php index f9bbde51912..50d2fac8821 100644 --- a/htdocs/hrm/class/evaluationdet.class.php +++ b/htdocs/hrm/class/evaluationdet.class.php @@ -373,7 +373,7 @@ class Evaluationline 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'; } @@ -561,7 +561,8 @@ class Evaluationline extends CommonObject $sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'evaluationline/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (!$resql) { - $error++; $this->error = $this->db->lasterror(); + $error++; + $this->error = $this->db->lasterror(); } // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments @@ -891,8 +892,8 @@ class Evaluationline extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_evaluationdet = '.$this->id)); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; diff --git a/htdocs/hrm/class/job.class.php b/htdocs/hrm/class/job.class.php index 117878c10c9..b0a1d263b65 100644 --- a/htdocs/hrm/class/job.class.php +++ b/htdocs/hrm/class/job.class.php @@ -374,7 +374,7 @@ class Job 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'; } @@ -600,30 +600,27 @@ class Job extends CommonObject } /** - * Get last job for user + * Get the last occupied position for a user * - * @param int $fk_user id of user we need to get last job - * @return mixed|string|null + * @param int $fk_user Id of user we need to get last job + * @return Position|string Last occupied position */ public function getLastJobForUser($fk_user) { - global $db; - - $j = new Job($db); - $Tab = $j->getForUser($fk_user); + $Tab = $this->getForUser($fk_user); if (empty($Tab)) return ''; - $job = array_shift($Tab); + $lastpos = array_shift($Tab); - return $job; + return $lastpos; } /** - * Get jobs for user + * Get array of occupied positions for a user * - * @param int $userid id of user we need to get job list - * @return array of jobs + * @param int $userid Id of user we need to get job list + * @return Position[] Array of occupied positions */ public function getForUser($userid) { @@ -925,8 +922,8 @@ class Job extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_job = '.$this->id)); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; @@ -1057,6 +1054,39 @@ class Job extends CommonObject return $error; } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $selected, $langs; + + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(0) : $this->ref).''; + $return .= ''; + /*if (property_exists($this, 'deplacement')) { + $return .= '
'.$langs->trans("Type").''; + $return .= ' : '.$this->fields['deplacement']['arrayofkeyval'][$this->deplacement].''; + }*/ + if (property_exists($this, 'description') && !(empty($this->description))) { + //$return .= '
'.$langs->trans("Description").' : '; + $return .= '
'.(strlen($this->description) > 30 ? dol_substr($this->description, 0, 25).'...' : $this->description).''; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/hrm/class/position.class.php b/htdocs/hrm/class/position.class.php index 5d0c04a4f47..fe394ea5e8a 100644 --- a/htdocs/hrm/class/position.class.php +++ b/htdocs/hrm/class/position.class.php @@ -385,7 +385,7 @@ class Position 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'; } @@ -395,10 +395,10 @@ class Position extends CommonObject foreach ($filter as $key => $value) { if ($key == 't.rowid') { $sqlwhere[] = $key . '=' . $value; - } elseif (in_array($this->fields[$key]['type'], array('date', 'datetime', 'timestamp'))) { - $sqlwhere[] = $key . ' = \'' . $this->db->idate($value) . '\''; } elseif ($key == 'customsql') { $sqlwhere[] = $value; + } elseif (in_array($this->fields[$key]['type'], array('date', 'datetime', 'timestamp'))) { + $sqlwhere[] = $key . ' = \'' . $this->db->idate($value) . '\''; } elseif (strpos($value, '%') === false) { $sqlwhere[] = $key . ' IN (' . $this->db->sanitize($this->db->escape($value)) . ')'; } else { @@ -971,8 +971,8 @@ class Position extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql' => 'fk_position = ' . $this->id)); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; @@ -1036,6 +1036,8 @@ class Position extends CommonObject } /** + * getForUser + * * @param int $userid id of user we need to get position list * @return array|int of positions of user with for each of them the job fetched into that array */ @@ -1049,7 +1051,7 @@ class Position extends CommonObject } /** - * Create a document onto disk according to template module. + * Create a document onto disk according to template module. * * @param string $modele Force template to use ('' to not force) * @param Translate $outputlangs objet lang a utiliser pour traduction @@ -1116,6 +1118,41 @@ class Position extends CommonObject return $error; } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '') + { + global $selected, $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + $return .= ''; + if (property_exists($this, 'fk_user') && !(empty($this->fk_user))) { + $return .= '
'.$langs->trans("Employee").' : '; + $return .= ''.$this->fk_user.''; + } + if (property_exists($this, 'fk_job') && !(empty($this->fk_job))) { + $return .= '
'.$langs->trans("Job").' : '; + $return .= ''.$this->fk_job.''; + } + if (property_exists($this, 'date_start') && property_exists($this, 'date_end')) { + $return .= '
'.dol_print_date($this->db->jdate($this->date_start), 'day').''; + $return .= ' - '.dol_print_date($this->db->jdate($this->date_end), 'day').'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/hrm/class/skill.class.php b/htdocs/hrm/class/skill.class.php index 2c86c5dca56..8b7b6910f2b 100644 --- a/htdocs/hrm/class/skill.class.php +++ b/htdocs/hrm/class/skill.class.php @@ -443,7 +443,7 @@ class Skill 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'; } @@ -521,7 +521,7 @@ class Skill extends CommonObject */ public function delete(User $user, $notrigger = false) { - return $this->deleteCommon($user, $notrigger);; + return $this->deleteCommon($user, $notrigger); } /** @@ -965,8 +965,8 @@ class Skill extends CommonObject $result = $objectline->fetchAll('ASC', 'rankorder', 0, 0, array('customsql'=>'fk_skill = '.$this->id)); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; @@ -1113,4 +1113,36 @@ class Skill extends CommonObject } return $result; } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $selected, $langs; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).''; + $return .= ''; + if (property_exists($this, 'skill_type')) { + $return .= '
'.$langs->trans("Type").''; + $return .= ' : '.$this->fields['skill_type']['arrayofkeyval'][$this->skill_type].''; + } + if (property_exists($this, 'description')) { + $return .= '
'.$langs->trans("Description").' : '; + $return .= '
'.(strlen($this->description) > 30 ? dol_substr($this->description, 0, 25).'...' : $this->description).''; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/hrm/class/skilldet.class.php b/htdocs/hrm/class/skilldet.class.php index 4dface42230..3db74d26da1 100644 --- a/htdocs/hrm/class/skilldet.class.php +++ b/htdocs/hrm/class/skilldet.class.php @@ -366,7 +366,7 @@ class Skilldet 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'; } diff --git a/htdocs/hrm/class/skillrank.class.php b/htdocs/hrm/class/skillrank.class.php index 6db80642bab..a08a647ca03 100644 --- a/htdocs/hrm/class/skillrank.class.php +++ b/htdocs/hrm/class/skillrank.class.php @@ -405,7 +405,7 @@ class SkillRank 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'; } @@ -919,8 +919,8 @@ class SkillRank extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_skillrank = '.((int) $this->id))); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; diff --git a/htdocs/hrm/compare.php b/htdocs/hrm/compare.php index 686d5820695..6365dd51d25 100644 --- a/htdocs/hrm/compare.php +++ b/htdocs/hrm/compare.php @@ -28,9 +28,6 @@ * 2- the central part displays the skills. display of the maximum score for this group and the number of occurrences. * * 3- the right part displays the members of group 2 or the job to be compared - * - * - * */ @@ -48,6 +45,7 @@ require_once DOL_DOCUMENT_ROOT . '/hrm/lib/hrm.lib.php'; // Load translation files required by the page $langs->load('hrm'); +$job = new Job($db); // Permissions $permissiontoread = $user->rights->hrm->evaluation->read || $user->rights->hrm->compare_advance->read; @@ -61,8 +59,8 @@ if (!$permissiontoread || ($action === 'create' && !$permissiontoadd)) accessfor * View */ -$css = array(); -$css[] = '/hrm/css/style.css'; +$css = array('/hrm/css/style.css'); + llxHeader('', $langs->trans('SkillComparison'), '', '', 0, 0, '', $css); $head = array(); @@ -74,8 +72,6 @@ $head[$h][2] = 'compare'; print dol_get_fiche_head($head, 'compare', '', 1); -//$PDOdb = new TPDOdb; -$form = new Form($db); ?> diff --git a/htdocs/install/index.php b/htdocs/install/index.php index a7ce50c819f..6810e3c509f 100644 --- a/htdocs/install/index.php +++ b/htdocs/install/index.php @@ -44,7 +44,7 @@ $langs->load("admin"); * View */ -$formadmin = new FormAdmin(''); // Note: $db does not exist yet but we don't need it, so we put ''. +$formadmin = new FormAdmin(null); // Note: $db does not exist yet but we don't need it, so we put ''. pHeader("", "check"); // Next step = check diff --git a/htdocs/install/install.forced.sample.php b/htdocs/install/install.forced.sample.php index 98f102ddea0..1e986e4a446 100644 --- a/htdocs/install/install.forced.sample.php +++ b/htdocs/install/install.forced.sample.php @@ -15,59 +15,59 @@ * along with this program. If not, see . */ -/** @var bool Hide PHP informations */ +/** @var boolean $force_install_nophpinfo Hide PHP informations */ $force_install_nophpinfo = true; -/** @var int 1 = Lock and hide environment variables, 2 = Lock all set variables */ +/** @var int $force_install_noedit 1 = Lock and hide environment variables, 2 = Lock all set variables */ $force_install_noedit = 2; -/** @var string Information message */ +/** @var string $force_install_message Information message */ $force_install_message = 'Welcome to your Dolibarr install'; -/** @var string Data root absolute path (documents folder) */ +/** @var string $force_install_main_data_root Data root absolute path (documents folder) */ $force_install_main_data_root = null; -/** @var bool Force HTTPS */ +/** @var boolean $force_install_mainforcehttps Force HTTPS */ $force_install_mainforcehttps = true; -/** @var string Database name */ +/** @var string $force_install_database Database name */ $force_install_database = 'dolibarr'; -/** @var string Database driver (mysql|mysqli|pgsql|mssql|sqlite|sqlite3) */ +/** @var string $force_install_type Database driver (mysql|mysqli|pgsql|mssql|sqlite|sqlite3) */ $force_install_type = 'mysqli'; -/** @var string Database server host */ +/** @var string $force_install_dbserver Database server host */ $force_install_dbserver = 'localhost'; -/** @var int Database server port */ +/** @var int $force_install_port Database server port */ $force_install_port = 3306; -/** @var string Database tables prefix */ +/** @var string $force_install_prefix Database tables prefix */ $force_install_prefix = 'llx_'; -/** @var bool Force database creation */ +/** @var bool $force_install_createdatabase Force database creation */ $force_install_createdatabase = true; -/** @var string Database username */ +/** @var string $force_install_databaselogin Database username */ $force_install_databaselogin = 'root'; -/** @var string Database password */ +/** @var string $force_install_databasepass Database password */ $force_install_databasepass = ''; -/** @var bool Force database user creation */ +/** @var bool $force_install_createuser Force database user creation */ $force_install_createuser = false; -/** @var string Database root username */ +/** @var string $force_install_databaserootlogin Database root username */ $force_install_databaserootlogin = 'root'; -/** @var string Database root password */ +/** @var string $force_install_databaserootpass Database root password */ $force_install_databaserootpass = ''; -/** @var string Dolibarr super-administrator username */ +/** @var string $force_install_dolibarrlogin Dolibarr super-administrator username */ $force_install_dolibarrlogin = 'admin'; -/** @var bool Force install locking */ +/** @var bool $force_install_lockinstall Force install locking */ $force_install_lockinstall = true; -/** @var string Enable module(s) (Comma separated class names list) */ +/** @var string $force_install_module Enable module(s) (Comma separated class names list) */ $force_install_module = 'modSociete,modFournisseur,modFacture'; diff --git a/htdocs/install/lib/repair.lib.php b/htdocs/install/lib/repair.lib.php index aea82107d29..c7c45dff053 100644 --- a/htdocs/install/lib/repair.lib.php +++ b/htdocs/install/lib/repair.lib.php @@ -125,7 +125,7 @@ function checkLinkedElements($sourcetype, $targettype) /** * Clean data into ecm_directories table * - * @return void + * @return int <0 if KO, >0 if OK */ function clean_data_ecm_directories() { @@ -145,12 +145,14 @@ function clean_data_ecm_directories() $resqlupdate = $db->query($sqlupdate); if (!$resqlupdate) { dol_print_error($db, 'Failed to update'); + return -1; } } } } else { dol_print_error($db, 'Failed to run request'); + return -1; } - return; + return 1; } diff --git a/htdocs/install/mysql/data/llx_10_c_regions.sql b/htdocs/install/mysql/data/llx_10_c_regions.sql index 52a1a3bbbb6..f86fbe069b8 100644 --- a/htdocs/install/mysql/data/llx_10_c_regions.sql +++ b/htdocs/install/mysql/data/llx_10_c_regions.sql @@ -78,6 +78,7 @@ -- Portugal -- Romania -> for Departmements -- San Salvador +-- Slovakia -- Slovenia -- Spain -- Switzerland/Suisse -> for Departmements/Cantons @@ -450,6 +451,13 @@ INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 8 INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 86, 8603, NULL, NULL, 'Occidental'); +-- Slovakia Regions (rowid country=201) +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 201, '20101', 'SK01', NULL, 'Bratislava Region'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 201, '20102', 'SK02', NULL, 'Western Slovakia'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 201, '20103', 'SK03', NULL, 'Central Slovakia'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 201, '20104', 'SK04', NULL, 'Eastern Slovakia'); + + -- Slovenia Regions (rowid country=202) INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 202, '20203', 'SI03', NULL, 'East Slovenia'); INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 202, '20204', 'SI04', NULL, 'West Slovenia'); diff --git a/htdocs/install/mysql/data/llx_20_c_departements.sql b/htdocs/install/mysql/data/llx_20_c_departements.sql index 04fea66c8ed..fc70051a1f8 100644 --- a/htdocs/install/mysql/data/llx_20_c_departements.sql +++ b/htdocs/install/mysql/data/llx_20_c_departements.sql @@ -1516,124 +1516,124 @@ INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc -- Provinces GB (id country=7) -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('701', 701, NULL, 0,NULL, 'Bedfordshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('702', 701, NULL, 0,NULL, 'Berkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('703', 701, NULL, 0,NULL, 'Bristol, City of', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('704', 701, NULL, 0,NULL, 'Buckinghamshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('705', 701, NULL, 0,NULL, 'Cambridgeshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('706', 701, NULL, 0,NULL, 'Cheshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('707', 701, NULL, 0,NULL, 'Cleveland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('708', 701, NULL, 0,NULL, 'Cornwall', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('709', 701, NULL, 0,NULL, 'Cumberland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('710', 701, NULL, 0,NULL, 'Cumbria', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('711', 701, NULL, 0,NULL, 'Derbyshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('712', 701, NULL, 0,NULL, 'Devon', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('713', 701, NULL, 0,NULL, 'Dorset', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('714', 701, NULL, 0,NULL, 'Co. Durham', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('715', 701, NULL, 0,NULL, 'East Riding of Yorkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('716', 701, NULL, 0,NULL, 'East Sussex', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('717', 701, NULL, 0,NULL, 'Essex', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('718', 701, NULL, 0,NULL, 'Gloucestershire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('719', 701, NULL, 0,NULL, 'Greater Manchester', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('720', 701, NULL, 0,NULL, 'Hampshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('721', 701, NULL, 0,NULL, 'Hertfordshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('722', 701, NULL, 0,NULL, 'Hereford and Worcester', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('723', 701, NULL, 0,NULL, 'Herefordshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('724', 701, NULL, 0,NULL, 'Huntingdonshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('725', 701, NULL, 0,NULL, 'Isle of Man', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('726', 701, NULL, 0,NULL, 'Isle of Wight', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('727', 701, NULL, 0,NULL, 'Jersey', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('728', 701, NULL, 0,NULL, 'Kent', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('729', 701, NULL, 0,NULL, 'Lancashire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('730', 701, NULL, 0,NULL, 'Leicestershire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('731', 701, NULL, 0,NULL, 'Lincolnshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('732', 701, NULL, 0,NULL, 'London - City of London', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('733', 701, NULL, 0,NULL, 'Merseyside', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('734', 701, NULL, 0,NULL, 'Middlesex', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('735', 701, NULL, 0,NULL, 'Norfolk', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('736', 701, NULL, 0,NULL, 'North Yorkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('737', 701, NULL, 0,NULL, 'North Riding of Yorkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('738', 701, NULL, 0,NULL, 'Northamptonshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('739', 701, NULL, 0,NULL, 'Northumberland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('740', 701, NULL, 0,NULL, 'Nottinghamshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('741', 701, NULL, 0,NULL, 'Oxfordshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('742', 701, NULL, 0,NULL, 'Rutland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('743', 701, NULL, 0,NULL, 'Shropshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('744', 701, NULL, 0,NULL, 'Somerset', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('745', 701, NULL, 0,NULL, 'Staffordshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('746', 701, NULL, 0,NULL, 'Suffolk', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('747', 701, NULL, 0,NULL, 'Surrey', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('748', 701, NULL, 0,NULL, 'Sussex', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('749', 701, NULL, 0,NULL, 'Tyne and Wear', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('750', 701, NULL, 0,NULL, 'Warwickshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('751', 701, NULL, 0,NULL, 'West Midlands', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('752', 701, NULL, 0,NULL, 'West Sussex', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('753', 701, NULL, 0,NULL, 'West Yorkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('754', 701, NULL, 0,NULL, 'West Riding of Yorkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('755', 701, NULL, 0,NULL, 'Wiltshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('756', 701, NULL, 0,NULL, 'Worcestershire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('757', 701, NULL, 0,NULL, 'Yorkshire', 1); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('701', 701, NULL, 0,NULL, 'Bedfordshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('702', 701, NULL, 0,NULL, 'Berkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('703', 701, NULL, 0,NULL, 'Bristol, City of'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('704', 701, NULL, 0,NULL, 'Buckinghamshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('705', 701, NULL, 0,NULL, 'Cambridgeshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('706', 701, NULL, 0,NULL, 'Cheshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('707', 701, NULL, 0,NULL, 'Cleveland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('708', 701, NULL, 0,NULL, 'Cornwall'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('709', 701, NULL, 0,NULL, 'Cumberland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('710', 701, NULL, 0,NULL, 'Cumbria'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('711', 701, NULL, 0,NULL, 'Derbyshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('712', 701, NULL, 0,NULL, 'Devon'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('713', 701, NULL, 0,NULL, 'Dorset'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('714', 701, NULL, 0,NULL, 'Co. Durham'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('715', 701, NULL, 0,NULL, 'East Riding of Yorkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('716', 701, NULL, 0,NULL, 'East Sussex'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('717', 701, NULL, 0,NULL, 'Essex'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('718', 701, NULL, 0,NULL, 'Gloucestershire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('719', 701, NULL, 0,NULL, 'Greater Manchester'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('720', 701, NULL, 0,NULL, 'Hampshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('721', 701, NULL, 0,NULL, 'Hertfordshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('722', 701, NULL, 0,NULL, 'Hereford and Worcester'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('723', 701, NULL, 0,NULL, 'Herefordshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('724', 701, NULL, 0,NULL, 'Huntingdonshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('725', 701, NULL, 0,NULL, 'Isle of Man'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('726', 701, NULL, 0,NULL, 'Isle of Wight'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('727', 701, NULL, 0,NULL, 'Jersey'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('728', 701, NULL, 0,NULL, 'Kent'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('729', 701, NULL, 0,NULL, 'Lancashire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('730', 701, NULL, 0,NULL, 'Leicestershire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('731', 701, NULL, 0,NULL, 'Lincolnshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('732', 701, NULL, 0,NULL, 'London - City of London'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('733', 701, NULL, 0,NULL, 'Merseyside'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('734', 701, NULL, 0,NULL, 'Middlesex'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('735', 701, NULL, 0,NULL, 'Norfolk'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('736', 701, NULL, 0,NULL, 'North Yorkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('737', 701, NULL, 0,NULL, 'North Riding of Yorkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('738', 701, NULL, 0,NULL, 'Northamptonshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('739', 701, NULL, 0,NULL, 'Northumberland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('740', 701, NULL, 0,NULL, 'Nottinghamshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('741', 701, NULL, 0,NULL, 'Oxfordshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('742', 701, NULL, 0,NULL, 'Rutland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('743', 701, NULL, 0,NULL, 'Shropshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('744', 701, NULL, 0,NULL, 'Somerset'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('745', 701, NULL, 0,NULL, 'Staffordshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('746', 701, NULL, 0,NULL, 'Suffolk'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('747', 701, NULL, 0,NULL, 'Surrey'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('748', 701, NULL, 0,NULL, 'Sussex'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('749', 701, NULL, 0,NULL, 'Tyne and Wear'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('750', 701, NULL, 0,NULL, 'Warwickshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('751', 701, NULL, 0,NULL, 'West Midlands'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('752', 701, NULL, 0,NULL, 'West Sussex'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('753', 701, NULL, 0,NULL, 'West Yorkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('754', 701, NULL, 0,NULL, 'West Riding of Yorkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('755', 701, NULL, 0,NULL, 'Wiltshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('756', 701, NULL, 0,NULL, 'Worcestershire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('757', 701, NULL, 0,NULL, 'Yorkshire'); -- Wales -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('758', 702, NULL, 0,NULL, 'Anglesey', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('759', 702, NULL, 0,NULL, 'Breconshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('760', 702, NULL, 0,NULL, 'Caernarvonshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('761', 702, NULL, 0,NULL, 'Cardiganshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('762', 702, NULL, 0,NULL, 'Carmarthenshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('763', 702, NULL, 0,NULL, 'Ceredigion', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('764', 702, NULL, 0,NULL, 'Denbighshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('765', 702, NULL, 0,NULL, 'Flintshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('766', 702, NULL, 0,NULL, 'Glamorgan', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('767', 702, NULL, 0,NULL, 'Gwent', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('768', 702, NULL, 0,NULL, 'Gwynedd', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('769', 702, NULL, 0,NULL, 'Merionethshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('770', 702, NULL, 0,NULL, 'Monmouthshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('771', 702, NULL, 0,NULL, 'Mid Glamorgan', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('772', 702, NULL, 0,NULL, 'Montgomeryshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('773', 702, NULL, 0,NULL, 'Pembrokeshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('774', 702, NULL, 0,NULL, 'Powys', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('775', 702, NULL, 0,NULL, 'Radnorshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('776', 702, NULL, 0,NULL, 'South Glamorgan', 1); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('758', 702, NULL, 0,NULL, 'Anglesey'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('759', 702, NULL, 0,NULL, 'Breconshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('760', 702, NULL, 0,NULL, 'Caernarvonshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('761', 702, NULL, 0,NULL, 'Cardiganshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('762', 702, NULL, 0,NULL, 'Carmarthenshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('763', 702, NULL, 0,NULL, 'Ceredigion'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('764', 702, NULL, 0,NULL, 'Denbighshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('765', 702, NULL, 0,NULL, 'Flintshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('766', 702, NULL, 0,NULL, 'Glamorgan'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('767', 702, NULL, 0,NULL, 'Gwent'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('768', 702, NULL, 0,NULL, 'Gwynedd'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('769', 702, NULL, 0,NULL, 'Merionethshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('770', 702, NULL, 0,NULL, 'Monmouthshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('771', 702, NULL, 0,NULL, 'Mid Glamorgan'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('772', 702, NULL, 0,NULL, 'Montgomeryshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('773', 702, NULL, 0,NULL, 'Pembrokeshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('774', 702, NULL, 0,NULL, 'Powys'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('775', 702, NULL, 0,NULL, 'Radnorshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('776', 702, NULL, 0,NULL, 'South Glamorgan'); -- Scotland -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('777', 703, NULL, 0,NULL, 'Aberdeen, City of', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('778', 703, NULL, 0,NULL, 'Angus', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('779', 703, NULL, 0,NULL, 'Argyll', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('780', 703, NULL, 0,NULL, 'Ayrshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('781', 703, NULL, 0,NULL, 'Banffshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('782', 703, NULL, 0,NULL, 'Berwickshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('783', 703, NULL, 0,NULL, 'Bute', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('784', 703, NULL, 0,NULL, 'Caithness', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('785', 703, NULL, 0,NULL, 'Clackmannanshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('786', 703, NULL, 0,NULL, 'Dumfriesshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('787', 703, NULL, 0,NULL, 'Dumbartonshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('788', 703, NULL, 0,NULL, 'Dundee, City of', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('789', 703, NULL, 0,NULL, 'East Lothian', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('790', 703, NULL, 0,NULL, 'Fife', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('791', 703, NULL, 0,NULL, 'Inverness', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('792', 703, NULL, 0,NULL, 'Kincardineshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('793', 703, NULL, 0,NULL, 'Kinross-shire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('794', 703, NULL, 0,NULL, 'Kirkcudbrightshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('795', 703, NULL, 0,NULL, 'Lanarkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('796', 703, NULL, 0,NULL, 'Midlothian', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('797', 703, NULL, 0,NULL, 'Morayshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('798', 703, NULL, 0,NULL, 'Nairnshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('799', 703, NULL, 0,NULL, 'Orkney', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('800', 703, NULL, 0,NULL, 'Peebleshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('801', 703, NULL, 0,NULL, 'Perthshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('802', 703, NULL, 0,NULL, 'Renfrewshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('803', 703, NULL, 0,NULL, 'Ross & Cromarty', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('804', 703, NULL, 0,NULL, 'Roxburghshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('805', 703, NULL, 0,NULL, 'Selkirkshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('806', 703, NULL, 0,NULL, 'Shetland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('807', 703, NULL, 0,NULL, 'Stirlingshire', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('808', 703, NULL, 0,NULL, 'Sutherland', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('809', 703, NULL, 0,NULL, 'West Lothian', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('810', 703, NULL, 0,NULL, 'Wigtownshire', 1); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('777', 703, NULL, 0,NULL, 'Aberdeen, City of'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('778', 703, NULL, 0,NULL, 'Angus'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('779', 703, NULL, 0,NULL, 'Argyll'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('780', 703, NULL, 0,NULL, 'Ayrshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('781', 703, NULL, 0,NULL, 'Banffshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('782', 703, NULL, 0,NULL, 'Berwickshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('783', 703, NULL, 0,NULL, 'Bute'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('784', 703, NULL, 0,NULL, 'Caithness'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('785', 703, NULL, 0,NULL, 'Clackmannanshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('786', 703, NULL, 0,NULL, 'Dumfriesshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('787', 703, NULL, 0,NULL, 'Dumbartonshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('788', 703, NULL, 0,NULL, 'Dundee, City of'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('789', 703, NULL, 0,NULL, 'East Lothian'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('790', 703, NULL, 0,NULL, 'Fife'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('791', 703, NULL, 0,NULL, 'Inverness'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('792', 703, NULL, 0,NULL, 'Kincardineshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('793', 703, NULL, 0,NULL, 'Kinross-shire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('794', 703, NULL, 0,NULL, 'Kirkcudbrightshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('795', 703, NULL, 0,NULL, 'Lanarkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('796', 703, NULL, 0,NULL, 'Midlothian'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('797', 703, NULL, 0,NULL, 'Morayshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('798', 703, NULL, 0,NULL, 'Nairnshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('799', 703, NULL, 0,NULL, 'Orkney'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('800', 703, NULL, 0,NULL, 'Peebleshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('801', 703, NULL, 0,NULL, 'Perthshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('802', 703, NULL, 0,NULL, 'Renfrewshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('803', 703, NULL, 0,NULL, 'Ross & Cromarty'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('804', 703, NULL, 0,NULL, 'Roxburghshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('805', 703, NULL, 0,NULL, 'Selkirkshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('806', 703, NULL, 0,NULL, 'Shetland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('807', 703, NULL, 0,NULL, 'Stirlingshire'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('808', 703, NULL, 0,NULL, 'Sutherland'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('809', 703, NULL, 0,NULL, 'West Lothian'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('810', 703, NULL, 0,NULL, 'Wigtownshire'); -- Northern Ireland -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('811', 704, NULL, 0,NULL, 'Antrim', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('812', 704, NULL, 0,NULL, 'Armagh', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('813', 704, NULL, 0,NULL, 'Co. Down', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('814', 704, NULL, 0,NULL, 'Co. Fermanagh', 1); -INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('815', 704, NULL, 0,NULL, 'Co. Londonderry', 1); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('811', 704, NULL, 0,NULL, 'Antrim'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('812', 704, NULL, 0,NULL, 'Armagh'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('813', 704, NULL, 0,NULL, 'Co. Down'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('814', 704, NULL, 0,NULL, 'Co. Fermanagh'); +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('815', 704, NULL, 0,NULL, 'Co. Londonderry'); -- Provinces India (id country=117) diff --git a/htdocs/install/mysql/data/llx_accounting_account_lu.sql b/htdocs/install/mysql/data/llx_accounting_account_lu.sql index 831ac6b8f08..06d4def6b51 100644 --- a/htdocs/install/mysql/data/llx_accounting_account_lu.sql +++ b/htdocs/install/mysql/data/llx_accounting_account_lu.sql @@ -207,7 +207,7 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 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__, 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'); @@ -237,7 +237,7 @@ INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, acc INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 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__, 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'); diff --git a/htdocs/install/mysql/data/llx_c_action_trigger.sql b/htdocs/install/mysql/data/llx_c_action_trigger.sql index 9aa28c116c8..98fa2523a3f 100644 --- a/htdocs/install/mysql/data/llx_c_action_trigger.sql +++ b/htdocs/install/mysql/data/llx_c_action_trigger.sql @@ -43,7 +43,9 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_MODIFY','Customer proposal modified','Executed when a customer proposal is modified','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_SIGNED_WEB','Customer proposal closed signed on portal','Executed when a customer proposal is closed signed on portal','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_REFUSED_WEB','Customer proposal closed refused on portal','Executed when a customer proposal is closed refused on portal','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4); @@ -124,6 +126,7 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_MODIFY','Project modified','Executed when a project is modified','project',142); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',143); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_SENTBYMAIL','Project sent by mail','Executed when a project is sent by email','project',144); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_CLOSE','Project closed','Executed when a project is closed','project',145); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_CREATE','Ticket created','Executed when a ticket is created','ticket',161); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_MODIFY','Ticket modified','Executed when a ticket is modified','ticket',163); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_ASSIGNED','Ticket assigned','Executed when a ticket is modified','ticket',164); diff --git a/htdocs/install/mysql/data/llx_c_forme_juridique.sql b/htdocs/install/mysql/data/llx_c_forme_juridique.sql index c35824fa235..af625035804 100644 --- a/htdocs/install/mysql/data/llx_c_forme_juridique.sql +++ b/htdocs/install/mysql/data/llx_c_forme_juridique.sql @@ -332,6 +332,7 @@ INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (140, INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (140, '14006', 'Société anonyme (SA)', 1); INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (140, '14007', 'Société coopérative (SC)', 1); INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (140, '14008', 'Société européenne (SE)', 1); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (140, '14009', 'Société à responsabilité limitée simplifiée (SARL-S)', 1); -- Romania INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (188, '18801', 'AFJ - Alte forme juridice', 1); 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 a8e9ac3be80..772a9ad612f 100644 --- a/htdocs/install/mysql/data/llx_c_hrm_public_holiday.sql +++ b/htdocs/install/mysql/data/llx_c_hrm_public_holiday.sql @@ -7,6 +7,8 @@ -- Copyright (C) 2007 Patrick Raguin -- Copyright (C) 2019 Markus Welters -- Copyright (C) 2022 Joachim Kueter +-- Copyright (C) 2022 Nick Fragoulis + -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -104,6 +106,20 @@ INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, m INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('AT-SAINTSTEFAN', 0, 41, '', 0, 12, 26, 1); INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('AT-Silvester', 0, 41, '', 0, 12, 31, 1); +-- Greece (102) +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΠΡΩΤΟΧΡΟΝΙΑ', 0, 102, '', 0, 1, 1, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΘΕΟΦΑΝΕΙΑ', 0, 102, '', 0, 1, 6, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-25Η ΜΑΡΤΙΟΥ', 0, 102, '', 0, 3, 25, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΠΡΩΤΟΜΑΓΙΑ', 0, 102, '', 0, 5, 1, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΚΑΘΑΡΑ ΔΕΥΤΕΡΑ', 0, 102, 'ΚΑΘΑΡΑ_ΔΕΥΤΕΡΑ', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΜΕΓΑΛΗ ΠΑΡΑΣΚΕΥΗ', 0, 102, 'ΜΕΓΑΛΗ_ΠΑΡΑΣΚΕΥΗ', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΔΕΥΤΕΡΑ ΤΟΥ ΠΑΣΧΑ', 0, 102, 'ΔΕΥΤΕΡΑ_ΤΟΥ_ΠΑΣΧΑ', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΤΟΥ ΑΓΙΟΥ ΠΝΕΥΜΑΤΟΣ', 0, 102, 'ΤΟΥ_ΑΓΙΟΥ_ΠΝΕΥΜΑΤΟΣ', 0, 0, 0, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΚΟΙΜΗΣΗ ΤΗΣ ΘΕΟΤΟΚΟΥ', 0, 102, '', 0, 8, 15, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-28Η ΟΚΤΩΒΡΙΟΥ', 0, 102, '', 0, 10, 28, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΧΡΙΣΤΟΥΓΕΝΝΑ', 0, 102, '', 0, 12, 25, 1); +INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('GR-ΣΥΝΑΞΗ ΘΕΟΤΟΚΟΥ', 0, 102, '', 0, 12, 26, 1); + -- India (117) INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('IN-REPUBLICDAY', 0, 117, '', 0, 1, 26, 1); INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('IN-GANDI', 0, 117, '', 0, 10, 2, 1); diff --git a/htdocs/install/mysql/data/llx_c_tva.sql b/htdocs/install/mysql/data/llx_c_tva.sql index 6c96cb46605..72cff6afde7 100644 --- a/htdocs/install/mysql/data/llx_c_tva.sql +++ b/htdocs/install/mysql/data/llx_c_tva.sql @@ -194,7 +194,7 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (14 insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1402, 140, '14','0','VAT rate - intermediary',1); insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1403, 140, '8','0','VAT rate - reduced', 1); insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1404, 140, '3','0','VAT rate - super-reduced', 1); -insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1405, 140, '17','0','VAT rate - standard',1); +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1405, 140, '16','0','VAT rate - standard',1); -- MALI (id country=147) insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1471, 147, '0','0','VAT rate 0', 1); 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 index 3a9d02c8583..095904bc2c2 100644 --- a/htdocs/install/mysql/migration/16.0.0-17.0.0.sql +++ b/htdocs/install/mysql/migration/16.0.0-17.0.0.sql @@ -93,8 +93,6 @@ UPDATE llx_holiday SET fk_user_approve = fk_user_valid WHERE statut = 3 AND fk_u 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; @@ -122,12 +120,12 @@ ALTER TABLE llx_product ADD COLUMN sell_or_eat_by_mandatory tinyint DEFAULT 0 NO 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_ticket MODIFY COLUMN message mediumtext; + ALTER TABLE llx_cronjob ADD COLUMN pid integer; INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('BE-VICTORYDAY', 0, 2, '', 0, 5, 8, 1); @@ -209,6 +207,8 @@ ALTER TABLE llx_societe_remise_except ADD COLUMN multicurrency_tx double(24,8) N -- VMYSQL4.3 ALTER TABLE llx_hrm_evaluationdet CHANGE COLUMN `rank` rankorder integer; -- VPGSQL8.2 ALTER TABLE llx_hrm_evaluationdet CHANGE COLUMN rank rankorder integer; +-- VMYSQL4.3 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN `rank` rankorder integer; +-- VPGSQL8.2 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN rank rankorder integer; -- Rename const to hide public and private notes (fix allow notes const was used to hide) @@ -238,7 +238,9 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_MODIFY','Customer proposal modified','Executed when a customer proposal is modified','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_SIGNED_WEB','Customer proposal closed signed on portal','Executed when a customer proposal is closed signed on portal','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_REFUSED_WEB','Customer proposal closed refused on portal','Executed when a customer proposal is closed refused on portal','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4); @@ -390,4 +392,3 @@ ALTER TABLE llx_opensurvey_user_studs ADD COLUMN date_creation datetime NULL; ALTER TABLE llx_opensurvey_comments ADD COLUMN date_creation datetime NULL; ALTER TABLE llx_c_tva ADD COLUMN use_default tinyint DEFAULT 0; - diff --git a/htdocs/install/mysql/migration/17.0.0-18.0.0.sql b/htdocs/install/mysql/migration/17.0.0-18.0.0.sql new file mode 100644 index 00000000000..5999acf05a8 --- /dev/null +++ b/htdocs/install/mysql/migration/17.0.0-18.0.0.sql @@ -0,0 +1,65 @@ +-- +-- Be carefull to requests order. +-- This file must be loaded by calling /install/index.php page +-- when current version is 18.0.0 or higher. +-- +-- To restrict request to Mysql version x.y minimum use -- VMYSQLx.y +-- To restrict request to Pgsql version x.y minimum use -- VPGSQLx.y +-- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new; +-- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol; +-- To rename a column: ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60); +-- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname; +-- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60); +-- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name; +-- To create a unique index ALTER TABLE llx_table ADD UNIQUE INDEX uk_table_field (field); +-- To drop an index: -- VMYSQL4.1 DROP INDEX nomindex on llx_table; +-- To drop an index: -- VPGSQL8.2 DROP INDEX nomindex; +-- To make pk to be auto increment (mysql): +-- -- VMYSQL4.3 ALTER TABLE llx_table ADD PRIMARY KEY(rowid); +-- -- VMYSQL4.3 ALTER TABLE llx_table CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; +-- To make pk to be auto increment (postgres): +-- -- VPGSQL8.2 CREATE SEQUENCE llx_table_rowid_seq OWNED BY llx_table.rowid; +-- -- VPGSQL8.2 ALTER TABLE llx_table ADD PRIMARY KEY (rowid); +-- -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN rowid SET DEFAULT nextval('llx_table_rowid_seq'); +-- -- VPGSQL8.2 SELECT setval('llx_table_rowid_seq', MAX(rowid)) FROM llx_table; +-- To set a field as NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NULL; +-- To set a field as NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL; +-- To set a field as NOT NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NOT NULL; +-- To set a field as NOT NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET NOT NULL; +-- To set a field as default NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL; +-- Note: fields with type BLOB/TEXT can't have default value. +-- To rebuild sequence for postgresql after insert by forcing id autoincrement fields: +-- -- VPGSQL8.2 SELECT dol_util_rebuild_sequences(); + + +-- v17 + +-- VMYSQL4.3 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN `rank` rankorder integer; +-- VPGSQL8.2 ALTER TABLE llx_hrm_skillrank CHANGE COLUMN rank rankorder integer; + + + +-- v18 + +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_CLOSE','Project closed','Executed when a project is closed','project',145); + +-- amount was removed in v12 +ALTER TABLE llx_facture DROP COLUMN amount; + +-- Rename prospect level on contact +ALTER TABLE llx_socpeople CHANGE fk_prospectcontactlevel fk_prospectlevel varchar(12); + +ALTER TABLE llx_facture ADD COLUMN prorata_discount real DEFAULT NULL; + +ALTER TABLE llx_payment_salary MODIFY COLUMN datep datetime; + +INSERT INTO llx_c_tva(rowid,fk_pays,code,taux,localtax1,localtax1_type,localtax2,localtax2_type,recuperableonly,note,active) values (1179, 117, 'I-28' , 28, 0, '0', 0, '0', 0, 'IGST', 1); +INSERT INTO llx_c_tva(rowid,fk_pays,code,taux,localtax1,localtax1_type,localtax2,localtax2_type,recuperableonly,note,active) values (1176, 117, 'C+S-18', 0, 9, '1', 9, '1', 0, 'CGST+SGST - Same state sales', 1); + + +ALTER TABLE llx_user ADD COLUMN flagdelsessionsbefore datetime DEFAULT NULL; + +ALTER TABLE llx_website ADD COLUMN pageviews_previous_month BIGINT UNSIGNED DEFAULT 0; + +ALTER TABLE llx_product_stock ADD CONSTRAINT fk_product_product_rowid FOREIGN KEY (fk_product) REFERENCES llx_product (rowid); +ALTER TABLE llx_product_stock ADD CONSTRAINT fk_entrepot_entrepot_rowid FOREIGN KEY (fk_entrepot) REFERENCES llx_entrepot (rowid); diff --git a/htdocs/install/mysql/tables/llx_actioncomm.sql b/htdocs/install/mysql/tables/llx_actioncomm.sql index d4d0b65ef25..a64513d5d9e 100644 --- a/htdocs/install/mysql/tables/llx_actioncomm.sql +++ b/htdocs/install/mysql/tables/llx_actioncomm.sql @@ -80,6 +80,8 @@ create table llx_actioncomm fk_element integer DEFAULT NULL, -- For link to an element (proposal, invoice, order, ...) elementtype varchar(255) DEFAULT NULL, -- For link to an element (proposal, invoice, order, ...) + ip varchar(250), --ip used to create record (for public submission page) + import_key varchar(14), extraparams varchar(255) -- for other parameters with json format )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql b/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql index 973c738a076..0b5654ff3de 100644 --- a/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql +++ b/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql @@ -35,6 +35,7 @@ CREATE TABLE llx_eventorganization_conferenceorboothattendee( fk_user_creat integer, fk_user_modif integer, last_main_doc varchar(255), + ip varchar(250), --ip used to create record (for public submission page) import_key varchar(14), model_pdf varchar(255), status smallint NOT NULL diff --git a/htdocs/install/mysql/tables/llx_facture.sql b/htdocs/install/mysql/tables/llx_facture.sql index 7377d7803a7..6e54df4eb32 100644 --- a/htdocs/install/mysql/tables/llx_facture.sql +++ b/htdocs/install/mysql/tables/llx_facture.sql @@ -39,7 +39,7 @@ create table llx_facture date_pointoftax date DEFAULT NULL, -- date point of tax (for GB) date_valid date, -- date validation tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- last modification date - date_closing datetime, -- date de cloture + date_closing datetime, -- date de cloture paye smallint DEFAULT 0 NOT NULL, remise_percent real DEFAULT 0, -- remise relative @@ -62,7 +62,7 @@ create table llx_facture fk_user_author integer, -- user making creation fk_user_modif integer, -- user making last change fk_user_valid integer, -- user validating - fk_user_closing integer, -- user closing + fk_user_closing integer, -- user closing module_source varchar(32), -- name of module when invoice generated by a dedicated module (POS, ...) pos_source varchar(32), -- numero of POS terminal when order is generated by a POS module, IDsession@IDwebsite when order is generated for a website basket. @@ -81,18 +81,20 @@ create table llx_facture note_private text, note_public text, model_pdf varchar(255), - last_main_doc varchar(255), -- relative filepath+filename of last main generated document + last_main_doc varchar(255), -- relative filepath+filename of last main generated document fk_incoterms integer, -- for incoterms location_incoterms varchar(255), -- for incoterms fk_transport_mode integer, -- for intracomm report + prorata_discount real DEFAULT NULL, -- % of the prorata discount (to know how to add prorata discount lines for each vat rate in the invoice) + situation_cycle_ref smallint, -- situation cycle reference. A key that is similar for all the serie. situation_counter smallint, -- situation counter. The number into the serie: 1, 2, ... situation_final smallint, -- 0 by default, 1 it if is the final invoice. - retained_warranty real DEFAULT NULL, -- % of retained warranty + retained_warranty real DEFAULT NULL, -- % of the retained warranty (to calculate the amount to pay later) retained_warranty_date_limit date DEFAULT NULL, retained_warranty_fk_cond_reglement integer DEFAULT NULL, -- payment condition of retained warranty @@ -100,9 +102,9 @@ create table llx_facture extraparams varchar(255), -- for other parameters with json format fk_multicurrency integer, - multicurrency_code varchar(3), + multicurrency_code varchar(3), multicurrency_tx double(24,8) DEFAULT 1, - multicurrency_total_ht double(24,8) DEFAULT 0, + multicurrency_total_ht double(24,8) DEFAULT 0, multicurrency_total_tva double(24,8) DEFAULT 0, multicurrency_total_ttc double(24,8) DEFAULT 0 )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_opensurvey_comments-opensurvey.sql b/htdocs/install/mysql/tables/llx_opensurvey_comments-opensurvey.sql index a615e0f9cb7..b447431cca5 100644 --- a/htdocs/install/mysql/tables/llx_opensurvey_comments-opensurvey.sql +++ b/htdocs/install/mysql/tables/llx_opensurvey_comments-opensurvey.sql @@ -22,5 +22,6 @@ CREATE TABLE llx_opensurvey_comments ( tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, usercomment text date_creation datetime NOT NULL, + ip varchar(250), --ip used to create record (for public submission page) ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_opensurvey_user_studs-opensurvey.sql b/htdocs/install/mysql/tables/llx_opensurvey_user_studs-opensurvey.sql index e139816c3fa..26de6ff8a21 100644 --- a/htdocs/install/mysql/tables/llx_opensurvey_user_studs-opensurvey.sql +++ b/htdocs/install/mysql/tables/llx_opensurvey_user_studs-opensurvey.sql @@ -22,4 +22,5 @@ CREATE TABLE llx_opensurvey_user_studs ( reponses VARCHAR(200) NOT NULL, -- Not used for 'F' surveys tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP date_creation datetime NOT NULL, + ip varchar(250), --ip used to create record (for public submission page) ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_payment_salary.sql b/htdocs/install/mysql/tables/llx_payment_salary.sql index 308e70effc2..0dd24eb199d 100644 --- a/htdocs/install/mysql/tables/llx_payment_salary.sql +++ b/htdocs/install/mysql/tables/llx_payment_salary.sql @@ -23,7 +23,7 @@ create table llx_payment_salary tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, datec datetime, -- Create date fk_user integer DEFAULT NULL, - datep date, -- payment date + datep datetime, -- payment date datev date, -- value date (this field should not be here, only into bank tables) salary double(24,8), -- salary of user when payment was done amount double(24,8) NOT NULL DEFAULT 0, diff --git a/htdocs/install/mysql/tables/llx_prelevement.key.sql b/htdocs/install/mysql/tables/llx_prelevement.key.sql index c3234b7756a..c0178995895 100644 --- a/htdocs/install/mysql/tables/llx_prelevement.key.sql +++ b/htdocs/install/mysql/tables/llx_prelevement.key.sql @@ -21,5 +21,5 @@ ALTER TABLE llx_prelevement ADD INDEX idx_prelevement_fk_prelevement_lignes (fk_prelevement_lignes); -ALTER TABLE llx_prelevement ADD CONSTRAINT fk_prelevement_facture_fk_prelevement_lignes FOREIGN KEY (fk_prelevement_lignes) REFERENCES llx_prelevement_lignes (rowid); +ALTER TABLE llx_prelevement ADD CONSTRAINT fk_prelevement_fk_prelevement_lignes FOREIGN KEY (fk_prelevement_lignes) REFERENCES llx_prelevement_lignes (rowid); diff --git a/htdocs/install/mysql/tables/llx_prelevement_demande.key.sql b/htdocs/install/mysql/tables/llx_prelevement_demande.key.sql index cd4ed476635..5e047323189 100644 --- a/htdocs/install/mysql/tables/llx_prelevement_demande.key.sql +++ b/htdocs/install/mysql/tables/llx_prelevement_demande.key.sql @@ -17,6 +17,6 @@ -- =================================================================== -ALTER TABLE llx_prelevement_demande ADD INDEX idx_prelevement_facture_demande_fk_facture (fk_facture); -ALTER TABLE llx_prelevement_demande ADD INDEX idx_prelevement_facture_demande_fk_facture_fourn (fk_facture_fourn); +ALTER TABLE llx_prelevement_demande ADD INDEX idx_prelevement_demande_fk_facture (fk_facture); +ALTER TABLE llx_prelevement_demande ADD INDEX idx_prelevement_demande_fk_facture_fourn (fk_facture_fourn); diff --git a/htdocs/install/mysql/tables/llx_product_stock.key.sql b/htdocs/install/mysql/tables/llx_product_stock.key.sql index 358a0c74f19..b07719a5478 100644 --- a/htdocs/install/mysql/tables/llx_product_stock.key.sql +++ b/htdocs/install/mysql/tables/llx_product_stock.key.sql @@ -20,5 +20,7 @@ ALTER TABLE llx_product_stock ADD INDEX idx_product_stock_fk_product (fk_product); ALTER TABLE llx_product_stock ADD INDEX idx_product_stock_fk_entrepot (fk_entrepot); +ALTER TABLE llx_product_stock ADD CONSTRAINT fk_product_product_rowid FOREIGN KEY (fk_product) REFERENCES llx_product (rowid); +ALTER TABLE llx_product_stock ADD CONSTRAINT fk_entrepot_entrepot_rowid FOREIGN KEY (fk_entrepot) REFERENCES llx_entrepot (rowid); ALTER TABLE llx_product_stock ADD UNIQUE INDEX uk_product_stock (fk_product,fk_entrepot); diff --git a/htdocs/install/mysql/tables/llx_projet.sql b/htdocs/install/mysql/tables/llx_projet.sql index 5b3df54ba14..3b8bf1be05b 100644 --- a/htdocs/install/mysql/tables/llx_projet.sql +++ b/htdocs/install/mysql/tables/llx_projet.sql @@ -57,6 +57,7 @@ create table llx_projet price_registration double(24,8), price_booth double(24,8), model_pdf varchar(255), + ip varchar(250), --ip used to create record (for public submission page) last_main_doc varchar(255), -- relative filepath+filename of last main generated document import_key varchar(14) -- Import key )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_societe_account.sql b/htdocs/install/mysql/tables/llx_societe_account.sql index b200d4f3854..56eb4eb1985 100644 --- a/htdocs/install/mysql/tables/llx_societe_account.sql +++ b/htdocs/install/mysql/tables/llx_societe_account.sql @@ -1,4 +1,4 @@ --- Copyright (C) 2016 Laurent Destailleur +-- Copyright (C) 2016-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 @@ -19,16 +19,17 @@ CREATE TABLE llx_societe_account( -- BEGIN MODULEBUILDER FIELDS rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, - entity integer DEFAULT 1, - login varchar(128) NOT NULL, + entity integer DEFAULT 1, + + login varchar(128) NOT NULL, -- a login string into website or external system pass_encoding varchar(24), - pass_crypted varchar(128), + pass_crypted varchar(128), -- the hashed password pass_temp varchar(128), -- temporary password when asked for forget password - fk_soc integer, - fk_website integer, -- id of local web site - site varchar(128), -- name of external web site - site_account varchar(128), -- a key to identify the account on external web site - key_account varchar(128), -- the id of third party in external web site (for site_account if site_account defined) + fk_soc integer, -- if entry is linked to a thirdparty + fk_website integer, -- id of local web site (if dk_website is filled, site is empty) + site varchar(128), -- name of external web site (if site is filled, fk_website is empty) + site_account varchar(128), -- a key to identify the account on external web site (for example: 'stripe', 'paypal', 'myextapp') + key_account varchar(128), -- the id of an account in external web site (for site_account if site_account defined. some sites needs both an account name and a login that is different) note_private text, date_last_login datetime, date_previous_login datetime, diff --git a/htdocs/install/mysql/tables/llx_socpeople.sql b/htdocs/install/mysql/tables/llx_socpeople.sql index 59bd22ddfdc..5cad6a4bdc3 100644 --- a/htdocs/install/mysql/tables/llx_socpeople.sql +++ b/htdocs/install/mysql/tables/llx_socpeople.sql @@ -58,7 +58,7 @@ create table llx_socpeople photo varchar(255), no_email smallint NOT NULL DEFAULT 0, -- deprecated. Use table llx_mailing_unsubscribe instead priv smallint NOT NULL DEFAULT 0, - fk_prospectcontactlevel varchar(12), -- prospect level (in llx_c_prospectcontactlevel) + fk_prospectlevel varchar(12), -- prospect level (in llx_c_prospectcontactlevel) fk_stcommcontact integer DEFAULT 0 NOT NULL, -- commercial statut fk_user_creat integer DEFAULT 0, -- user qui a creel'enregistrement fk_user_modif integer, diff --git a/htdocs/install/mysql/tables/llx_ticket-ticket.sql b/htdocs/install/mysql/tables/llx_ticket-ticket.sql index 278d62894bc..c651eaccca2 100644 --- a/htdocs/install/mysql/tables/llx_ticket-ticket.sql +++ b/htdocs/install/mysql/tables/llx_ticket-ticket.sql @@ -26,7 +26,7 @@ CREATE TABLE llx_ticket fk_user_create integer, fk_user_assign integer, subject varchar(255), - message text, + message mediumtext, fk_statut integer, resolution integer, progress integer DEFAULT 0, -- progression 0 - 100 or null diff --git a/htdocs/install/mysql/tables/llx_user.sql b/htdocs/install/mysql/tables/llx_user.sql index ca0c7bc818d..a10f8489bcb 100644 --- a/htdocs/install/mysql/tables/llx_user.sql +++ b/htdocs/install/mysql/tables/llx_user.sql @@ -84,6 +84,7 @@ create table llx_user datelastpassvalidation datetime, -- last date we change password or we made a disconnect all datestartvalidity datetime, dateendvalidity datetime, + flagdelsessionsbefore datetime DEFAULT NULL, -- set this to a date if we need to launch an external process to invalidate all sessions for the same login created before this date iplastlogin varchar(250), ippreviouslogin varchar(250), egroupware_id integer, diff --git a/htdocs/install/mysql/tables/llx_website-website.sql b/htdocs/install/mysql/tables/llx_website-website.sql index 0df6ccf8ef3..8ac580919aa 100644 --- a/htdocs/install/mysql/tables/llx_website-website.sql +++ b/htdocs/install/mysql/tables/llx_website-website.sql @@ -36,9 +36,10 @@ CREATE TABLE llx_website fk_user_modif integer, date_creation datetime, position integer DEFAULT 0, - lastaccess datetime NULL, - pageviews_month BIGINT UNSIGNED DEFAULT 0, - pageviews_total BIGINT UNSIGNED DEFAULT 0, + lastaccess datetime NULL, -- updated at each page access + pageviews_previous_month BIGINT UNSIGNED DEFAULT 0, + pageviews_month BIGINT UNSIGNED DEFAULT 0, -- increased by 1 at each page access, saved into pageviews_previous_month when on different month than lastaccess + pageviews_total BIGINT UNSIGNED DEFAULT 0, -- increased by 1 at each page access, no reset tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, import_key varchar(14) -- import key ) ENGINE=innodb; diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php index 802711f4ff3..0d37f4d2dd7 100644 --- a/htdocs/install/repair.php +++ b/htdocs/install/repair.php @@ -915,7 +915,7 @@ if ($ok && GETPOST('clean_product_stock_batch', 'alpha')) { $i = 0; while ($i < $num) { $obj = $db->fetch_object($resql); - print 'Product '.$obj->rowid.'-'.$obj->ref.' in warehose '.$obj->fk_entrepot.' -> '.$obj->psrowid.': '.$obj->reel.' (product_stock.reel) != '.($obj->reelbatch ? $obj->reelbatch : '0').' (sum product_batch)'; + print 'Product '.$obj->rowid.'-'.$obj->ref.' in warehouse '.$obj->fk_entrepot.' (product_stock id '.$obj->psrowid.'): '.$obj->reel.' (Stock product_stock.reel) != '.($obj->reelbatch ? $obj->reelbatch : '0').' (Stock batch sum product_batch)'; // Fix if ($obj->reel != $obj->reelbatch) { diff --git a/htdocs/install/step5.php b/htdocs/install/step5.php index 4fc30772f78..c516cc70aef 100644 --- a/htdocs/install/step5.php +++ b/htdocs/install/step5.php @@ -267,11 +267,14 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) { if (!$resql) { dol_print_error($db, 'Error in setup program'); } + // The install.lock file is created few lines later if version is last one or if option MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE is on + /* No need to enable this $resql = $db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) values(".$db->encrypt('MAIN_REMOVE_INSTALL_WARNING').", ".$db->encrypt(1).", 'chaine', 1, 'Disable install warnings', 0)"); if (!$resql) { dol_print_error($db, 'Error in setup program'); } $conf->global->MAIN_REMOVE_INSTALL_WARNING = 1; + */ } // If we ask to force some modules to be enabled @@ -365,13 +368,16 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) { if ($action == "set") { if ($success) { if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ($conf->global->MAIN_VERSION_LAST_UPGRADE == DOL_VERSION)) { - // Install is finished + // Install is finished (database is on same version than files) print '
'.$langs->trans("SystemIsInstalled")."
"; + // Create install.lock file + // No need for the moment to create it automatically, creation by web assistant means permissions are given + // to the web user, it is better to show a warning to say to create it manually with correct user/permission (not erasable by a web process) $createlock = 0; - if (!empty($force_install_lockinstall) || !empty($conf->global->MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE)) { - // Install is finished, we create the lock file + // Install is finished, we create the "install.lock" file, so install won't be possible anymore. + // TODO Upgrade will be still be possible if a file "upgrade.unlock" is present $lockfile = DOL_DATA_ROOT.'/install.lock'; $fp = @fopen($lockfile, "w"); if ($fp) { @@ -410,13 +416,14 @@ if ($action == "set") { } elseif (empty($action) || preg_match('/upgrade/i', $action)) { // If upgrade if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ($conf->global->MAIN_VERSION_LAST_UPGRADE == DOL_VERSION)) { - // Upgrade is finished + // Upgrade is finished (database is on same version than files) print 'Configuration '.$langs->trans("SystemIsUpgraded")."
"; + // Create install.lock file if it does not exists. + // Note: it should always exists. A better solution to allow upgrade will be to add an upgrade.unlock file $createlock = 0; - if (!empty($force_install_lockinstall) || !empty($conf->global->MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE)) { - // Upgrade is finished, we create the lock file + // Upgrade is finished, we modify the lock file $lockfile = DOL_DATA_ROOT.'/install.lock'; $fp = @fopen($lockfile, "w"); if ($fp) { @@ -433,6 +440,10 @@ if ($action == "set") { print '
'.$langs->trans("WarningRemoveInstallDir")."
"; } + // Delete the upgrade.unlock file it it exists + $unlockupgradefile = DOL_DATA_ROOT.'/upgrade.unlock'; + dol_delete_file($unlockupgradefile, 0, 0, 0, null, false, 0); + print "
"; $morehtml = '
'; diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index bbb12e8693e..1e153109140 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -490,6 +490,13 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { migrate_contractdet_rank(); } + + // Scripts for 18.0 + $afterversionarray = explode('.', '170.9'); + $beforeversionarray = explode('.', '18.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_contractdet_rank(); + } } @@ -4079,11 +4086,11 @@ function migrate_rename_directories($db, $langs, $conf, $oldname, $newname) * @param DoliDB $db Database handler * @param Translate $langs Object langs * @param Conf $conf Object conf - * @return void + * @return boolean */ function migrate_delete_old_files($db, $langs, $conf) { - $result = true; + $ret = true; dolibarr_install_syslog("upgrade2::migrate_delete_old_files"); @@ -4148,7 +4155,6 @@ function migrate_delete_old_files($db, $langs, $conf) foreach ($filetodeletearray as $filetodelete) { //print ''DOL_DOCUMENT_ROOT.$filetodelete."
\n"; - $result = 1; if (file_exists(DOL_DOCUMENT_ROOT.$filetodelete)) { $result = dol_delete_file(DOL_DOCUMENT_ROOT.$filetodelete, 0, 0, 0, null, true, false); if (!$result) { @@ -4160,7 +4166,8 @@ function migrate_delete_old_files($db, $langs, $conf) } } } - return $result; + + return $ret; } /** @@ -4169,11 +4176,11 @@ function migrate_delete_old_files($db, $langs, $conf) * @param DoliDB $db Database handler * @param Translate $langs Object langs * @param Conf $conf Object conf - * @return void + * @return boolean */ function migrate_delete_old_dir($db, $langs, $conf) { - $result = true; + $ret = true; dolibarr_install_syslog("upgrade2::migrate_delete_old_dir"); @@ -4189,7 +4196,7 @@ function migrate_delete_old_dir($db, $langs, $conf) } foreach ($filetodeletearray as $filetodelete) { - //print ''.$filetodelete."
\n"; + $result = 1; if (file_exists($filetodelete)) { $result = dol_delete_dir_recursive($filetodelete); } @@ -4199,7 +4206,8 @@ function migrate_delete_old_dir($db, $langs, $conf) print ' '.$langs->trans("RemoveItManuallyAndPressF5ToContinue").'
'; } } - return $result; + + return $ret; } @@ -4485,7 +4493,7 @@ function migrate_reload_modules($db, $langs, $conf, $listofmodule = array(), $fo * @param DoliDB $db Database handler * @param Translate $langs Object langs * @param Conf $conf Object conf - * @return void + * @return int <0 if KO, >0 if OK */ function migrate_reload_menu($db, $langs, $conf) { @@ -4515,6 +4523,8 @@ function migrate_reload_menu($db, $langs, $conf) print ''; } + + return 1; } /** diff --git a/htdocs/intracommreport/card.php b/htdocs/intracommreport/card.php index f2c88d7a217..403c4b28eae 100644 --- a/htdocs/intracommreport/card.php +++ b/htdocs/intracommreport/card.php @@ -119,7 +119,7 @@ if ($action == 'add' && $permissiontoadd) { $object->label = trim($label); $object->type = trim($exporttype); $object->type_declaration = $type_declaration; - $object->subscription = (int) $subscription; + //$object->subscription = (int) $subscription; // Fill array 'array_options' with data from add form // $ret = $extrafields->setOptionalsFromPost($extralabels, $object); diff --git a/htdocs/intracommreport/class/intracommreport.class.php b/htdocs/intracommreport/class/intracommreport.class.php index 18e6e0ecc84..88788f7070e 100644 --- a/htdocs/intracommreport/class/intracommreport.class.php +++ b/htdocs/intracommreport/class/intracommreport.class.php @@ -47,17 +47,29 @@ class IntracommReport extends CommonObject */ public $fk_element = 'fk_intracommreport'; - /** - * @var string declaration number - */ - public $declaration_number; - /** * 0 = No test on entity, 1 = Test with field entity, 2 = Test with link by societe * @var int */ public $ismultientitymanaged = 1; + public $picto = 'intracommreport'; + + + public $label; // ref ??? + + public $period; + + public $declaration; + + /** + * @var string declaration number + */ + public $declaration_number; + + public $type_declaration; // deb or des + + /** * DEB - Product */ @@ -73,6 +85,7 @@ class IntracommReport extends CommonObject 'expedition'=>'Expédition' ); + /** * Constructor * diff --git a/htdocs/intracommreport/list.php b/htdocs/intracommreport/list.php index 721ad15a2ce..c107ba9e492 100644 --- a/htdocs/intracommreport/list.php +++ b/htdocs/intracommreport/list.php @@ -150,13 +150,17 @@ if ($search_type == '0') { $result = restrictedArea($user, 'produit|service', '', '', '', '', '', 0); } +$permissiontoread = $user->rights->intracommreport->read; +$permissiontodelete = $user->rights->intracommreport->delete; + /* * Actions */ if (GETPOST('cancel', 'alpha')) { - $action = 'list'; $massaction = ''; + $action = 'list'; + $massaction = ''; } if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; @@ -192,8 +196,6 @@ if (empty($reshook)) { $objectlabel = 'Products'; } - $permtoread = $user->rights->produit->lire; - $permtodelete = $user->rights->produit->supprimer; $uploaddir = $conf->product->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -207,25 +209,26 @@ $formother = new FormOther($db); $title = $langs->trans('IntracommReportList'.$type); -$sql = 'SELECT DISTINCT i.rowid, i.type_declaration, i.type_export, i.periods, i.mode, i.entity'; +$sql = 'SELECT i.rowid, i.type_declaration, i.type_export, i.periods, i.mode, i.entity'; + /* // Add fields from extrafields if (!empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key." as options_".$key : ''); } */ - // Add fields from hooks $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$sql .= preg_replace('/^,/', '', $hookmanager->resPrint); +$sql = preg_replace('/,\s*$/', '', $sql); $sql .= $hookmanager->resPrint; +$sqlfields = $sql; + $sql .= ' FROM '.MAIN_DB_PREFIX.'intracommreport as i'; - // if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."intracommreport_extrafields as ef on (i.rowid = ef.fk_object)"; - $sql .= ' WHERE i.entity IN ('.getEntity('intracommreport').')'; - if ($sall) { $sql .= natural_search(array_keys($fieldstosearchall), $sall); } @@ -270,281 +273,315 @@ $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldSelect', $parameters); // Note that $action and $object may have been modified by hook $sql .= $hookmanager->resPrint; -$sql .= $db->order($sortfield, $sortorder); +// Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + /* The fast and low memory method to get and count full list converts the sql into a sql count */ + $sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql); + $sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount); + $resql = $db->query($sqlforcount); + if ($resql) { + $objforcount = $db->fetch_object($resql); + $nbtotalofrecords = $objforcount->nbtotalofrecords; + } else { + dol_print_error($db); + } + if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 $page = 0; $offset = 0; } + $db->free($resql); } -$sql .= $db->plimit($limit + 1, $offset); +// Complete request and execute it with limit +$sql .= $db->order($sortfield, $sortorder); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); +} $resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} -if ($resql) { - $num = $db->num_rows($resql); +$num = $db->num_rows($resql); - $arrayofselected = is_array($toselect) ? $toselect : array(); +$helpurl = 'EN:Module_IntracommReport|FR:Module_ProDouane'; +llxHeader('', $title, $helpurl, ''); - $helpurl = 'EN:Module_IntracommReport|FR:Module_ProDouane'; - llxHeader('', $title, $helpurl, ''); +// Displays product removal confirmation +if (GETPOST('delreport')) { + setEventMessages($langs->trans("IntracommReportDeleted", GETPOST('delreport')), null, 'mesgs'); +} - // Displays product removal confirmation - if (GETPOST('delreport')) { - setEventMessages($langs->trans("IntracommReportDeleted", GETPOST('delreport')), null, 'mesgs'); - } +$arrayofselected = is_array($toselect) ? $toselect : array(); - $param = ''; - if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { - $param .= '&contextpage='.urlencode($contextpage); - } - if ($limit > 0 && $limit != $conf->liste_limit) { - $param .= '&limit='.urlencode($limit); - } - if ($sall) { - $param .= "&sall=".urlencode($sall); - } - if ($search_ref) { - $param = "&search_ref=".urlencode($search_ref); - } - if ($search_label) { - $param .= "&search_label=".urlencode($search_label); - } +$param = ''; +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { + $param .= '&contextpage='.urlencode($contextpage); +} +if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); +} +if ($sall) { + $param .= "&sall=".urlencode($sall); +} +if ($search_ref) { + $param = "&search_ref=".urlencode($search_ref); +} +if ($search_label) { + $param .= "&search_label=".urlencode($search_label); +} +if ($optioncss != '') { + $param .= '&optioncss='.urlencode($optioncss); +} +// Add $param from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; +// Add $param from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook +$param .= $hookmanager->resPrint; - // Add $param from extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; +// List of mass actions available +$arrayofmassactions = array( + 'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"), + //'builddoc'=>$langs->trans("PDFMerge"), + //'presend'=>$langs->trans("SendByMail"), +); +if (!empty($permissiontodelete)) { + $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); +} +if (in_array($massaction, array('presend', 'predelete'))) { + $arrayofmassactions = array(); +} +$massactionbutton = $form->selectMassAction('', $arrayofmassactions); - // List of mass actions available - $arrayofmassactions = array( - 'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"), - //'builddoc'=>$langs->trans("PDFMerge"), - //'presend'=>$langs->trans("SendByMail"), - ); - if ($user->rights->intracommreport->delete) { - $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); - } - if (in_array($massaction, array('presend', 'predelete'))) { - $arrayofmassactions = array(); - } - $massactionbutton = $form->selectMassAction('', $arrayofmassactions); +$newcardbutton = ''; +if ($user->rights->intracommreport->write) { + $newcardbutton .= dolGetButtonTitle($langs->trans("NewDeclaration"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/intracommreport/card.php?action=create&type='.$type); +} - $newcardbutton = ''; - if ($user->rights->intracommreport->write) { - $newcardbutton .= dolGetButtonTitle($langs->trans("NewDeclaration"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/intracommreport/card.php?action=create&type='.$type); - } +print ''; +if ($optioncss != '') { + print ''; +} +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +if (empty($arrayfields['i.fk_product_type']['checked'])) { + print ''; +} - print ''; - if ($optioncss != '') { - print ''; - } - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - if (empty($arrayfields['i.fk_product_type']['checked'])) { - print ''; - } +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'intracommreport', 0, $newcardbutton, '', $limit); - print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'intracommreport', 0, $newcardbutton, '', $limit); +$topicmail = "Information"; +$modelmail = "product"; +$objecttmp = new IntracommReport($db); +$trackid = 'prod'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; - $topicmail = "Information"; - $modelmail = "product"; - $objecttmp = new IntracommReport($db); - $trackid = 'prod'.$object->id; - include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; +if ($sall) { + foreach ($fieldstosearchall as $key => $val) { + $fieldstosearchall[$key] = $langs->trans($val); + } + print '
'.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'
'; +} - if ($sall) { - foreach ($fieldstosearchall as $key => $val) { - $fieldstosearchall[$key] = $langs->trans($val); - } - print '
'.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'
'; - } +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook +if (empty($reshook)) { + $moreforfilter .= $hookmanager->resPrint; +} else { + $moreforfilter = $hookmanager->resPrint; +} - $parameters = array(); - $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook - if (empty($reshook)) { - $moreforfilter .= $hookmanager->resPrint; - } else { - $moreforfilter = $hookmanager->resPrint; - } +if ($moreforfilter) { + print '
'; + print $moreforfilter; + print '
'; +} - if ($moreforfilter) { - print '
'; - print $moreforfilter; - print '
'; - } +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +if ($massactionbutton) { + $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); +} - $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; - $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields - if ($massactionbutton) { - $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); - } +print '
'; +print ''."\n"; - print '
'; - print '
'."\n"; - - // Lines with input filters - print ''; - if (!empty($arrayfields['i.ref']['checked'])) { - print ''; - } - if (!empty($arrayfields['i.label']['checked'])) { - print ''; - } - // Type - // Type (customer/prospect/supplier) - if (!empty($arrayfields['customerorsupplier']['checked'])) { - print ''; - } - - if (!empty($arrayfields['i.fk_product_type']['checked'])) { - print ''; - } - - /* - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; - */ - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields); - $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Date creation - if (!empty($arrayfields['i.datec']['checked'])) { - print ''; - } - // Date modification - if (!empty($arrayfields['i.tms']['checked'])) { - print ''; - } - print ''; +if (!empty($arrayfields['i.ref']['checked'])) { + print ''; +} +if (!empty($arrayfields['i.label']['checked'])) { + print ''; +} +// Type +// Type (customer/prospect/supplier) +if (!empty($arrayfields['customerorsupplier']['checked'])) { + print ''; +} - print ''; +if (!empty($arrayfields['i.fk_product_type']['checked'])) { + print ''; +} - print ''; +/* +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; +*/ +// Fields from hook +$parameters = array('arrayfields'=>$arrayfields); +$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +// Date creation +if (!empty($arrayfields['i.datec']['checked'])) { + print ''; +} +// Date modification +if (!empty($arrayfields['i.tms']['checked'])) { + print ''; +} +print ''; + +print ''; + +print ''; +if (!empty($arrayfields['i.ref']['checked'])) { + print_liste_field_titre($arrayfields['i.ref']['label'], $_SERVER["PHP_SELF"], "i.ref", "", $param, "", $sortfield, $sortorder); +} +if (!empty($arrayfields['i.label']['checked'])) { + print_liste_field_titre($arrayfields['i.label']['label'], $_SERVER["PHP_SELF"], "i.label", "", $param, "", $sortfield, $sortorder); +} +if (!empty($arrayfields['i.fk_product_type']['checked'])) { + print_liste_field_titre($arrayfields['i.fk_product_type']['label'], $_SERVER["PHP_SELF"], "i.fk_product_type", "", $param, "", $sortfield, $sortorder); +} + +/* +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; +*/ +// Hook fields +$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder); +$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +if (!empty($arrayfields['i.datec']['checked'])) { + print_liste_field_titre($arrayfields['i.datec']['label'], $_SERVER["PHP_SELF"], "i.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} +if (!empty($arrayfields['i.tms']['checked'])) { + print_liste_field_titre($arrayfields['i.tms']['label'], $_SERVER["PHP_SELF"], "i.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} + +print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); +print "\n"; + + +$intracommreport_static = new IntracommReport($db); + +$i = 0; +$totalarray = array(); +while ($i < min($num, $limit)) { + $obj = $db->fetch_object($resql); + + $intracommreport_static->id = $obj->rowid; + $intracommreport_static->ref = $obj->ref; + $intracommreport_static->ref_fourn = $obj->ref_supplier; + $intracommreport_static->label = $obj->label; + $intracommreport_static->type = $obj->fk_product_type; + $intracommreport_static->status_buy = $obj->tobuy; + $intracommreport_static->status = $obj->tosell; + $intracommreport_static->status_batch = $obj->tobatch; + $intracommreport_static->entity = $obj->entity; + + print ''; + + // Ref if (!empty($arrayfields['i.ref']['checked'])) { - print_liste_field_titre($arrayfields['i.ref']['label'], $_SERVER["PHP_SELF"], "i.ref", "", $param, "", $sortfield, $sortorder); - } - if (!empty($arrayfields['i.label']['checked'])) { - print_liste_field_titre($arrayfields['i.label']['label'], $_SERVER["PHP_SELF"], "i.label", "", $param, "", $sortfield, $sortorder); - } - if (!empty($arrayfields['i.fk_product_type']['checked'])) { - print_liste_field_titre($arrayfields['i.fk_product_type']['label'], $_SERVER["PHP_SELF"], "i.fk_product_type", "", $param, "", $sortfield, $sortorder); - } - - /* - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; - */ - // Hook fields - $parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder); - $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - if (!empty($arrayfields['i.datec']['checked'])) { - print_liste_field_titre($arrayfields['i.datec']['label'], $_SERVER["PHP_SELF"], "i.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap '); - } - if (!empty($arrayfields['i.tms']['checked'])) { - print_liste_field_titre($arrayfields['i.tms']['label'], $_SERVER["PHP_SELF"], "i.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); - } - - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); - print "\n"; - - - $intracommreport_static = new IntracommReport($db); - - $i = 0; - $totalarray = array(); - while ($i < min($num, $limit)) { - $obj = $db->fetch_object($resql); - - $intracommreport_static->id = $obj->rowid; - $intracommreport_static->ref = $obj->ref; - $intracommreport_static->ref_fourn = $obj->ref_supplier; - $intracommreport_static->label = $obj->label; - $intracommreport_static->type = $obj->fk_product_type; - $intracommreport_static->status_buy = $obj->tobuy; - $intracommreport_static->status = $obj->tosell; - $intracommreport_static->status_batch = $obj->tobatch; - $intracommreport_static->entity = $obj->entity; - - print ''; - - // Ref - if (!empty($arrayfields['i.ref']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Label - if (!empty($arrayfields['i.label']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Type - if (!empty($arrayfields['i.fk_product_type']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Action - print ''; + print '\n"; if (!$i) { $totalarray['nbfield']++; } - - print "\n"; - $i++; + } + // Label + if (!empty($arrayfields['i.label']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Type + if (!empty($arrayfields['i.fk_product_type']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Action + print ''; + if (!$i) { + $totalarray['nbfield']++; } - $db->free($resql); - - print "
'; - print ''; - print ''; - print ''; - print ''; - if ($type != '') { - print ''; - } - print $formcompany->selectProspectCustomerType($search_type, 'search_type', 'search_type', 'list'); - print ''; - $array = array('-1'=>' ', '0'=>$langs->trans('Product'), '1'=>$langs->trans('Service')); - print $form->selectarray('search_type', $array, $search_type); - print ''; - print ''; - print ''; - $searchpicto = $form->showFilterButtons(); - print $searchpicto; +// Lines with input filters +print '
'; + print ''; print ''; + print ''; + print ''; + if ($type != '') { + print ''; + } + print $formcompany->selectProspectCustomerType($search_type, 'search_type', 'search_type', 'list'); + print '
'; + $array = array('-1'=>' ', '0'=>$langs->trans('Product'), '1'=>$langs->trans('Service')); + print $form->selectarray('search_type', $array, $search_type); + print '
'; + print ''; + print ''; +$searchpicto = $form->showFilterButtons(); +print $searchpicto; +print '
'; - print $intracommreport_static->getNomUrl(1); - print "'.dol_trunc($obj->label, 80).''.$obj->fk_product_type.''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($obj->rowid, $arrayofselected)) { - $selected = 1; - } - print ''; - } - print ''; + print $intracommreport_static->getNomUrl(1); + print "
'.dol_trunc($obj->label, 80).''.$obj->fk_product_type.''; + if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + $selected = 0; + if (in_array($obj->rowid, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print '
"; - print "
"; - print ''; -} else { - dol_print_error($db); + print "\n"; + $i++; } +// If no record found +if ($num == 0) { + $colspan = 1; + foreach ($arrayfields as $key => $val) { + if (!empty($val['checked'])) { + $colspan++; + } + } + print ''.$langs->trans("NoRecordFound").''; +} + +$db->free($resql); + +print ""; +print "
"; +print ''; + // End of page llxFooter(); $db->close(); diff --git a/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php b/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php index ccf54b1d6d9..8232287b23b 100644 --- a/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php +++ b/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php @@ -114,7 +114,7 @@ class KnowledgeManagement extends DolibarrApi } if ($result < 0) { - throw new RestException(503, 'Error when retrieve category list : '.array_merge(array($categories->error), $categories->errors)); + throw new RestException(503, 'Error when retrieve category list : '.join(',', array_merge(array($categories->error), $categories->errors))); } return $result; diff --git a/htdocs/knowledgemanagement/class/knowledgerecord.class.php b/htdocs/knowledgemanagement/class/knowledgerecord.class.php index fee18df2478..3f9f1b40223 100644 --- a/htdocs/knowledgemanagement/class/knowledgerecord.class.php +++ b/htdocs/knowledgemanagement/class/knowledgerecord.class.php @@ -103,7 +103,7 @@ class KnowledgeRecord extends CommonObject 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"), 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>10, 'notnull'=>1, 'default'=>'(PROV)', 'visible'=>5, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object", "csslist"=>"nowraponall", "showoncombobox"=>1), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>20, 'index'=>1), - 'question' => array('type'=>'text', 'label'=>'Question', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'csslist'=>'tdoverflowmax300', 'copytoclipboard'=>1, 'tdcss'=>'titlefieldcreate nowraponall'), + 'question' => array('type'=>'text', 'label'=>'Question', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'csslist'=>'tdoverflowmax300', 'copytoclipboard'=>1, 'tdcss'=>'titlefieldcreate nowraponall'), 'lang' => array('type'=>'varchar(6)', 'label'=>'Language', 'enabled'=>'1', 'position'=>40, 'notnull'=>0, 'visible'=>1, 'tdcss'=>'titlefieldcreate nowraponall', "csslist"=>"tdoverflowmax100"), '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,), @@ -115,7 +115,7 @@ class KnowledgeRecord extends CommonObject 'model_pdf' => array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>'1', 'position'=>1010, 'notnull'=>-1, 'visible'=>0,), //'url' => array('type'=>'varchar(255)', 'label'=>'URL', 'enabled'=>'1', 'position'=>55, 'notnull'=>0, 'visible'=>-1, 'csslist'=>'tdoverflow200', 'help'=>'UrlForInfoPage'), 'fk_c_ticket_category' => array('type'=>'integer:CTicketCategory:ticket/class/cticketcategory.class.php:0:(t.active:=:1):pos', 'label'=>'SuggestedForTicketsInGroup', 'enabled'=>'isModEnabled("ticket")', 'position'=>520, 'notnull'=>0, 'visible'=>-1, 'help'=>'YouCanLinkArticleToATicketCategory', 'csslist'=>'minwidth200 tdoverflowmax250'), - 'answer' => array('type'=>'html', 'label'=>'Solution', 'enabled'=>'1', 'position'=>600, 'notnull'=>0, 'visible'=>3, 'csslist'=>'tdoverflowmax300', 'copytoclipboard'=>1, 'tdcss'=>'titlefieldcreate nowraponall'), + 'answer' => array('type'=>'html', 'label'=>'Solution', 'enabled'=>'1', 'position'=>600, 'notnull'=>0, 'visible'=>3, 'searchall'=>1, 'csslist'=>'tdoverflowmax300', 'copytoclipboard'=>1, 'tdcss'=>'titlefieldcreate nowraponall'), 'status' => array('type'=>'integer', 'label'=>'Status', 'enabled'=>'1', 'position'=>1000, 'notnull'=>1, 'visible'=>5, 'default'=>0, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Draft', '1'=>'Validated', '9'=>'Obsolete'),), ); public $rowid; @@ -381,7 +381,7 @@ class KnowledgeRecord 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'; } @@ -918,8 +918,8 @@ class KnowledgeRecord extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_knowledgerecord = '.((int) $this->id))); if (is_numeric($result)) { - $this->error = $this->error; - $this->errors = $this->errors; + $this->error = $objectline->error; + $this->errors = $objectline->errors; return $result; } else { $this->lines = $result; @@ -1058,14 +1058,51 @@ class KnowledgeRecord extends CommonObject * Adds it to non existing supplied categories. * Existing categories are left untouch. * - * @param int[]|int $categories Category or categories IDs - * @return void + * @param int[]|int $categories Category or categories IDs + * @return int <0 if KO, >0 if OK */ public function setCategories($categories) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; return parent::setCategoriesCommon($categories, Categorie::TYPE_KNOWLEDGEMANAGEMENT); } + + /** + * Return clicable link of object (with eventually picto) + * + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) + * @param array $arraydata Array of data + * @return string HTML Code for Kanban thumb. + */ + public function getKanbanView($option = '', $arraydata = null) + { + global $langs, $selected,$arrayofselected; + $return = '
'; + $return .= '
'; + $return .= ''; + $return .= img_picto('', $this->picto); + $return .= ''; + $return .= '
'; + $return .= ''.(method_exists($this, 'getNomUrl') ? $this->getNomUrl(1) : $this->ref).''; + if (in_array($this->id, $arrayofselected)) { + $selected = 1; + } + $return .= ''; + if (property_exists($this, 'question')) { + $return .= '
'.$langs->trans('Question').' : '.$this->question.''; + } + if (property_exists($this, 'lang') && !empty($this->lang)) { + $return .= '
'.$langs->trans("Language").' : lang).'">'.$langs->trans("Language_".$this->lang, '', '', '', '', 12).''; + $return .= picto_from_langcode($this->lang, 'class="paddingrightonly saturatemedium opacitylow"'); + } + if (method_exists($this, 'getLibStatut')) { + $return .= '
'.$this->getLibStatut(5).'
'; + } + $return .= '
'; + $return .= '
'; + $return .= '
'; + return $return; + } } diff --git a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php index ba0cf9818dc..fc22678a87a 100644 --- a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php +++ b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php @@ -54,7 +54,7 @@ class mod_knowledgerecord_advanced extends ModeleNumRefKnowledgeRecord /** * Returns the description of the numbering model * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { @@ -68,7 +68,7 @@ class mod_knowledgerecord_advanced extends ModeleNumRefKnowledgeRecord $texte .= '
'; $texte .= ''; $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; $tooltip = $langs->trans("GenericMaskCodes", $langs->transnoentities("KnowledgeRecord"), $langs->transnoentities("KnowledgeRecord")); diff --git a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/modules_knowledgerecord.php b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/modules_knowledgerecord.php index edfe6beff62..8e19931fbdb 100644 --- a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/modules_knowledgerecord.php +++ b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/modules_knowledgerecord.php @@ -86,7 +86,7 @@ abstract class ModeleNumRefKnowledgeRecord /** * Returns the default description of the numbering template * - * @return string Texte descripif + * @return string Descriptive text */ public function info() { diff --git a/htdocs/knowledgemanagement/knowledgerecord_agenda.php b/htdocs/knowledgemanagement/knowledgerecord_agenda.php index b293a2dbdd7..e24e23b14e7 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_agenda.php +++ b/htdocs/knowledgemanagement/knowledgerecord_agenda.php @@ -49,7 +49,7 @@ if (GETPOST('actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("actioncode", "alpha", 3) ? GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ? GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : getDolGlobalString('AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT')); } $search_agenda_label = GETPOST('search_agenda_label'); @@ -211,7 +211,7 @@ if ($object->id > 0) { if (get_class($objthirdparty) == 'Societe') { $out .= '&socid='.urlencode($objthirdparty->id); } - $out .= (!empty($objcon->id) ? '&contactid='.urlencode($objcon->id) : '').'&percentage=-1'; + $out .= (!empty($objcon->id) ? '&contactid='.urlencode($objcon->id) : ''); //$out.=$langs->trans("AddAnAction").' '; //$out.=img_picto($langs->trans("AddAnAction"),'filenew'); //$out.=""; @@ -221,7 +221,7 @@ if ($object->id > 0) { print '
'; if (isModEnabled('agenda')) { - if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { + if (!empty($user->rights->agenda->myactions->create) || $user->hasRight('agenda', 'allactions', 'create')) { print ''.$langs->trans("AddAction").''; } else { print ''.$langs->trans("AddAction").''; diff --git a/htdocs/knowledgemanagement/knowledgerecord_card.php b/htdocs/knowledgemanagement/knowledgerecord_card.php index 908e13852f2..52143048f72 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_card.php +++ b/htdocs/knowledgemanagement/knowledgerecord_card.php @@ -393,7 +393,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea //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 .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 0, 1, '', 'maxwidth300'); $morehtmlref .= ''; $morehtmlref .= ''; $morehtmlref .= ''; @@ -401,7 +401,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $morehtmlref .= ''; $morehtmlref .= ''; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1, '', 'maxwidth300'); } } else { if (!empty($object->fk_project)) { @@ -478,7 +478,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Back to draft if ($object->status == $object::STATUS_VALIDATED) { - print dolGetButtonAction('', $langs->trans('SetToDraft'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=confirm_setdraft&confirm=yes', '', $permissiontoadd); + print dolGetButtonAction('', $langs->trans('SetToDraft'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=confirm_setdraft&confirm=yes&token='.newToken(), '', $permissiontoadd); } if (($object->status == $object::STATUS_DRAFT || $object->status == $object::STATUS_VALIDATED) && $permissiontovalidate) { print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=edit&token='.newToken(), '', $permissiontoadd); diff --git a/htdocs/knowledgemanagement/knowledgerecord_list.php b/htdocs/knowledgemanagement/knowledgerecord_list.php index dffd3d63d7b..7cd5a24c764 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_list.php +++ b/htdocs/knowledgemanagement/knowledgerecord_list.php @@ -447,8 +447,12 @@ print ''; print ''; print ''; print ''; +print ''; -$newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/knowledgemanagement/knowledgerecord_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 .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/knowledgemanagement/knowledgerecord_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); @@ -465,7 +469,7 @@ if ($search_all) { $fieldstosearchall[$key] = $langs->trans($val); $setupstring .= $key."=".$val.";"; } - print ''."\n"; + print ''."\n"; print '
'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
'."\n"; } @@ -501,7 +505,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 @@ -636,131 +640,148 @@ while ($i < $imaxinloop) { // Store properties in $object $object->setVarsFromFetchObj($obj); - // Show here line of result - $j = 0; - print '
'; - // Action column - if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { - print ''; - } - foreach ($object->fields as $key => $val) { - $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); - if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { - $cssforfield .= ($cssforfield ? ' ' : '').'center'; - } elseif ($key == 'status') { - $cssforfield .= ($cssforfield ? ' ' : '').'center'; + if ($i == ($imaxinloop - 1)) { + print ''; + print ''; } - - 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, ''); - } elseif ($key == 'fk_user_creat') { - if ($object->fk_user_creat > 0) { - if (isset($conf->cache['user'][$object->fk_user_creat])) { - $user_temp = $conf->cache['user'][$object->fk_user_creat]; - } else { - $user_temp = new User($db); - $user_temp->fetch($object->fk_user_creat); - $conf->cache['user'][$object->fk_user_creat] = $user_temp; - } - print $user_temp->getNomUrl(-1); + } else { + // Show here line of result + $j = 0; + print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; - if (!$i) { - $totalarray['nbfield']++; + } + foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']); + if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; + } elseif ($key == 'status') { + $cssforfield .= ($cssforfield ? ' ' : '').'center'; } - if (!empty($val['isameasure']) && $val['isameasure'] == 1) { + + if (in_array($val['type'], array('timestamp'))) { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } elseif ($key == 'ref') { + $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + } + + if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'status')) && empty($val['arrayofkeyval'])) { + $cssforfield .= ($cssforfield ? ' ' : '').'right'; + } + //if (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, ''); + } elseif ($key == 'fk_user_creat') { + if ($object->fk_user_creat > 0) { + if (isset($conf->cache['user'][$object->fk_user_creat])) { + $user_temp = $conf->cache['user'][$object->fk_user_creat]; + } else { + $user_temp = new User($db); + $user_temp->fetch($object->fk_user_creat); + $conf->cache['user'][$object->fk_user_creat] = $user_temp; + } + print $user_temp->getNomUrl(-1); + } + } elseif ($key == 'fk_user_modif') { + if ($object->fk_user_modif > 0) { + if (isset($conf->cache['user'][$object->fk_user_modif])) { + $user_temp = $conf->cache['user'][$object->fk_user_modif]; + } else { + $user_temp = new User($db); + $user_temp->fetch($object->fk_user_modif); + $conf->cache['user'][$object->fk_user_modif] = $user_temp; + } + print $user_temp->getNomUrl(-1); + } + } elseif ($key == 'fk_user_valid') { + if ($object->fk_user_valid > 0) { + if (isset($conf->cache['user'][$object->fk_user_valid])) { + $user_temp = $conf->cache['user'][$object->fk_user_valid]; + } else { + $user_temp = new User($db); + $user_temp->fetch($object->fk_user_valid); + $conf->cache['user'][$object->fk_user_valid] = $user_temp; + } + print $user_temp->getNomUrl(-1); + } + } elseif ($key == 'lang') { + $labellang = ($object->lang ? $langs->trans('Language_'.$object->lang) : ''); + print picto_from_langcode($object->lang, 'class="paddingrightonly saturatemedium opacitylow"'); + print $labellang; + } else { + print $object->showOutputField($val, $key, $object->$key, ''); + } + print ''; if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; + $totalarray['nbfield']++; } - if (!isset($totalarray['val'])) { - $totalarray['val'] = array(); + if (!empty($val['isameasure']) && $val['isameasure'] == 1) { + if (!$i) { + $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; + } + if (!isset($totalarray['val'])) { + $totalarray['val'] = array(); + } + if (!isset($totalarray['val']['t.'.$key])) { + $totalarray['val']['t.'.$key] = 0; + } + $totalarray['val']['t.'.$key] += $object->$key; } - if (!isset($totalarray['val']['t.'.$key])) { - $totalarray['val']['t.'.$key] = 0; - } - $totalarray['val']['t.'.$key] += $object->$key; } } - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - // Action column - if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { - print ''; + } + if (!$i) { + $totalarray['nbfield']++; } - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - - print ''."\n"; + print ''."\n"; + } $i++; } diff --git a/htdocs/langs/am_ET/datapolicy.lang b/htdocs/langs/am_ET/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/am_ET/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ar_DZ/datapolicy.lang b/htdocs/langs/ar_DZ/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ar_DZ/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ar_EG/datapolicy.lang b/htdocs/langs/ar_EG/datapolicy.lang new file mode 100644 index 00000000000..9fdf912baac --- /dev/null +++ b/htdocs/langs/ar_EG/datapolicy.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - datapolicy +DATAPOLICY_TIERS_CLIENT =عميل +DATAPOLICY_CONTACT_CLIENT =عميل diff --git a/htdocs/langs/ar_EG/main.lang b/htdocs/langs/ar_EG/main.lang index 970e5d4d1d2..4745434e9cb 100644 --- a/htdocs/langs/ar_EG/main.lang +++ b/htdocs/langs/ar_EG/main.lang @@ -22,6 +22,7 @@ FormatDateHourText=%B %d, %Y, %I:%M %p Closed=مقفول Closed2=مقفول CloseAs=اضبط الحالة على +OpenVerb=افتح Password=كلمة السر Connection=تسجيل دخول RefSupplier=المرجع. مورد diff --git a/htdocs/langs/ar_EG/propal.lang b/htdocs/langs/ar_EG/propal.lang index bd57090dbd4..62d9172d356 100644 --- a/htdocs/langs/ar_EG/propal.lang +++ b/htdocs/langs/ar_EG/propal.lang @@ -13,7 +13,6 @@ Prospect=فرصة DeleteProp=حذف العرض التجاري ValidateProp=اعتماد العرض التجاري AddProp=إنشاء عرض -ConfirmDeleteProp=هل أنت متأكد أنك تريد حذف هذا العرض التجاري؟ ConfirmValidateProp=هل أنت متأكد أنك تريد اعتماد هذا العرض التجاري تحت الاسم %s ؟ LastPropals=أحدث عروض %s LastModifiedProposals=أحدث العروض المعدلة %s @@ -49,7 +48,6 @@ ErrorPropalNotFound=العرض %s غير موجود AddToDraftProposals=أضف إلى مسودة العرض NoDraftProposals=لا توجد مسودات عروض CopyPropalFrom=إنشاء عرض تجاري عن طريق نسخ العرض الحالي -CreateEmptyPropal=إنشاء عرض تجاري فارغ أو من قائمة المنتجات / الخدمات DefaultProposalDurationValidity=مدة صلاحية العرض التجاري الافتراضي (بالأيام) ConfirmClonePropal=هل أنت متأكد أنك تريد استنساخ العرض التجاري %s ؟ ConfirmReOpenProp=هل أنت متأكد أنك تريد إعادة فتح العرض التجاري %s ؟ @@ -59,8 +57,8 @@ AvailabilityTypeAV_1W=أسبوع 1 AvailabilityTypeAV_1M=شهر 1 TypeContact_propal_internal_SALESREPFOLL=الممثل المتابع للعرض TypeContact_propal_external_BILLING=جهة اتصال فاتورة العميل -DocModelCyanDescription=نموذج عرض كامل DefaultModelPropalCreate=إنشاء النموذج الافتراضي DefaultModelPropalToBill=النموذج الافتراضي عند إغلاق عرض الأعمال (سيتم إصدار فاتورة به) +DocModelCyanDescription=نموذج عرض كامل ProposalCustomerSignature=قبول خطي وختم الشركة والتاريخ والتوقيع ProposalsStatisticsSuppliers=إحصاءات مقترحات البائعين diff --git a/htdocs/langs/ar_EG/recruitment.lang b/htdocs/langs/ar_EG/recruitment.lang deleted file mode 100644 index 1ed064a91d3..00000000000 --- a/htdocs/langs/ar_EG/recruitment.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - recruitment -ModuleRecruitmentName =توظيف -ModuleRecruitmentDesc =إدارة ومتابعة حملات التوظيف لشغل وظائف جديدة -RecruitmentSetup =إعداد التوظيف diff --git a/htdocs/langs/ar_EG/supplier_proposal.lang b/htdocs/langs/ar_EG/supplier_proposal.lang index 98769314093..ab10fd913c0 100644 --- a/htdocs/langs/ar_EG/supplier_proposal.lang +++ b/htdocs/langs/ar_EG/supplier_proposal.lang @@ -11,8 +11,6 @@ LastModifiedRequests=أحدث طلبات السعر المعدلة %s RequestsOpened=طلبات عروض اسعار مفتوحة SupplierProposalArea=منطقة عروض الموردين SupplierProposalShort=عرض المورد -SupplierProposals=عروض الموردين -SupplierProposalsShort=عروض الموردين NewAskPrice=طلب عرض سعر جديد ShowSupplierProposal=فتح عرض السعر AddSupplierProposal=عمل طلب عرض سعر @@ -30,7 +28,6 @@ SupplierProposalStatusValidatedShort=معتمد SupplierProposalStatusClosedShort=مقفول SupplierProposalStatusSignedShort=مقبول SupplierProposalStatusNotSignedShort=مرفوض -CopyAskFrom=قم بإنشاء طلب سعر عن طريق نسخ طلب موجود CreateEmptyAsk=إنشاء طلب فارغ ConfirmCloneAsk=هل أنت متأكد أنك تريد استنساخ طلب السعر %s ؟ ConfirmReOpenAsk=هل أنت متأكد أنك تريد فتح طلب السعر مرة أخرى %s ؟ @@ -39,9 +36,6 @@ SupplierProposalCard=بطاقة الطلب ConfirmDeleteAsk=هل أنت متأكد أنك تريد حذف طلب السعر هذا %s ؟ DefaultModelSupplierProposalCreate=إنشاء النموذج الافتراضي DefaultModelSupplierProposalClosed=القالب الافتراضي عند إغلاق طلب السعر (مرفوض) -ListOfSupplierProposals=قائمة طلبات عروض البائعين -ListSupplierProposalsAssociatedProject=قائمة عروض الموردين المرتبطة بالمشروع SupplierProposalsToClose=عروض موردين لإغلاق SupplierProposalsToProcess=عروض موردين لمعالجة -LastSupplierProposals=أحدث طلبات أسعار %s AllPriceRequests=جميع الطلبات diff --git a/htdocs/langs/ar_IQ/companies.lang b/htdocs/langs/ar_IQ/companies.lang new file mode 100644 index 00000000000..68a71bb368e --- /dev/null +++ b/htdocs/langs/ar_IQ/companies.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - companies +HasRelativeDiscountFromSupplier=You have a default discount of %s%% with this vendor +HasNoRelativeDiscountFromSupplier=No default relative discount with this vendor diff --git a/htdocs/langs/ar_IQ/propal.lang b/htdocs/langs/ar_IQ/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/ar_IQ/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/ar_JO/datapolicy.lang b/htdocs/langs/ar_JO/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ar_JO/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ar_SA/accountancy.lang b/htdocs/langs/ar_SA/accountancy.lang index 495ece856df..d4fb4d12a14 100644 --- a/htdocs/langs/ar_SA/accountancy.lang +++ b/htdocs/langs/ar_SA/accountancy.lang @@ -1,6 +1,6 @@ # Dolibarr language file - en_US - Accountancy (Double entries) Accountancy=المحاسبة -Accounting=محاسبة +Accounting=الحسابات ACCOUNTING_EXPORT_SEPARATORCSV=فاصل العمود لملف التصدير ACCOUNTING_EXPORT_DATE=تنسيق التاريخ لملف التصدير ACCOUNTING_EXPORT_PIECE=تصدير عدد القطعة @@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=حدد نوع إرجاع السطر ACCOUNTING_EXPORT_PREFIX_SPEC=تحديد بادئة لاسم الملف ThisService=هذه الخدمة ThisProduct=هذا المنتج -DefaultForService=افتراضي للخدمة -DefaultForProduct=افتراضي للمنتج +DefaultForService=Default for services +DefaultForProduct=Default for products ProductForThisThirdparty=منتج لهذا الطرف الثالث ServiceForThisThirdparty=خدمة لهذا الطرف الثالث CantSuggest=لا أستطيع أن أقترح @@ -59,6 +59,7 @@ MainAccountForSuppliersNotDefined=حساب المحاسبة الرئيسي لل MainAccountForUsersNotDefined=حساب المحاسبة الرئيسي للمستخدمين الغير محددين في الإعدادات MainAccountForVatPaymentNotDefined=حساب المحاسبة الرئيسي لدفعات (VAT) الغير محددين في الإعدادات MainAccountForSubscriptionPaymentNotDefined=حساب المحاسبة الرئيسي للمشتركين الغير محددين في الإعدادات +UserAccountNotDefined=لم يتم تعريف حساب في الحسابات في الاعدادات AccountancyArea=منطقة المحاسبة AccountancyAreaDescIntro=استخدام وحدة المحاسبة تم في عدة خطوات: @@ -100,7 +101,8 @@ ShowAccountingAccount=عرض حساب المحاسبة ShowAccountingJournal=عرض دفتر يومية ShowAccountingAccountInLedger=عرض حساب المحاسبة في دفتر الأستاذ ShowAccountingAccountInJournals=عرض حساب المحاسبة في دفاتر اليومية -AccountAccountingSuggest=حساب المحاسبة المقترح +DataUsedToSuggestAccount=Data used to suggest account +AccountAccountingSuggest=Account suggested MenuDefaultAccounts=الحسابات الافتراضية MenuBankAccounts=الحسابات المصرفية MenuVatAccounts=حسابات ضريبة القيمة المضافة @@ -125,6 +127,7 @@ WriteBookKeeping=تسجيل المعاملات في المحاسبة Bookkeeping=دفتر حسابات BookkeepingSubAccount=حساب استاذ فرعي AccountBalance=رصيد الحساب +AccountBalanceSubAccount=Sub-accounts balance ObjectsRef=مرجع الكائن المصدر CAHTF=Total purchase vendor before tax TotalExpenseReport=تقرير المصاريف الإجمالية @@ -164,42 +167,45 @@ ACCOUNTANCY_COMBO_FOR_AUX=تمكين قائمة التحرير والسرد لل ACCOUNTING_DATE_START_BINDING=تحديد موعد لبدء الربط والتحويل في المحاسبة. بعد هذا التاريخ ، لن يتم تحويل المعاملات إلى المحاسبة. ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=في تحويل المحاسبة ، ما هي الفترة المحددة افتراضيا -ACCOUNTING_SELL_JOURNAL=دفتر البيع اليومي -ACCOUNTING_PURCHASE_JOURNAL=دفتر الشراء اليومي -ACCOUNTING_MISCELLANEOUS_JOURNAL=دفتر المتفرقات اليومي +ACCOUNTING_SELL_JOURNAL=المبيعات في اليومية العامة (المبيعات و المرتجعات) +ACCOUNTING_PURCHASE_JOURNAL=المشتريات في اليومية العامة (المشتريات و المرتجعات) +ACCOUNTING_BANK_JOURNAL=النقدي اليومية ( المقبوضات و المدفوعات) ACCOUNTING_EXPENSEREPORT_JOURNAL=دفتر تقرير المصروف اليومي -ACCOUNTING_SOCIAL_JOURNAL=دفتر اليومية الاجتماعي +ACCOUNTING_MISCELLANEOUS_JOURNAL=اليومية العامة ACCOUNTING_HAS_NEW_JOURNAL=له دفتر يوميات جديد +ACCOUNTING_INVENTORY_JOURNAL=المخزون في اليومية +ACCOUNTING_SOCIAL_JOURNAL=دفتر اليومية الاجتماعي ACCOUNTING_RESULT_PROFIT=نتيجة حساب المحاسبي (الربح) ACCOUNTING_RESULT_LOSS=نتيجة حساب المحاسبي (الخسارة) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=دقتر الإغلاق -ACCOUNTING_ACCOUNT_TRANSFER_CASH=حساب التحويل البنكي الانتقالي +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=حساب التحويل البنكي الانتقالي -ACCOUNTING_ACCOUNT_SUSPENSE=حساب الانتظار -DONATION_ACCOUNTINGACCOUNT=حساب تسجيل التبرعات -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=حساب تسجيل الاشتراكات +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=حساب افتراضي لتسجيل إيداع العميل +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit UseAuxiliaryAccountOnCustomerDeposit=تخزين حساب العميل كحساب فردي في دفتر الأستاذ الفرعي لخطوط الدفعات المقدمة (إذا تم تعطيله ، فسيظل الحساب الفردي لبنود الدَفعة المقدمة فارغًا) -ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Accounting account by default to register supplier deposit +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty -ACCOUNTING_PRODUCT_BUY_ACCOUNT=حساب افتراضي للمنتجات المشتراة (يستخدم إذا لم يتم تحديده في ورقة المنتج) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=حساب افتراضي للمنتجات المشتراة في الاتحاد الاوروبي (يستخدم إذا لم يتم تحديده في ورقة المنتج) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=حساب افتراضي للمنتجات المشتراة والمستوردة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة المنتج) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=حساب افتراضي للمنتجات المباعة (يستخدم إذا لم يتم تحديده في ورقة المنتج) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=حساب افتراضي للمنتجات المباعة في الاتحاد الاوروبي (مستخدم إذا لم يتم تحديده في ورقة المنتج) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=حساب افتراضي للمنتجات المباعة والمصدرة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة المنتج) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=حساب افتراضي للخدمات المشتراة (يُستخدم إذا لم يتم تحديده في ورقة الخدمة) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=حساب افتراضي للخدمات المشتراة في الاتحاد الاوروبي (يستخدم إذا لم يتم تحديده في ورقة الخدمة) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=حساب افتراضي للخدمات المشتراة والمستوردة من المجموعة اﻹقتصادية اﻷوروبية(تُستخدم إذا لم يتم تحديدها في ورقة الخدمة) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=حساب افتراضي للخدمات المباعة (يُستخدم إذا لم يتم تحديده في ورقة الخدمة) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=حساب افتراضي للخدمات المباعة في الاتحاد الاوروبي (يُستخدم إذا لم يتم تحديده في ورقة الخدمة) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=حساب افتراضي للخدمات المباعة والمصدرة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة الخدمة) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=نوع الوثيقة Docdate=التاريخ @@ -214,7 +220,8 @@ Codejournal=دفتر اليومية JournalLabel=اسم دفتر اليومية NumPiece=رقم القطعة TransactionNumShort=رقم. العملية -AccountingCategory=مجموعة مخصصة +AccountingCategory=Custom group of accounts +AccountingCategories=Custom groups of accounts GroupByAccountAccounting=تجميع حسب حساب دفتر الأستاذ العام GroupBySubAccountAccounting=تجميع حسب حساب دفتر الأستاذ الفرعي AccountingAccountGroupsDesc=يمكنك هنا تحديد بعض مجموعات الحساب. سيتم استخدامها لتقارير المحاسبة الشخصية. @@ -262,19 +269,20 @@ ShowSubtotalByGroup=عرض المجموع الفرعي حسب المستوى Pcgtype=مجموعة الحساب PcgtypeDesc=تُستخدم مجموعة الحسابات كمعايير "تصفية" و "تجميع" محددة مسبقًا لبعض التقارير المحاسبية. على سبيل المثال ، يتم استخدام "الدخل" أو "المصاريف" كمجموعات لحسابات المنتجات لإنشاء تقرير المصاريف / الدخل. +AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports. Reconcilable=قابل للتسوية TotalVente=المبيعات الإجمالية قبل الضريبة TotalMarge=إجمالي هامش المبيعات -DescVentilCustomer=راجع هنا قائمة بنود فاتورة العميل المرتبطة (أو غير المرتبطة) بحساب المنتج -DescVentilMore=في معظم الحالات ، إذا كنت تستخدم منتجات أو خدمات محددة مسبقًا وقمت بتعيين رقم الحساب على بطاقة المنتج / الخدمة ، فسيكون التطبيق قادرًا على إجراء جميع عمليات الربط بين سطور الفاتورة وحساب مخطط الحسابات الخاص بك ، فقط بنقرة واحدة على الزر "%s" . إذا لم يتم تعيين الحساب على بطاقات المنتج / الخدمة أو إذا كان لا يزال لديك بعض الأسطر غير المرتبطة بحساب ، فسيتعين عليك إجراء ربط يدوي من القائمة " %s ". -DescVentilDoneCustomer=راجع هنا قائمة بنود فواتير العملاء وحساب منتجاتهم -DescVentilTodoCustomer=ربط بنود الفاتورة غير المرتبطة بحساب المنتج -ChangeAccount=قم بتغيير حساب المنتج / الخدمة للبنود المحددة باستخدام الحساب التالي: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=راجع هنا قائمة بنود فاتورة المورد المرتبطة أو غير المرتبطة بعد بحساب المنتج (فقط السجل الذي لم يتم نقله بالفعل في المحاسبة سيكون مرئي) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=راجع هنا قائمة بنود فواتير البائعين وحساباتهم DescVentilTodoExpenseReport=ربط بنود تقرير المصروفات غير المرتبطة بحساب الرسوم DescVentilExpenseReport=راجع هنا قائمة بنود تقرير المصروفات المرتبطة (أو غير المرتبطة) بحساب الرسوم @@ -286,20 +294,21 @@ DescClosure=استشر هنا عدد الحركات حسب الشهر التي OverviewOfMovementsNotValidated=نظرة عامة على الحركات التي لم يتم التحقق من صحتها وإغلاقها AllMovementsWereRecordedAsValidated=تم تسجيل جميع الحركات على أنها محققة ومغلقة NotAllMovementsCouldBeRecordedAsValidated=لا يمكن تسجيل جميع الحركات على أنها تم التحقق من صحتها وقفلها -ValidateMovements=التحقق من صحة السجل وقفله ... +ValidateMovements=التحقق و تقيد الحركة DescValidateMovements=سيتم حظر أي تعديل أو حذف للكتابة والحروف. يجب اعتماد جميع الإدخالات الخاصة بالتمرين وإلا فلن يكون الإغلاق ممكنًا ValidateHistory=ربط تلقائي AutomaticBindingDone=تم إجراء عمليات ربط تلقائية (%s) - الربط التلقائي غير ممكن لبعض السجلات (%s) +DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically. -ErrorAccountancyCodeIsAlreadyUse=خطأ، لا يمكنك حذف هذا الحساب المحاسبي لأنه مستخدم +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=الحركة غير متوازنة بشكل صحيح. الخصم = %s والائتمان = %s Balancing=موازنة FicheVentilation=بطاقة مرتبطة GeneralLedgerIsWritten=المعاملات مكتوبة في دفتر الأستاذ GeneralLedgerSomeRecordWasNotRecorded=لا يمكن تسجيل بعض المعاملات. إذا لم تكن هناك رسالة خطأ أخرى ، فربما يكون ذلك بسبب تسجيلها في دفتر اليومية بالفعل. NoNewRecordSaved=لا يوجد المزيد من السجلات لنقلها -ListOfProductsWithoutAccountingAccount=قائمة المنتجات غير مرتبطة بأي حساب +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=تغيير الربط Accounted=حسب في دفتر الأستاذ NotYetAccounted=لم يتم تحويلها بعد إلى المحاسبة @@ -322,9 +331,10 @@ AccountingJournalType1=عمليات متنوعة AccountingJournalType2=مبيعات AccountingJournalType3=مشتريات AccountingJournalType4=بنك -AccountingJournalType5=تقرير مصروفات +AccountingJournalType5=تقارير المصاريف AccountingJournalType8=الجرد AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=هذه الدفتر مستخدم بالفعل AccountingAccountForSalesTaxAreDefinedInto=ملاحظة: تم تعريف حساب ضريبة المبيعات في القائمة %s - %s NumberOfAccountancyEntries=عدد الادخالات @@ -332,10 +342,14 @@ NumberOfAccountancyMovements=عدد الحركات ACCOUNTING_DISABLE_BINDING_ON_SALES=تعطيل الربط والتحويل في المحاسبة على المبيعات (لن يتم أخذ فواتير العميل في الاعتبار في المحاسبة) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=تعطيل الربط والتحويل في المحاسبة على المشتريات (لن يتم أخذ فواتير البائعين في الاعتبار في المحاسبة) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=تعطيل الربط والتحويل في المحاسبة على تقارير المصروفات (لن يتم أخذ تقارير المصروفات في الاعتبار في المحاسبة) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting +ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=ضع علامة على الخطوط المصدرة كـ (لتعديل سطر ، ستحتاج إلى حذف المعاملة بالكامل وإعادة تحويلها إلى المحاسبة) NotifiedValidationDate=تحقق من صحة الإدخالات التي تم تصديرها وقفلها (نفس التأثير من ميزة "%s" ، ولن يكون تعديل الأسطر وحذفها بالتأكيد ممكنًا) +NotifiedExportFull=Export documents ? DateValidationAndLock=التحقق من صحة التاريخ والقفل ConfirmExportFile=تأكيد إنشاء ملف محاسبي تصدير؟ ExportDraftJournal=تصدير مسودة دفتر اليومية @@ -392,7 +406,7 @@ SaleLocal=بيع محلي 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. +SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed. ForbiddenTransactionAlreadyExported=ممنوع: تم التحقق من صحة المعاملة و / أو تصديرها. ForbiddenTransactionAlreadyValidated=ممنوع: تم التحقق من صحة المعاملة. ## Dictionary @@ -401,7 +415,11 @@ Calculated=تم حسابه Formula=معادلة ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=غير قابل للتوفيق +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=لم يتم تعديل تسوية AccountancyOneLetteringModifiedSuccessfully=تم تعديل أحد التوفيق بنجاح AccountancyLetteringModifiedSuccessfully=تعديل %s بنجاح @@ -410,8 +428,9 @@ AccountancyOneUnletteringModifiedSuccessfully=تم تعديل أحد ملفات AccountancyUnletteringModifiedSuccessfully=تم تعديل %s بنجاح ## Confirm box -ConfirmMassUnlettering=تأكيد مجمّع غير قابل للتسوية -ConfirmMassUnletteringQuestion=هل أنت متأكد من أنك تريد إلغاء التوفيق بين التسجيلة (السجلات) المحددة %s؟ +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=تأكيد الحذف الضخم ConfirmMassDeleteBookkeepingWritingQuestion=سيؤدي هذا إلى حذف المعاملة من المحاسبة (سيتم حذف جميع الأسطر المتعلقة بنفس المعاملة) هل أنت متأكد من أنك تريد حذف السجل (السجلات) المحددة %s؟ @@ -431,6 +450,7 @@ AccountancyErrorMismatchLetterCode=عدم تطابق في التوفيق بين AccountancyErrorMismatchBalanceAmount=الرصيد (%s) لا يساوي 0 AccountancyErrorLetteringBookkeeping=حدثت أخطاء بخصوص المعاملات: %s ErrorAccountNumberAlreadyExists=رقم المحاسبة %s موجود بالفعل +ErrorArchiveAddFile=Can't put "%s" file in archive ## Import ImportAccountingEntries=مداخيل حسابية @@ -457,6 +477,7 @@ FECFormatMulticurrencyCode=كود متعدد العملات (ايديفيز) DateExport=تاريخ التصدير WarningReportNotReliable=تحذير ، هذا التقرير لا يستند إلى دفتر الأستاذ ، لذلك لا يحتوي على معاملة تم تعديلها يدويًا في دفتر الأستاذ. إذا كان تسجيل دفتر اليومية الخاص بك محدثًا ، فسيكون عرض مسك الدفاتر أكثر دقة. ExpenseReportJournal=تقرير دفتر المصاريف -InventoryJournal=دفتر الجرد +DocsAlreadyExportedAreExcluded=Docs already exported are excluded +ClickToHideAlreadyExportedLines=Click to hide already exported lines NAccounts=%s حساباً diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index 16ed55874ab..30ca6ac2dd3 100644 --- a/htdocs/langs/ar_SA/admin.lang +++ b/htdocs/langs/ar_SA/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=ترتيب العميل WarningModuleNotActive=يجب أن يكون النموذج %s مفعل WarningOnlyPermissionOfActivatedModules=فقط التصاريح المتعلقة بالنماذج المنشطة تظهر هنا. يمكنك تفعيل نماذج أخرى في الصفحة الرئيسية-> لإعداد ت-> صفحة النماذج DolibarrSetup=تركيب أو تحديث دوليبار -InternalUser=مستخدم داخلي -ExternalUser=مستخدم خارجي InternalUsers=مستخدمين داخليين ExternalUsers=مستخدمين خارجيين UserInterface=الواجهة العامة @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=مضيف SMTP / SMTPS (القيمة الافتراضية MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=منفذ SMTP / SMTPS (غير معرّف في PHP على أنظمة شبيهة بنظام Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=مضيف SMTP / SMTPS (غير معرّف في PHP على أنظمة شبيهة بنظام Unix) MAIN_MAIL_EMAIL_FROM=عنوان بريد المرسل لرسائل البريد الإلكترونية التلقائية (القيمة الاولية في ملف اعدادات لغة بي اتش بي %s ) +EMailHelpMsgSPFDKIM=لكي لا يتم وضع البريد من المرسل من نظام دوليبار ضمن البريد الضار ,تأكد ان الخادم مخول بأرسال البريد من هذا العنوان من خلال عدادات SPF & DKIM . MAIN_MAIL_ERRORS_TO=عنوان رسائل البريد الإلكترونية المرجعي لأخطاء الارسال (الحقل "الاخطاء إلى" ) في البريد المرسل MAIN_MAIL_AUTOCOPY_TO= نسخ (نسخة كربونية) كل رسائل البريد الإلكترونية المرسلة الى MAIN_DISABLE_ALL_MAILS=تعطيل جميع عمليات إرسال البريد الإلكتروني (لأغراض الاختبار أو العروض التوضيحية) @@ -323,7 +322,7 @@ ModuleSetup=إعداد وحدة ModulesSetup=الوحدات النمطية / إعداد التطبيق ModuleFamilyBase=نظام ModuleFamilyCrm=إدارة علاقات العملاء (CRM) -ModuleFamilySrm=إدارة علاقات البائعين (VRM) +ModuleFamilySrm=ادارة الموردين(VRM) ModuleFamilyProducts=إدارة المنتج (PM) ModuleFamilyHr=إدارة الموارد البشرية (HR) ModuleFamilyProjects=مشاريع / العمل التعاوني @@ -439,8 +438,10 @@ Unique=Unique Boolean=منطقي (مربع اختيار واحد) ExtrafieldPhone = هاتف ExtrafieldPrice = الأسعار +ExtrafieldPriceWithCurrency=السعر بالعملة ExtrafieldMail = Email ExtrafieldUrl = عنوان Url +ExtrafieldIP = الملكية الفكرية ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table ExtrafieldSeparator=فاصل (ليس حقلاً) @@ -490,7 +491,7 @@ DisplayCompanyManagers=عرض أسماء المديرين DisplayCompanyInfoAndManagers=عرض عنوان الشركة وأسماء المديرين EnableAndSetupModuleCron=إذا كنت تريد إنشاء هذه الفاتورة المتكررة تلقائيًا ، فيجب تمكين الوحدة النمطية * %s * وإعدادها بشكل صحيح. بخلاف ذلك ، يجب أن يتم إنشاء الفواتير يدويًا من هذا النموذج باستخدام الزر * إنشاء *. لاحظ أنه حتى إذا قمت بتمكين الإنشاء التلقائي ، فلا يزال بإمكانك تشغيل الإنشاء اليدوي بأمان. لا يمكن إنشاء نسخ مكررة لنفس الفترة. ModuleCompanyCodeCustomerAquarium=%s متبوعًا بكود العميل لكود محاسبة العميل -ModuleCompanyCodeSupplierAquarium=%s متبوعًا بكود البائع لكود محاسبة البائع +ModuleCompanyCodeSupplierAquarium=%sرقم المورد يتبعة رقم حسابه في الحسابات ModuleCompanyCodePanicum=قم بإرجاع رمز محاسبة فارغ. ModuleCompanyCodeDigitaria=إرجاع رمز محاسبة مركب وفقًا لاسم الطرف الثالث. يتكون الرمز من بادئة يمكن تحديدها في الموضع الأول متبوعًا بعدد الأحرف المحددة في رمز الجهة الخارجية. ModuleCompanyCodeCustomerDigitaria=%s متبوعًا باسم العميل المقطوع بعدد الأحرف: %s لكود محاسبة العميل. @@ -501,7 +502,8 @@ WarningPHPMail=تحذير: يستخدم الإعداد لإرسال رسائل WarningPHPMailA=- يزيد استخدام خادم مزود خدمة البريد الإلكتروني من مصداقية بريدك الإلكتروني ، لذا فهو يزيد من إمكانية التسليم دون أن يتم وضع علامة عليه كرسائل اقتحامية WarningPHPMailB=- لا يسمح لك بعض مزودي خدمة البريد الإلكتروني (مثل Yahoo) بإرسال بريد إلكتروني من خادم آخر غير الخادم الخاص بهم. يستخدم الإعداد الحالي الخاص بك خادم التطبيق لإرسال بريد إلكتروني وليس خادم مزود البريد الإلكتروني الخاص بك ، لذلك سيطلب بعض المستلمين (المتوافق مع بروتوكول DMARC المقيد) ، مزود البريد الإلكتروني الخاص بك ما إذا كان بإمكانهم قبول بريدك الإلكتروني وبعض موفري البريد الإلكتروني (مثل Yahoo) قد تستجيب بـ "لا" لأن الخادم ليس خادمهم ، لذلك قد لا يتم قبول عدد قليل من رسائل البريد الإلكتروني المرسلة للتسليم (كن حذرًا أيضًا من حصة الإرسال لمزود البريد الإلكتروني الخاص بك). WarningPHPMailC=- يعد استخدام خادم SMTP الخاص بموفر خدمة البريد الإلكتروني الخاص بك لإرسال رسائل البريد الإلكتروني أمرًا مثيرًا للاهتمام أيضًا ، لذا سيتم أيضًا حفظ جميع رسائل البريد الإلكتروني المرسلة من التطبيق في دليل "البريد المرسل" الخاص بصندوق البريد الخاص بك. -WarningPHPMailD=كذلك ، يوصى بتغيير طريقة إرسال رسائل البريد الإلكتروني إلى القيمة "SMTP". إذا كنت تريد حقًا الاحتفاظ بالطريقة الافتراضية "PHP" لإرسال رسائل البريد الإلكتروني ، فما عليك سوى تجاهل هذا التحذير أو إزالته عن طريق ضبط MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP ثابتًا على 1 في Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=إذا كان موفر البريد الإلكتروني SMTP بحاجة إلى تقييد عميل البريد الإلكتروني لبعض عناوين IP (نادر جدًا) ، فهذا هو عنوان IP الخاص بوكيل مستخدم البريد (MUA) لتطبيق ERP CRM الخاص بك: %s . WarningPHPMailSPF=إذا كان اسم المجال في عنوان البريد الإلكتروني الخاص بالمرسل محميًا بسجل SPF (اسأل مسجل اسم المجال الخاص بك) ، يجب عليك إضافة عناوين IP التالية في سجل SPF الخاص بـ DNS لمجالك: %s . ActualMailSPFRecordFound=تم العثور على سجل SPF الفعلي (للبريد الإلكتروني %s): %s @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
مثال:
لكي يقوم النموذ PageUrlForDefaultValuesList=
مثال:
بالنسبة للصفحة التي تسرد جهات خارجية ، فهي %s .
بالنسبة لعنوان URL للوحدات الخارجية المثبتة في الدليل المخصص ، لا تقم بتضمين "custom /" لذا استخدم مسارًا مثل mymodule / mypagelist.php وليس custom / mymodule / mypagelist.php.
إذا كنت تريد القيمة الافتراضية فقط إذا كان عنوان url يحتوي على بعض المعلمات ، فيمكنك استخدام %s AlsoDefaultValuesAreEffectiveForActionCreate=لاحظ أيضًا أن الكتابة فوق القيم الافتراضية لإنشاء النموذج تعمل فقط للصفحات التي تم تصميمها بشكل صحيح (لذلك مع إجراء المعلمة = إنشاء أو تقديم ...) EnableDefaultValues=تفعيل تخصيص القيم الافتراضية -EnableOverwriteTranslation=تفعيل استخدام الترجمة المكتوبة +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=تم العثور على ترجمة للمفتاح بهذا الرمز. لتغيير هذه القيمة ، يجب عليك تحريرها من Home-Setup-translation. WarningSettingSortOrder=تحذير ، قد يؤدي تعيين ترتيب فرز افتراضي إلى حدوث خطأ تقني عند الانتقال إلى صفحة القائمة إذا كان الحقل حقلاً غير معروف. إذا واجهت مثل هذا الخطأ ، فارجع إلى هذه الصفحة لإزالة ترتيب الفرز الافتراضي واستعادة السلوك الافتراضي. Field=حقل @@ -645,9 +647,9 @@ Module2400Name=الأحداث / الأجندة Module2400Desc=تتبع الأحداث. سجل الأحداث التلقائية لأغراض التتبع أو سجل الأحداث أو الاجتماعات اليدوية. هذه هي الوحدة الرئيسية للإدارة الجيدة لعلاقات العملاء أو البائعين. Module2500Name=DMS / ECM Module2500Desc=نظام إدارة الوثائق / إدارة المحتوى الإلكتروني. التنظيم التلقائي للمستندات التي تم إنشاؤها أو تخزينها. شاركهم عند الحاجة. -Module2600Name=خدمات API / ويب (خادم SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=تمكين الخدمات API Dolibarr الخادم SOAP توفير -Module2610Name=خدمات API / ويب (خادم REST) +Module2610Name=API / Web services (REST server) Module2610Desc=تمكين الخادم تقديم الخدمات API Dolibarr REST Module2660Name=WebServices الدعوة (العميل SOAP) Module2660Desc=تمكين عميل خدمات الويب Dolibarr (يمكن استخدامه لإرسال البيانات / الطلبات إلى خوادم خارجية. يتم دعم أوامر الشراء فقط حاليًا.) @@ -698,6 +700,7 @@ Module62000Name=شروط التجارة الدولية Module62000Desc=إضافة ميزات لإدارة Incoterms Module63000Name=مصادر Module63000Desc=إدارة الموارد (طابعات ، سيارات ، غرف ، ...) لتخصيصها للمناسبات +Module94160Name=Receptions Permission11=قراءة الفواتير Permission12=إنشاء / تعديل فواتير العملاء Permission13=إبطال فواتير العميل @@ -842,9 +845,9 @@ Permission286=تصدير اتصالات Permission291=قراءة التعريفات Permission292=مجموعة أذونات على التعريفات Permission293=تعديل تعريفات العميل -Permission300=قراءة الباركود -Permission301=إنشاء / تعديل الباركود -Permission302=حذف الباركود +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Delete barcodes Permission311=قراءة الخدمات Permission312=تعيين خدمة / الاشتراك في التعاقد Permission331=قراءة العناوين @@ -940,9 +943,9 @@ Permission1190=الموافقة على (الموافقة الثانية) أوا Permission1191=أوامر تصدير الموردين وخصائصها Permission1201=ونتيجة للحصول على التصدير Permission1202=إنشاء / تعديل للتصدير -Permission1231=اقرأ فواتير البائع -Permission1232=إنشاء / تعديل فواتير البائعين -Permission1233=التحقق من صحة فواتير البائع +Permission1231=استعراض فاتورة المشتريات +Permission1232=Create/modify vendor invoices +Permission1233=Validate vendor invoices Permission1234=احذف فواتير البائع Permission1235=إرسال فواتير البائع عبر البريد الإلكتروني Permission1236=تصدير فواتير البائع والسمات والمدفوعات @@ -971,13 +974,14 @@ Permission3301=إنشاء وحدات جديدة Permission4001=اقرأ المهارة / الوظيفة / المنصب Permission4002=إنشاء / تعديل المهارة / الوظيفة / المنصب Permission4003=حذف المهارة / الوظيفة / المنصب -Permission4020=اقرأ التقييمات -Permission4021=إنشاء / تعديل التقييم الخاص بك -Permission4022=التحقق من صحة التقييم -Permission4023=حذف التقييم -Permission4030=انظر قائمة المقارنة +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=اقرأ المعلومات الشخصية Permission4032=اكتب معلومات شخصية +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=اقرأ محتوى الموقع Permission10002=إنشاء / تعديل محتوى موقع الويب (محتوى html و javascript) Permission10003=إنشاء / تعديل محتوى الموقع (كود php الديناميكي). خطير ، يجب أن يكون محجوزًا للمطورين المقيدين. @@ -1081,6 +1085,10 @@ DictionaryAssetDisposalType=نوع التصرف في الأصول TypeOfUnit=نوع الوحدة SetupSaved=تم حفظ الإعدادات SetupNotSaved=الإعدادات لم تحفظ +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=خطاء اثناء الحذف +EntryDeleted=العنصر محذوف BackToModuleList=العودة إلى قائمة الوحدات BackToDictionaryList=رجوع إلى قائمة القواميس TypeOfRevenueStamp=نوع الطابع الضريبي @@ -1244,6 +1252,7 @@ AreaForAdminOnly=يمكن تعيين معطيات الإعدادات بواسط SystemInfoDesc=معلومات النظام هي معلومات فنية متنوعة تحصل عليها في وضع القراءة فقط وتكون مرئية للمسؤولين فقط. SystemAreaForAdminOnly=هذه المنطقة متاحة للمستخدمين المسؤولين فقط. لا يمكن لأذونات مستخدم دوليبار تغيير هذا التقييد. CompanyFundationDesc=قم بتحرير معلومات شركتك | مؤسستك. ثم انقر فوق الزر "%s" في أسفل الصفحة عند الانتهاء. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=إذا كان لديك محاسب / محاسب خارجي ، يمكنك هنا تعديل المعلومات الخاصة به. AccountantFileNumber=كود المحاسب DisplayDesc=يمكن هنا تعديل المعلمات التي تؤثر على شكل التطبيق وطريقة عرضه. @@ -1294,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=يجب تشغيل هذا الأ YourPHPDoesNotHaveSSLSupport=وظائف خدمة تصميم المواقع لا تتوفر في بي الخاص بك DownloadMoreSkins=مزيد من جلود بتحميل SimpleNumRefModelDesc=لعرض الرقم المرجعي بالتنسيق %syymm-nnnn حيث yy السنة و mm الشهر و nnnn هو رقم متسلسل يتزايد تلقائيًا بدون إعادة تعيين +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=إرجاع الرقم المرجعي بالتنسيق %s-nnnn حيث nnnn عبارة عن رقم تزايد تلقائي متسلسل بدون إعادة تعيين ShowProfIdInAddress=إظهار الهوية المهنية مع العناوين ShowVATIntaInAddress=إخفاء رقم ضريبة القيمة المضافة داخل المجتمع @@ -1380,7 +1391,7 @@ GetBarCode=الحصول على الباركود NumberingModules=نماذج الترقيم DocumentModules=نماذج الوثائق ##### Module password generation -PasswordGenerationStandard=قم بإرجاع كلمة المرور التي تم إنشاؤها وفقًا لخوارزمية Dolibarr الداخلية: %s أحرف تحتوي على أرقام وأحرف مشتركة بأحرف صغيرة. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=لا تقترح كلمة مرور تم إنشاؤها. يجب كتابة كلمة المرور يدويًا. PasswordGenerationPerso=ترجع كلمة المرور الخاصة بك وفقا لتكوين المعرفة شخصيا. SetupPerso=وفقا لتكوين الخاصة بك @@ -1434,6 +1445,10 @@ SuppliersPayment=مدفوعات الموردين SupplierPaymentSetup=إعداد مدفوعات البائعين InvoiceCheckPosteriorDate=تحقق من تاريخ التجهيز قبل المصادقة InvoiceCheckPosteriorDateHelp=يُمنع التحقق من صحة الفاتورة إذا كان تاريخها سابقًا لتاريخ آخر فاتورة من نفس النوع. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
- Category of operations: Delivery of goods
- Category of operations: Provision of services
- Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=وحدة إعداد مقترحات تجارية ProposalsNumberingModules=اقتراح نماذج تجارية الترقيم @@ -1476,11 +1491,12 @@ WatermarkOnDraftContractCards=العلامة المائية على مسودات ##### Members ##### MembersSetup=أعضاء وحدة الإعداد MemberMainOptions=الخيارات الرئيسية +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= إدارة تسجيل الدخول لكل عضو AdherentMailRequired=البريد الإلكتروني مطلوب لإنشاء عضو جديد MemberSendInformationByMailByDefault=مربع لإرسال الرسائل للأعضاء تأكيدا على افتراضي MemberCreateAnExternalUserForSubscriptionValidated=قم بإنشاء تسجيل دخول مستخدم خارجي لكل اشتراك عضو جديد تم التحقق من صحته -VisitorCanChooseItsPaymentMode=يمكن للزائر الاختيار من بين طرق الدفع المتاحة +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=قم بتمكين التذكير التلقائي عبر البريد الإلكتروني بالاشتراكات منتهية الصلاحية. ملاحظة: يجب تمكين الوحدة النمطية %s وإعدادها بشكل صحيح لإرسال التذكيرات. MembersDocModules=قوالب المستندات للوثائق التي تم إنشاؤها من سجل الأعضاء ##### LDAP setup ##### @@ -1742,8 +1758,8 @@ ActivateFCKeditor=تفعيل محرر متقدم ل: FCKeditorForNotePublic=إنشاء / إصدار WYSIWIG لعناصر الحقل "الملاحظات العامة" FCKeditorForNotePrivate=إنشاء / إصدار WYSIWIG للحقل "ملاحظات خاصة" للعناصر FCKeditorForCompany=إنشاء / إصدار WYSIWIG للوصف الميداني للعناصر (باستثناء المنتجات / الخدمات) -FCKeditorForProduct=إنشاء / إصدار WYSIWIG للوصف الميداني للمنتجات / الخدمات -FCKeditorForProductDetails=إنشاء \\ تعديل تفاصيل المنتجات على طريقة الطباعة "ما تراه ستحصل عليه" لجميع المستندات (المقترحات،الاوامر،الفواتير،...) تحذير: إستخدام هذه الخاصية غير منصوح به بشدة بسبب مشاكل المحارف الخاصة وتنسيق الصفحات وذلك عند توليد ملفات بصيغة المستندات المتنقلة . +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG إنشاء / الطبعة بالبريد FCKeditorForUserSignature=إنشاء WYSIWIG / طبعة التوقيع المستعمل FCKeditorForMail=إنشاء / إصدار WYSIWIG لجميع البريد (باستثناء الأدوات-> البريد الإلكتروني) @@ -1766,7 +1782,7 @@ DetailMenuHandler=قائمة المعالج حيث تظهر قائمة جديد DetailMenuModule=اسم وحدة قائمة في حال الدخول من وحدة DetailType=نوع القائمة (أعلى أو إلى اليسار) DetailTitre=قائمة علامة أو بطاقة رمز للترجمة -DetailUrl=عنوان القائمة حيث يرسل لك (عنوان الارتباط المطلق أو خارجية مع وصلة http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=شرط أن لا تظهر أو الدخول DetailRight=حالة رمادية غير مصرح بها للعرض القوائم DetailLangs=لانغ لتسمية اسم ملف الترجمة مدونة @@ -1837,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=انخفاض المخزون في نق CashDeskYouDidNotDisableStockDecease=لم تقم بتعطيل خفض المخزون عند إجراء عملية بيع من نقطة البيع. ومن ثم مطلوب مستودع. CashDeskForceDecreaseStockLabel=تم فرض انخفاض مخزون المنتجات الدفعية. CashDeskForceDecreaseStockDesc=التقليل أولاً من خلال أقدم تواريخ الأكل والبيع. -CashDeskReaderKeyCodeForEnter=رمز المفتاح لـ "Enter" المحدد في قارئ الرمز الشريطي (مثال: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=إعداد وحدة المرجعية BookmarkDesc=تسمح لك هذه الوحدة بإدارة الإشارات المرجعية. يمكنك أيضًا إضافة اختصارات إلى أي صفحات Dolibarr أو مواقع ويب خارجية في القائمة اليسرى. @@ -1875,7 +1891,7 @@ SuppliersInvoiceNumberingModel=نماذج ترقيم فواتير البائعي IfSetToYesDontForgetPermission=في حالة التعيين على قيمة غير فارغة ، لا تنس منح الأذونات للمجموعات أو المستخدمين المسموح لهم بالموافقة الثانية ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind الإعداد وحدة -PathToGeoIPMaxmindCountryDataFile=مسار الملف الذي يحتوي على Maxmind ip لترجمة الدولة.
أمثلة:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat a0342fccfda19bzeo /usr/Ghare/Lite2IP/ +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=لاحظ أن الملكية الفكرية الخاصة بك على البيانات القطرية الملف يجب أن تكون داخل الدليل الخاص بي يمكن قراءة (راجع الإعداد open_basedir بى وأذونات نظام الملفات). YouCanDownloadFreeDatFileTo=يمكنك تحميل نسخة تجريبية مجانية من GeoIP ملف Maxmind البلاد في ٪ s. YouCanDownloadAdvancedDatFileTo=كما يمكنك تحميل نسخة كاملة أكثر من ذلك ، مع التحديثات ، من GeoIP ملف Maxmind البلاد في ٪ s. @@ -1907,7 +1923,7 @@ NoAmbiCaracAutoGeneration=لا تستخدم الأحرف الغامضة ("1"، " SalariesSetup=الإعداد للرواتب وحدة SortOrder=ترتيب Format=شكل -TypePaymentDesc=0: نوع الدفع للعميل ، 1: نوع الدفع للبائع ، 2: نوع الدفع للعملاء والموردين +TypePaymentDesc=0: طريقةالدفع العميل ، 1: نوع الدفع للبائع ، 2: طريقة الدفع العملاء و سداد الموردين IncludePath=يشمل المسار (المحدد في متغير%s) ExpenseReportsSetup=إعداد تقارير المصروفات وحدة TemplatePDFExpenseReports=قوالب المستند لتوليد حساب ثيقة تقرير @@ -1926,6 +1942,7 @@ BackupDumpWizard=معالج لإنشاء ملف تفريغ قاعدة البيا BackupZipWizard=معالج لبناء أرشيف دليل المستندات SomethingMakeInstallFromWebNotPossible=تركيب وحدة خارجية غير ممكن من واجهة ويب للسبب التالي: SomethingMakeInstallFromWebNotPossible2=لهذا السبب ، فإن عملية الترقية الموضحة هنا هي عملية يدوية لا يجوز إلا لمستخدم ذي امتيازات القيام بها. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=تثبيت وحدة خارجية من التطبيق قد تم تعطيلها من قبل المسؤول. يجب أن يطلب منه إزالة الملف٪ s للسماح هذه الميزة. ConfFileMustContainCustom=يحتاج تثبيت أو بناء وحدة خارجية من التطبيق إلى حفظ ملفات الوحدة النمطية في الدليل %s . لكي تتم معالجة هذا الدليل بواسطة Dolibarr ، يجب عليك إعداد conf / conf.php لإضافة سطري التوجيه:
$ dolibarr_main_url_root_alt = '/root_alt؛
$ dolibarr_main_document_root_alt = '%s / مخصص' ؛ HighlightLinesOnMouseHover=تسليط الضوء على خطوط الجدول عندما يمر تحرك الماوس فوق @@ -2053,6 +2070,8 @@ RemoveSpecialChars=إزالة الأحرف الخاصة COMPANY_AQUARIUM_CLEAN_REGEX=مرشح Regex لتنظيف القيمة (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=مرشح Regex لتنظيف القيمة (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=مكرر غير مسموح به +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=مسؤول حماية البيانات (DPO أو خصوصية البيانات أو جهة اتصال GDPR) GDPRContactDesc=إذا قمت بتخزين البيانات الشخصية في نظام المعلومات الخاص بك ، فيمكنك تسمية جهة الاتصال المسؤولة عن اللائحة العامة لحماية البيانات هنا HelpOnTooltip=نص المساعدة للظهور في تلميح الأداة @@ -2080,6 +2099,7 @@ MailboxTargetDirectory=دليل الهدف صندوق البريد EmailcollectorOperations=العمليات التي يقوم بها المجمع EmailcollectorOperationsDesc=يتم تنفيذ العمليات من أعلى إلى أسفل الترتيب MaxEmailCollectPerCollect=أقصى عدد من رسائل البريد الإلكتروني التي تم جمعها لكل مجموعة +TestCollectNow=Test collect CollectNow=اجمع الآن ConfirmCloneEmailCollector=هل تريد بالتأكيد استنساخ مُجمع البريد الإلكتروني %s؟ DateLastCollectResult=تاريخ آخر جمع حاول @@ -2183,6 +2203,7 @@ ShowProjectLabel=تسمية المشروع PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=تضمين الاسم المستعار في اسم الطرف الثالث THIRDPARTY_ALIAS=اسم الطرف الثالث - الاسم المستعار الطرف الثالث ALIAS_THIRDPARTY=الاسم المستعار للطرف الثالث - اسم الطرف الثالث +PDFIn2Languages=عرض الملصق في البي دي اف بلغتين PDF_USE_ALSO_LANGUAGE_CODE=اذا كنت ترغب في تكرار بعض النصوص بلغتين مختلفتين في ملفاتك المولدة بصيغة المستندات المتنقلة . يجب عليك ان ان تحدد اللغة الثانية هنا حتى يتسنى للملفات المولدة ان تحتوي على لغتين في نفس الصفحة . اللغة المختارة اثناء توليد المستند واللغة المختارة هنا (فقط بعض قوالب صيغة المستندات المتنقلة تدعم هذه الميزة) . ابق الخيار فارغاً للتوليد بلغة واحدة PDF_USE_A=إنشاء مستندات PDF بتنسيق PDF / A بدلاً من تنسيق PDF الافتراضي FafaIconSocialNetworksDesc=أدخل هنا رمز رمز FontAwesome. إذا كنت لا تعرف ما هو FontAwesome ، فيمكنك استخدام القيمة العامة fa-address-book. @@ -2211,12 +2232,12 @@ MailToPartnership=شراكة AGENDA_EVENT_DEFAULT_STATUS=حالة الحدث الافتراضية عند إنشاء حدث من النموذج YouShouldDisablePHPFunctions=يجب عليك تعطيل وظائف PHP IfCLINotRequiredYouShouldDisablePHPFunctions=باستثناء إذا كنت بحاجة إلى تشغيل أوامر النظام في رمز مخصص ، يجب عليك تعطيل وظائف PHP -PHPFunctionsRequiredForCLI=لغرض الصدفة (مثل النسخ الاحتياطي للوظيفة المجدولة أو تشغيل برنامج منشط) ، يجب أن تحتفظ بوظائف PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=لم يتم العثور على ملفات أو أدلة قابلة للكتابة للبرامج الشائعة في الدليل الجذر الخاص بك (جيد) RecommendedValueIs=موصى به: %s Recommended=موصى بها NotRecommended=لا ينصح -ARestrictedPath=بعض المسار المقيد +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=تحقق من وجود تحديثات الوحدات الخارجية CheckForModuleUpdateHelp=سيتصل هذا الإجراء بمحرري الوحدات الخارجية للتحقق من توفر إصدار جديد. ModuleUpdateAvailable=تحديث متاح @@ -2264,7 +2285,7 @@ LateWarningAfter=تحذير "متأخر" بعد TemplateforBusinessCards=قالب لبطاقة عمل بحجم مختلف InventorySetup= إعداد الجرد ExportUseLowMemoryMode=استخدم وضع ذاكرة منخفضة -ExportUseLowMemoryModeHelp=استخدم وضع الذاكرة المنخفضة لتنفيذ تنفيذ التفريغ (يتم الضغط من خلال أنبوب بدلاً من ذاكرة PHP). لا تسمح هذه الطريقة بالتحقق من اكتمال الملف ولا يمكن الإبلاغ عن رسالة الخطأ إذا فشلت. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. ModuleWebhookName = الويب هوك ModuleWebhookDesc = واجهة للقبض على مشغلات dolibarr وإرسالها إلى عنوان URL @@ -2288,6 +2309,8 @@ IconOnly=رمز فقط - نص على تلميح الأداة فقط INVOICE_ADD_ZATCA_QR_CODE=إظهار رمز الاستجابة السريعة ZATCA على الفواتير INVOICE_ADD_ZATCA_QR_CODEMore=تحتاج بعض الدول العربية إلى رمز الاستجابة السريعة هذا على فواتيرها INVOICE_ADD_SWISS_QR_CODE=أظهر رمز QR-Bill السويسري على الفواتير +INVOICE_SHOW_SHIPPING_ADDRESS=عرض عنوان الشحن +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=رابط URL للشبكة الاجتماعية. استخدم {socialid} للجزء المتغير الذي يحتوي على معرف الشبكة الاجتماعية. IfThisCategoryIsChildOfAnother=إذا كانت هذه الفئة تابعة لفئة أخرى DarkThemeMode=وضع المظهر الداكن @@ -2307,3 +2330,28 @@ UsePassword=استخدم كلمة مرور UseOauth=استخدم رمز OAUTH Images=الصور MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=تجلب الوحدة عنوان URL يمكن استخدامه بواسطة أداة خارجية للحصول على اسم طرف ثالث أو جهة اتصال من رقم هاتفه. URL المطلوب استخدامه هو: +ScriptIsEmpty=لم يتم كتابة كود برمجي +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=أحداث قابله للاثارة +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=التحذيرات معطلة +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=الاجهزة المكتبية فقط +DesktopsAndSmartphones=للموبايل و الاجهزة المكتبية +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/ar_SA/assets.lang b/htdocs/langs/ar_SA/assets.lang index 6c5867709d9..da5da17a330 100644 --- a/htdocs/langs/ar_SA/assets.lang +++ b/htdocs/langs/ar_SA/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,50 +16,171 @@ # # Generic # -Assets = Assets -NewAsset = New asset -AccountancyCodeAsset = Accounting code (asset) -AccountancyCodeDepreciationAsset = Accounting code (depreciation asset account) -AccountancyCodeDepreciationExpense = Accounting code (depreciation expense account) -NewAssetType=New asset type -AssetsTypeSetup=Asset type setup -AssetTypeModified=Asset type modified -AssetType=Asset type -AssetsLines=Assets +NewAsset=أصل جديد +AccountancyCodeAsset=كود المحاسبة (الأصول) +AccountancyCodeDepreciationAsset=كود المحاسبة (حساب إهلاك الاصول) +AccountancyCodeDepreciationExpense=كود المحاسبة (حساب مصاريف الإهلاك) +AssetsLines=الأصول DeleteType=حذف -DeleteAnAssetType=Delete an asset type -ConfirmDeleteAssetType=Are you sure you want to delete this asset type? -ShowTypeCard=وتبين من نوع '٪ ق' +DeleteAnAssetType=حذف نموذج أصل +ConfirmDeleteAssetType=هل أنت متأكد أنك تريد حذف نموذج الأصول هذا؟ +ShowTypeCard=عرض الموديل "%s" # Module label 'ModuleAssetsName' -ModuleAssetsName = Assets +ModuleAssetsName=الأصول # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Assets description +ModuleAssetsDesc=وصف الأصول # # Admin page # -AssetsSetup = Assets setup -Settings = Settings -AssetsSetupPage = Assets setup page -ExtraFieldsAssetsType = Complementary attributes (Asset type) -AssetsType=Asset type -AssetsTypeId=Asset type id -AssetsTypeLabel=Asset type label -AssetsTypes=Assets types +AssetSetup=إعداد الأصول +AssetSetupPage=صفحة إعداد الأصول +ExtraFieldsAssetModel=السمات التكميلية (نموذج الأصول) + +AssetsType=نموذج الأصول +AssetsTypeId=معرف نموذج الأصل +AssetsTypeLabel=تسمية نموذج الأصول +AssetsTypes=نماذج الأصول +ASSET_ACCOUNTANCY_CATEGORY=مجموعة محاسبة الأصول الثابتة # # Menu # -MenuAssets = Assets -MenuNewAsset = New asset -MenuTypeAssets = Type assets -MenuListAssets = قائمة -MenuNewTypeAssets = جديد -MenuListTypeAssets = قائمة +MenuAssets=الأصول +MenuNewAsset=أصل جديد +MenuAssetModels=أصول النموذج +MenuListAssets=قائمة +MenuNewAssetModel=نموذج الأصول الجديدة +MenuListAssetModels=قائمة # # Module # -NewAssetType=New asset type -NewAsset=New asset +ConfirmDeleteAsset=هل تريد حقًا إزالة هذا الأصل؟ + +# +# Tab +# +AssetDepreciationOptions=خيارات الإهلاك +AssetAccountancyCodes=حسابات المحاسبة +AssetDepreciation=الاستهلاك + +# +# Asset +# +Asset=أصل +Assets=الأصول +AssetReversalAmountHT=مبلغ عكسي (بدون ضرائب) +AssetAcquisitionValueHT=مبلغ الاستحواذ (بدون ضرائب) +AssetRecoveredVAT=استرداد ضريبة القيمة المضافة +AssetReversalDate=تاريخ الانعكاس +AssetDateAcquisition=تاريخ الاستحواذ +AssetDateStart=تاريخ البدء +AssetAcquisitionType=نوع الاستحواذ +AssetAcquisitionTypeNew=جديد +AssetAcquisitionTypeOccasion=استخدم +AssetType=نوع الأصل +AssetTypeIntangible=غير الملموسة +AssetTypeTangible=ملموس +AssetTypeInProgress=قيد التنفيذ +AssetTypeFinancial=الأمور المالية +AssetNotDepreciated=غير مستهلكة +AssetDisposal=ازالة +AssetConfirmDisposalAsk=هل أنت متأكد من أنك تريد التخلص من الأصل %s ؟ +AssetConfirmReOpenAsk=هل أنت متأكد من أنك تريد إعادة فتح الأصل %s ؟ + +# +# Asset status +# +AssetInProgress=قيد التنفيذ +AssetDisposed=استبعاده +AssetRecorded=محسوب + +# +# Asset disposal +# +AssetDisposalDate=تاريخ التصرف +AssetDisposalAmount=قيمة التخلص +AssetDisposalType=نوع التخلص +AssetDisposalDepreciated=استهلاك سنة التحويل +AssetDisposalSubjectToVat=يخضع التصرف لضريبة القيمة المضافة + +# +# Asset model +# +AssetModel=نموذج الأصول +AssetModels=نماذج الأصول + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=الاستهلاك الاقتصادي +AssetDepreciationOptionAcceleratedDepreciation=الاستهلاك المعجل (الضريبة) +AssetDepreciationOptionDepreciationType=نوع الإهلاك +AssetDepreciationOptionDepreciationTypeLinear=خطي +AssetDepreciationOptionDepreciationTypeDegressive=الانحدار +AssetDepreciationOptionDepreciationTypeExceptional=استثنائي +AssetDepreciationOptionDegressiveRate=معدل الانحدار +AssetDepreciationOptionAcceleratedDepreciation=الاستهلاك المعجل (الضريبة) +AssetDepreciationOptionDuration=مدة +AssetDepreciationOptionDurationType=اكتب المدة +AssetDepreciationOptionDurationTypeAnnual=سنوي +AssetDepreciationOptionDurationTypeMonthly=شهريا +AssetDepreciationOptionDurationTypeDaily=اليومي +AssetDepreciationOptionRate=معدل (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=قاعدة الإهلاك (باستثناء ضريبة القيمة المضافة) +AssetDepreciationOptionAmountBaseDeductibleHT=الوعاء القابل للخصم (باستثناء ضريبة القيمة المضافة) +AssetDepreciationOptionTotalAmountLastDepreciationHT=إجمالي مبلغ الاستهلاك الأخير (باستثناء ضريبة القيمة المضافة) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=الاستهلاك الاقتصادي +AssetAccountancyCodeAsset=أصل +AssetAccountancyCodeDepreciationAsset=الاستهلاك +AssetAccountancyCodeDepreciationExpense=مصاريف الاستهلاك +AssetAccountancyCodeValueAssetSold=قيمة الأصول المتخلص منها +AssetAccountancyCodeReceivableOnAssignment=مستحق عند التصرف +AssetAccountancyCodeProceedsFromSales=حصيلة التصرف +AssetAccountancyCodeVatCollected=تم تحصيل ضريبة القيمة المضافة +AssetAccountancyCodeVatDeductible=استرداد ضريبة القيمة المضافة على الأصول +AssetAccountancyCodeDepreciationAcceleratedDepreciation=الاستهلاك المعجل (الضريبة) +AssetAccountancyCodeAcceleratedDepreciation=الحساب +AssetAccountancyCodeEndowmentAcceleratedDepreciation=مصاريف الاستهلاك +AssetAccountancyCodeProvisionAcceleratedDepreciation=التملك / المخصصات + +# +# Asset depreciation +# +AssetBaseDepreciationHT=أساس الإهلاك (باستثناء ضريبة القيمة المضافة) +AssetDepreciationBeginDate=بدء الاستهلاك +AssetDepreciationDuration=مدة +AssetDepreciationRate=معدل (%%) +AssetDepreciationDate=تاريخ الإهلاك +AssetDepreciationHT=الاستهلاك (باستثناء ضريبة القيمة المضافة) +AssetCumulativeDepreciationHT=الاستهلاك التراكمي (باستثناء ضريبة القيمة المضافة) +AssetResidualHT=القيمة المتبقية (باستثناء ضريبة القيمة المضافة) +AssetDispatchedInBookkeeping=تم تسجيل الإهلاك +AssetFutureDepreciationLine=الاستهلاك المستقبلي +AssetDepreciationReversal=انعكاس، ارتداد، انقلاب + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=لم يتم توفير معرف الأصل أو صوت النموذج +AssetErrorFetchAccountancyCodesForMode=خطأ عند استرداد حسابات المحاسبة لوضع الإهلاك "%s" +AssetErrorDeleteAccountancyCodesForMode=حدث خطأ عند حذف حسابات المحاسبة من وضع الإهلاك "%s" +AssetErrorInsertAccountancyCodesForMode=خطأ عند إدخال حسابات المحاسبة في وضع الإهلاك "%s" +AssetErrorFetchDepreciationOptionsForMode=حدث خطأ عند استرداد خيارات وضع الإهلاك "%s" +AssetErrorDeleteDepreciationOptionsForMode=حدث خطأ عند حذف خيارات وضع الإهلاك "%s" +AssetErrorInsertDepreciationOptionsForMode=خطأ عند إدخال خيارات وضع الإهلاك "%s" +AssetErrorFetchDepreciationLines=خطأ عند استرداد بنود الإهلاك المسجلة +AssetErrorClearDepreciationLines=خطأ عند إزالة بنود الإهلاك المسجلة (الانعكاس والمستقبل) +AssetErrorAddDepreciationLine=خطأ عند إضافة بند الإهلاك +AssetErrorCalculationDepreciationLines=خطأ عند حساب بنود الإهلاك (الاسترداد والمستقبل) +AssetErrorReversalDateNotProvidedForMode=لم يتم توفير تاريخ الإلغاء لطريقة الإهلاك "%s" +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=يجب أن يكون تاريخ الإلغاء أكبر من بداية السنة المالية الحالية أو مساويًا لها لطريقة الإهلاك "%s" +AssetErrorReversalAmountNotProvidedForMode=لم يتم توفير مبلغ الانعكاس لوضع الإهلاك "%s". +AssetErrorFetchCumulativeDepreciation=خطأ عند استرداد مبلغ الإهلاك المتراكم من بند الإهلاك +AssetErrorSetLastCumulativeDepreciation=خطأ عند تسجيل آخر مبلغ إهلاك متراكم diff --git a/htdocs/langs/ar_SA/banks.lang b/htdocs/langs/ar_SA/banks.lang index 6d2a2eaf6eb..d60c9f2361d 100644 --- a/htdocs/langs/ar_SA/banks.lang +++ b/htdocs/langs/ar_SA/banks.lang @@ -114,7 +114,7 @@ TransferTo=إلى TransferFromToDone=التحويل من %sإلى %sمن %s%s قد تم تسجيلة. CheckTransmitter=مرسل ValidateCheckReceipt=تأكيد صحة الشيك المستلم؟ -ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated. +ConfirmValidateCheckReceipt=هل أنت متأكد أنك تريد إرسال إيصال الشيك هذا للتحقق من صحته؟ لن تكون هناك تغييرات ممكنة بمجرد التحقق من صحتها. DeleteCheckReceipt=حذف هذا الشيك ؟ ConfirmDeleteCheckReceipt=هل انت متأكد أنك تريد حذف هذا الشيك؟ BankChecks=الشيكات المصرفية @@ -172,8 +172,8 @@ SEPAMandate=SEPA mandate YourSEPAMandate=تفويض سيبا الخاص بك FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to AutoReportLastAccountStatement=قم تلقائيًا بتعبئة الحقل "رقم كشف الحساب البنكي" برقم كشف الحساب الأخير عند إجراء التسوية -CashControl=POS cash control -NewCashFence=New cash control (opening or closing) +CashControl=التحكم النقدي في نقاط البيع +NewCashFence=مراقبة نقدية جديدة (فتح أو إغلاق) BankColorizeMovement=تلوين الحركات BankColorizeMovementDesc=إذا تم تمكين هذه الوظيفة ، يمكنك اختيار لون خلفية محدد لحركات الخصم أو الائتمان BankColorizeMovementName1=لون الخلفية لحركة الخصم @@ -181,7 +181,7 @@ BankColorizeMovementName2=لون الخلفية لحركة الائتمان IfYouDontReconcileDisableProperty=إذا لم تقم بإجراء التسويات البنكية على بعض الحسابات المصرفية ، فقم بتعطيل الخاصية "%s" عليها لإزالة هذا التحذير. NoBankAccountDefined=لم يتم تحديد حساب مصرفي NoRecordFoundIBankcAccount=لا يوجد سجل في الحساب المصرفي. عادةً ما يحدث هذا عندما يتم حذف سجل يدويًا من قائمة المعاملات في الحساب المصرفي (على سبيل المثال أثناء تسوية الحساب المصرفي). سبب آخر هو أنه تم تسجيل الدفعة عندما تم تعطيل الوحدة النمطية "%s". -AlreadyOneBankAccount=Already one bank account defined -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level -SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=When generatin a SEPA XML file for Credit transfers, the section "PaymentTypeInformation" can now be placed inside the "CreditTransferTransactionInformation" section (instead of "Payment" section). We strongly recommend to keep this unchecked to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level. -ToCreateRelatedRecordIntoBank=To create missing related bank record +AlreadyOneBankAccount=تم تحديد حساب مصرفي واحد بالفعل +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=تحويل SEPA: "نوع الدفع" عند مستوى "تحويل الائتمان" +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=عند إنشاء ملف SEPA XML لعمليات تحويل الرصيد ، يمكن الآن وضع القسم "PaymentTypeInformation" داخل قسم "CreditTransferTransactionInformation" (بدلاً من قسم "Payment"). نوصي بشدة بإبقاء هذا دون تحديد لوضع معلومات نوع الدفع عند مستوى الدفع ، حيث لن تقبلها جميع البنوك بالضرورة على مستوى معلومات التحويل الائتماني. اتصل بالمصرف الذي تتعامل معه قبل تقديم معلومات نوع الدفع على مستوى معلومات تحويل الائتمان. +ToCreateRelatedRecordIntoBank=لإنشاء سجل مصرفي مفقود ذي صلة diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang index bb5be211cb6..c195801ea6e 100644 --- a/htdocs/langs/ar_SA/bills.lang +++ b/htdocs/langs/ar_SA/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=إحصاءات فواتير العملاء BillsStatisticsSuppliers=إحصاءات فواتير الموردين DisabledBecauseDispatchedInBookkeeping=معطل لأنه تم إرسال الفاتورة إلى مسك الدفاتر DisabledBecauseNotLastInvoice=معطل لأن الفاتورة غير قابلة للحذف. لقد تم تسجيل فواتير بعد هذه الفاتورة وسوف يؤدي ذلك إلى وجود ثقب في نظام العد. +DisabledBecauseNotLastSituationInvoice=معطل بسبب الفاتورة لا يمكن حذفها\nهذه الفاتورة لسيت اخر فاتورة في دورة الفواتير DisabledBecauseNotErasable=معطل لأنه لا يمكن محوه InvoiceStandard=الفاتورة القياسية InvoiceStandardAsk=الفاتورة القياسية InvoiceStandardDesc=هذا النوع من الفاتورة هي فاتورة عام. +InvoiceStandardShort=قياسي InvoiceDeposit=فاتورة الدفعة الأولى InvoiceDepositAsk=فاتورة الدفعة الأولى InvoiceDepositDesc=يتم هذا النوع من الفاتورة عند استلام دفعة أولى. @@ -24,6 +26,7 @@ InvoiceProForma=الفاتورة الأولية InvoiceProFormaAsk=الفاتورة الأولية InvoiceProFormaDesc= الفاتورة المبدئية عبارة عن صورة فاتورة حقيقية ولكنها لا تحتوي على قيمة محاسبية. InvoiceReplacement=استبدال الفاتورة +InvoiceReplacementShort=الاستبدال InvoiceReplacementAsk=فاتورة استبدال الفاتورة InvoiceReplacementDesc= فاتورة الاستبدال تُستخدم لاستبدال فاتورة بالكامل بدون دفعة مستلمة بالفعل.

ملاحظة: يمكن فقط استبدال الفواتير التي لم يتم سدادها. إذا لم يتم إغلاق الفاتورة التي قمت باستبدالها بعد ، فسيتم إغلاقها تلقائيًا لتصبح "مهجورة". InvoiceAvoir=ملاحظة ائتمانية @@ -55,7 +58,7 @@ CustomerInvoice=فاتورة العميل CustomersInvoices=فواتير العملاء SupplierInvoice=فاتورة مورد SuppliersInvoices=فواتير الموردين -SupplierInvoiceLines=Vendor invoice lines +SupplierInvoiceLines=سطور فاتورة البائع SupplierBill=فاتورة مورد SupplierBills=فواتير الموردين Payment=دفعة @@ -81,14 +84,14 @@ PaymentsReports=تقارير المدفوعات PaymentsAlreadyDone=المدفوعات قد فعلت PaymentsBackAlreadyDone=تم رد الأموال PaymentRule=قاعدة الدفع -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method -DefaultBankAccount=Default Bank Account -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +PaymentMode=طريقة الدفع او السداد +PaymentModes=طرق الدفع +DefaultPaymentMode=طريقه تسديد خاطئه +DefaultBankAccount=حساب مصرفي افتراضي +IdPaymentMode=طريقة الدفع (المعرف) +CodePaymentMode=طريقة الدفع (كود) +LabelPaymentMode=طريقة الدفع (التسمية) +PaymentModeShort=طريقة الدفع او السداد PaymentTerm=شروط السداد PaymentConditions=شروط السداد PaymentConditionsShort=شروط السداد @@ -119,7 +122,7 @@ ConvertExcessPaidToReduc=تحويل الفائض المستلم إلى خصم م EnterPaymentReceivedFromCustomer=أدخل الدفعة المستلمة من العميل EnterPaymentDueToCustomer=انشاء استحقاق دفع للعميل DisabledBecauseRemainderToPayIsZero=معطل لأن المتبقي غير المسدد يساوي صفر -PriceBase=Base price +PriceBase=السعر الأساسي BillStatus=حالة الفاتورة StatusOfGeneratedInvoices=حالة الفواتير المنشأة BillStatusDraft=مسودة (يجب التحقق من صحتها) @@ -156,9 +159,10 @@ ErrorInvoiceAvoirMustBeNegative=خطأ ، يجب أن يكون للفاتورة ErrorInvoiceOfThisTypeMustBePositive=خطأ ، يجب أن يحتوي هذا النوع من الفاتورة على مبلغ لا يشمل الضريبة موجبًا (أو فارغًا) ErrorCantCancelIfReplacementInvoiceNotValidated=خطأ ، لا يمكن إلغاء فاتورة تم استبدالها بفاتورة أخرى لا تزال في حالة المسودة ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=تم استخدام هذا الجزء أو آخر لذا لا يمكن إزالة سلسلة الخصم. -ErrorInvoiceIsNotLastOfSameType=Error: The date of invoice %s is %s. It must be posterior or equal to last date for same type invoices (%s). Please change the invoice date. +ErrorInvoiceIsNotLastOfSameType=خطأ: تاريخ الفاتورة %s هو %s. يجب أن تكون لاحقة أو مساوية للتاريخ الأخير للفواتير من نفس النوع (%s). الرجاء تغيير تاريخ الفاتورة. BillFrom=من: BillTo=فاتورة الى: +ShippingTo=شحن الي ActionsOnBill=الإجراءات على الفاتورة RecurringInvoiceTemplate=نموذج او فاتورة متكررة NoQualifiedRecurringInvoiceTemplateFound=لا يوجد نموذج فاتورة متكرر مؤهل للإنشاء. @@ -192,7 +196,7 @@ ConfirmClassifyPaidPartiallyReasonDiscount=المتبقي الغير مدفوع ConfirmClassifyPaidPartiallyReasonDiscountNoVat=المتبقي الغير مدفوع (%s %s) هو خصم ممنوح لأن السداد تم قبل الأجل. أنا أقبل خسارة ضريبة القيمة المضافة على هذا الخصم. ConfirmClassifyPaidPartiallyReasonDiscountVat=المتبقي الغير مدفوع (%s %s) هو خصم ممنوح لأن السداد تم قبل الأجل. أسترد ضريبة القيمة المضافة على هذا الخصم بدون إشعار دائن. ConfirmClassifyPaidPartiallyReasonBadCustomer=عميل سيء -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=الخصم من قبل البنك (رسوم البنك الوسيط) ConfirmClassifyPaidPartiallyReasonProductReturned=تم إرجاع بعض المنتجات ConfirmClassifyPaidPartiallyReasonOther=التخلي عن المبلغ لسبب آخر ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=هذا الاختيار ممكن إذا تم تزويد فاتورتك بالتعليقات المناسبة. (مثال «فقط الضريبة المقابلة للسعر الذي تم دفعه هي التي تعطي الحق في الخصم») @@ -200,7 +204,7 @@ ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=في بعض البلدان ، ConfirmClassifyPaidPartiallyReasonAvoirDesc=استخدم هذا الاختيار إذا كانت جميع الاختيارات الاخرى لا تناسبك ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=العميل السيئ هو العميل الذي يرفض سداد ديونه. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=يستخدم هذا الاختيار عندما لا يكتمل السداد بسبب إرجاع بعض المنتجات -ConfirmClassifyPaidPartiallyReasonBankChargeDesc=The unpaid amount is intermediary bank fees, deducted directly from the correct amount paid by the Customer. +ConfirmClassifyPaidPartiallyReasonBankChargeDesc=المبلغ غير المدفوع هو رسوم البنك الوسيط ، يتم خصمها مباشرة من المبلغ الصحيح وهو الذي يدفعه العميل. ConfirmClassifyPaidPartiallyReasonOtherDesc=استخدم هذا الخيار إذا لم يكن هناك خيار مناسب ، على سبيل المثال في الحالة التالية:
- الدفع غير مكتمل لأن بعض المنتجات تم شحنها مرة أخرى
- المبلغ المطالب به مهم جدًا لأنه تم نسيان الخصم
في جميع الحالات ، يجب تصحيح المبلغ المطالب به في نظام المحاسبة عن طريق إنشاء إشعار دائن. ConfirmClassifyAbandonReasonOther=أخرى ConfirmClassifyAbandonReasonOtherDesc=سيتم استخدام هذا الاختيار في جميع الحالات الأخرى. على سبيل المثال ، لأنك تخطط لإنشاء فاتورة بديلة. @@ -236,24 +240,24 @@ AlreadyPaidBack=سددت بالفعل AlreadyPaidNoCreditNotesNoDeposits=سددت (بدون اشعار دائن ودفعات مقدمة) Abandoned=المهجورة RemainderToPay=المتبقي غير مسدد -RemainderToPayMulticurrency=Remaining unpaid, original currency +RemainderToPayMulticurrency=العملة الأصلية المتبقية غير المسددة RemainderToTake=الميلغ المتبقي لاتخاذ -RemainderToTakeMulticurrency=Remaining amount to take, original currency +RemainderToTakeMulticurrency=المبلغ المتبقي ، العملة الأصلية RemainderToPayBack=المبلغ المتبقي للاسترجاع -RemainderToPayBackMulticurrency=Remaining amount to refund, original currency -NegativeIfExcessRefunded=negative if excess refunded +RemainderToPayBackMulticurrency=المبلغ المتبقي للرد ، العملة الأصلية +NegativeIfExcessRefunded=سلبي إذا تم رد المبالغ الزائدة Rest=بانتظار AmountExpected=المبلغ المطالب به ExcessReceived=المبالغ الزائدة المستلمة -ExcessReceivedMulticurrency=Excess received, original currency -NegativeIfExcessReceived=negative if excess received +ExcessReceivedMulticurrency=المبالغ الزائدة المستلمة ، العملة الأصلية +NegativeIfExcessReceived=سلبي إذا تم استلام الفائض ExcessPaid=المبالغ الزائدة المسددة -ExcessPaidMulticurrency=Excess paid, original currency +ExcessPaidMulticurrency=المبالغ الزائدة المدفوعة ، العملة الأصلية EscompteOffered=عرض الخصم (الدفع قبل الأجل) EscompteOfferedShort=خصم SendBillRef=تسليم الفاتورة %s SendReminderBillRef=تسليم الفاتورة %s (تذكير) -SendPaymentReceipt=Submission of payment receipt %s +SendPaymentReceipt=تقديم إيصال الدفع %s NoDraftBills=لا توجد مسودات فواتير NoOtherDraftBills=لا توجد مسودات فواتير أخرى NoDraftInvoices=لا توجد مسودات فواتير @@ -269,8 +273,8 @@ DateMaxPayment=السداد المستحق في DateInvoice=تاريخ الفاتورة DatePointOfTax=Point of tax NoInvoice=لا فاتورة -NoOpenInvoice=No open invoice -NbOfOpenInvoices=Number of open invoices +NoOpenInvoice=لا يوجد فاتورة مفتوحة +NbOfOpenInvoices=عدد الفواتير المفتوحة ClassifyBill=صنف كفاتورة SupplierBillsToPay=فواتير المورد الغير مسددة CustomerBillsUnpaid=فواتير العملاء غير المسددة @@ -280,11 +284,11 @@ SetMode=حدد نوع السداد SetRevenuStamp=حدد ختم الإيرادات Billed=فواتير RecurringInvoices=الفواتير المتكررة -RecurringInvoice=Recurring invoice +RecurringInvoice=فاتورة متكررة RepeatableInvoice=قالب الفاتورة RepeatableInvoices=قالب الفواتير -RecurringInvoicesJob=Generation of recurring invoices (sales invoices) -RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) +RecurringInvoicesJob=إصدار الفواتير المتكررة (فواتير المبيعات) +RecurringSupplierInvoicesJob=إنشاء الفواتير المتكررة (فواتير الشراء) Repeatable=قالب Repeatables=القوالب ChangeIntoRepeatableInvoice=تحويل إلى قالب فاتورة @@ -391,7 +395,7 @@ DateLastGeneration=تاريخ أحدث اصدار DateLastGenerationShort=تاريخ أحدث اصدار MaxPeriodNumber=العدد الأعلى لإصدار الفاتورة NbOfGenerationDone=عدد الفواتير المنجزة بالفعل -NbOfGenerationOfRecordDone=Number of record generation already done +NbOfGenerationOfRecordDone=عدد إنشاء السجل الذي تم إنجازه بالفعل NbOfGenerationDoneShort=عدد الفواتير المنجزة بالفعل MaxGenerationReached=تم بلوغ الحد الأقصى لعدد الاصدار InvoiceAutoValidate=اعتماد الفواتير تلقائيًا @@ -429,14 +433,24 @@ PaymentConditionShort14D=14 يوما PaymentCondition14D=14 يوما PaymentConditionShort14DENDMONTH=14 يومًا من نهاية الشهر PaymentCondition14DENDMONTH=في غضون 14 يومًا بعد نهاية الشهر +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% الإيداع +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% إيداع ، الباقي عند التسليم FixAmount=المبلغ الثابت - بند واحد بالتسمية "%s" VarAmount=المبلغ المتغير (%% إجمالي) VarAmountOneLine=المبلغ المتغير (إجمالي %%.) - بند واحد بالتسمية "%s" -VarAmountAllLines=Variable amount (%% tot.) - all lines from origin +VarAmountAllLines=المبلغ المتغير (%% tot.) - جميع الأسطر من الأصل +DepositPercent=إيداع %% +DepositGenerationPermittedByThePaymentTermsSelected=هذا مسموح به من خلال شروط الدفع المحددة +GenerateDeposit=إنشاء فاتورة إيداع %s%% +ValidateGeneratedDeposit=تحقق من صحة الإيداع الذي تم إنشاؤه +DepositGenerated=تم إنشاء الإيداع +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=يمكنك فقط إنشاء إيداع تلقائيًا من عرض أو طلب +ErrorPaymentConditionsNotEligibleToDepositCreation=شروط الدفع المختارة غير مؤهلة لإنشاء الإيداع التلقائي # PaymentType PaymentTypeVIR=حوالة مصرفية PaymentTypeShortVIR=حوالة مصرفية PaymentTypePRE=أمر دفع الخصم المباشر +PaymentTypePREdetails=علي الحساب PaymentTypeShortPRE=أمر دفع المدين PaymentTypeLIQ=نقدا PaymentTypeShortLIQ=نقدا @@ -471,7 +485,7 @@ RegulatedOn=وتنظم على ChequeNumber=رقم الشيك ChequeOrTransferNumber=رقم شيك / تحويل ChequeBordereau=Check schedule -ChequeMaker=Check/Transfer sender +ChequeMaker=تحقق / تحويل المرسل ChequeBank=الشيكات المصرفية CheckBank=الشيك NetToBePaid=الصافي للدفع @@ -485,7 +499,7 @@ PaymentByChequeOrderedToShort=مدفوعات الشيكات (شامل الضرا SendTo=أرسل إلى PaymentByTransferOnThisBankAccount=الدفع عن طريق التحويل إلى الحساب المصرفي التالي VATIsNotUsedForInvoice=* غير سارية ضريبة القيمة المضافة art-293B من CGI -VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI +VATIsNotUsedForInvoiceAsso=* غير سارية ضريبة القيمة المضافة art-261-7 من CGI LawApplicationPart1=من خلال تطبيق القانون 80.335 من 12/05/80 LawApplicationPart2=البضاعة تظل ملكا لل LawApplicationPart3=البائع حتى السداد الكامل ل @@ -517,7 +531,7 @@ Reported=تأخير DisabledBecausePayments=غير ممكن لأن هناك بعض المدفوعات CantRemovePaymentWithOneInvoicePaid=لا يمكن إزالة الدفعة نظرًا لوجود فاتورة مصنفة واحدة على الأقل مدفوعة CantRemovePaymentVATPaid=لا يمكن إزالة الدفعة لأن إقرار ضريبة القيمة المضافة مصنف كمدفوع -CantRemovePaymentSalaryPaid=Can't remove payment since salary is classified paid +CantRemovePaymentSalaryPaid=لا يمكن إزالة الدفعة لأن الراتب مصنف كمدفوع ExpectedToPay=من المتوقع الدفع CantRemoveConciliatedPayment=لا يمكن إزالة الدفعة التي تمت تسويتها PayedByThisPayment=سدد بعدهذه الدفعة @@ -525,7 +539,7 @@ ClosePaidInvoicesAutomatically=تصنيف جميع الفواتير القياس ClosePaidCreditNotesAutomatically=تصنيف جميع اشعارات دائن تلقائيًا على أنها "مدفوعة" عندما يتم استرداد الأموال بالكامل. ClosePaidContributionsAutomatically=تصنيف جميع المساهمات الاجتماعية أو المالية تلقائيًا على أنها "مدفوعة" عندما يتم الدفع بالكامل. ClosePaidVATAutomatically=تصنيف إقرار ضريبة القيمة المضافة تلقائيًا على أنه "مدفوع" عندما يتم الدفع بالكامل. -ClosePaidSalaryAutomatically=Classify automatically salary as "Paid" when payment is done entirely. +ClosePaidSalaryAutomatically=تصنيف الراتب تلقائيًا على أنه "مدفوع" عندما يتم السداد بالكامل. AllCompletelyPayedInvoiceWillBeClosed=سيتم تلقائيًا إغلاق جميع الفواتير المدفوعة وتحول الى "مدفوعة". ToMakePayment=سدد ToMakePaymentBack=تسديد @@ -538,10 +552,10 @@ YouMustCreateStandardInvoiceFirstDesc=يجب عليك إنشاء فاتورة ق PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (old implementation of Sponge template) PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices -TerreNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 -MarsNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 +TerreNumRefModelDesc1=رقم الإرجاع بالتنسيق %syymm-nnnn للفواتير القياسية و %syymm-nnnn للإشعارات الدائنة حيث yy سنة ، mm شهر و nnnn هو رقم تزايد تلقائي تسلسلي بدون فاصل ولا عودة إلى 0 +MarsNumRefModelDesc1=رقم الإرجاع بالتنسيق %syymm-nnnn للفواتير القياسية ، %syymm-nnnn للفواتير البديلة ، %syymm-nnnn لفواتير الدَفعة المقدمة و a0ecb2ecny87m49fz0 هو الرقم التسلسلي لشهر nnny و a0ecb2ecny. مع عدم وجود فاصل ولا عودة إلى 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequencial auto-incrementing number with no break and no return to 0 +CactusNumRefModelDesc1=رقم الإرجاع بالتنسيق %syymm-nnnn للفواتير القياسية ، %syymm-nnnn للإشعارات الدائنة و %syymm-nnnn لفواتير الدفعة المقدمة حيث yy هو العام ، mm هو رقم الشهر و nnnnn بدون زيادة تلقائية 0 EarlyClosingReason=سبب الإغلاق المبكر EarlyClosingComment=ملاحظة اغلاق مبكرة ##### Types de contacts ##### @@ -587,7 +601,7 @@ ToCreateARecurringInvoiceGene=لإنشاء فواتير مستقبلية بشك ToCreateARecurringInvoiceGeneAuto=إذا كنت بحاجة إلى إنشاء مثل هذه الفواتير تلقائيًا ، فاطلب من المسؤول تمكين وحدة الإعداد %s وإعدادها. لاحظ أنه يمكن استخدام كلتا الطريقتين (يدويًا وآليًا) مع عدم وجود خطر التكرار. DeleteRepeatableInvoice=حذف قالب الفاتورة ConfirmDeleteRepeatableInvoice=هل أنت متأكد أنك تريد حذف قالب الفاتورة؟ -CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per selected object) +CreateOneBillByThird=إنشاء فاتورة واحدة لكل طرف ثالث (خلاف ذلك ، فاتورة واحدة لكل كائن محدد) BillCreated=%s إصدار فاتورة (فواتير) BillXCreated=تم إنشاء %s الفاتورة StatusOfGeneratedDocuments=حالة إنشاء الوثيقة @@ -606,9 +620,14 @@ SupplierInvoicesArea=منطقة فواتير المورد SituationTotalRayToRest=ما تبقى للدفع بدون ضريبة PDFSituationTitle=Situation n° %d SituationTotalProgress=إجمالي التقدم %d %% -SearchUnpaidInvoicesWithDueDate=Search unpaid invoices with a due date = %s -NoPaymentAvailable=No payment available for %s -PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid -SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices -MakePaymentAndClassifyPayed=Record payment -BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) +SearchUnpaidInvoicesWithDueDate=البحث في الفواتير غير المسددة بتاريخ استحقاق = %s +NoPaymentAvailable=لا توجد مدفوعات متاحة مقابل %s +PaymentRegisteredAndInvoiceSetToPaid=تم تسجيل الدفعة وتم تعيين الفاتورة %s على الدفع +SendEmailsRemindersOnInvoiceDueDate=إرسال تذكير عن طريق البريد الإلكتروني للفواتير غير المسددة +MakePaymentAndClassifyPayed=دفع قياسي +BulkPaymentNotPossibleForInvoice=الدفع بالجملة غير ممكن للفاتورة %s (نوع أو حالة سيئة) +MentionVATDebitOptionIsOn=Option to pay tax based on debits +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Delivery of goods +MentionCategoryOfOperations1=Provision of services +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/ar_SA/blockedlog.lang b/htdocs/langs/ar_SA/blockedlog.lang index 021cbd00dc9..9117eae5929 100644 --- a/htdocs/langs/ar_SA/blockedlog.lang +++ b/htdocs/langs/ar_SA/blockedlog.lang @@ -1,57 +1,61 @@ -BlockedLog=Unalterable Logs +BlockedLog=سجلات غير قابلة للتغيير Field=حقل -BlockedLogDesc=This module tracks some events into an unalterable log (that you can't modify once recorded) into a block chain, in real time. This module provides compatibility with requirements of laws of some countries (like France with the law Finance 2016 - Norme NF525). -Fingerprints=Archived events and fingerprints -FingerprintsDesc=This is the tool to browse or extract the unalterable logs. Unalterable logs are generated and archived locally into a dedicated table, in real time when you record a business event. You can use this tool to export this archive and save it into an external support (some countries, like France, ask that you do it every year). Note that, there is no feature to purge this log and every change tried to be done directly into this log (by a hacker for example) will be reported with a non-valid fingerprint. If you really need to purge this table because you used your application for a demo/test purpose and want to clean your data to start your production, you can ask your reseller or integrator to reset your database (all your data will be removed). -CompanyInitialKey=Company initial key (hash of genesis block) -BrowseBlockedLog=Unalterable logs -ShowAllFingerPrintsMightBeTooLong=Show all archived logs (might be long) -ShowAllFingerPrintsErrorsMightBeTooLong=Show all non-valid archive logs (might be long) -DownloadBlockChain=Download fingerprints -KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this record after it was recorded, or has erased the previous archived record (check that line with previous # exists) or has modified checksum of the previous record. -OkCheckFingerprintValidity=Archived log record is valid. The data on this line was not modified and the entry follows the previous one. -OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to previous one but the chain was corrupted previously. -AddedByAuthority=Stored into remote authority -NotAddedByAuthorityYet=Not yet stored into remote authority -ShowDetails=Show stored details -logPAYMENT_VARIOUS_CREATE=Payment (not assigned to an invoice) created -logPAYMENT_VARIOUS_MODIFY=Payment (not assigned to an invoice) modified -logPAYMENT_VARIOUS_DELETE=Payment (not assigned to an invoice) logical deletion -logPAYMENT_ADD_TO_BANK=Payment added to bank -logPAYMENT_CUSTOMER_CREATE=Customer payment created -logPAYMENT_CUSTOMER_DELETE=Customer payment logical deletion -logDONATION_PAYMENT_CREATE=Donation payment created -logDONATION_PAYMENT_DELETE=Donation payment logical deletion -logBILL_PAYED=Customer invoice paid -logBILL_UNPAYED=Customer invoice set unpaid +BlockedLogDesc=تتعقب هذه الوحدة بعض الأحداث في سجل غير قابل للتغيير (لا يمكنك تعديله بمجرد تسجيله) في سلسلة كتل ، في الوقت الفعلي. توفر هذه الوحدة التوافق مع متطلبات قوانين بعض البلدان (مثل فرنسا مع قانون المالية 2016 - Norme NF525). +Fingerprints=أرشفة الأحداث وبصمات الأصابع +FingerprintsDesc=هذه هي الأداة لتصفح أو استخراج السجلات غير القابلة للتغيير. يتم إنشاء السجلات غير القابلة للتغيير وأرشفتها محليًا في جدول مخصص ، في الوقت الفعلي عند تسجيل حدث عمل. يمكنك استخدام هذه الأداة لتصدير هذا الأرشيف وحفظه في دعم خارجي (بعض البلدان ، مثل فرنسا ، تطلب منك القيام بذلك كل عام). لاحظ أنه لا توجد ميزة لمسح هذا السجل وسيتم الإبلاغ عن كل تغيير يتم إجراؤه مباشرةً في هذا السجل (بواسطة مخترق على سبيل المثال) ببصمة إصبع غير صالحة. إذا كنت حقًا بحاجة إلى مسح هذا الجدول لأنك استخدمت التطبيق الخاص بك لغرض تجريبي / اختبار وترغب في تنظيف بياناتك لبدء الإنتاج ، يمكنك أن تطلب من البائع أو المُدمج إعادة تعيين قاعدة البيانات الخاصة بك (ستتم إزالة جميع بياناتك). +CompanyInitialKey=مفتاح الشركة الأولي (تجزئة كتلة التكوين) +BrowseBlockedLog=سجلات غير قابلة للتغيير +ShowAllFingerPrintsMightBeTooLong=إظهار كافة السجلات المؤرشفة (قد تكون طويلة) +ShowAllFingerPrintsErrorsMightBeTooLong=إظهار كافة سجلات الأرشيف غير الصالحة (قد تكون طويلة) +DownloadBlockChain=تنزيل بصمات الأصابع +KoCheckFingerprintValidity=إدخال السجل المؤرشف غير صالح. هذا يعني أن شخصًا ما (متسلل؟) قد قام بتعديل بعض بيانات هذا السجل بعد تسجيله ، أو قام بمسح السجل المؤرشف السابق (تحقق من وجود هذا السطر مع الرقم السابق) أو قام بتعديل المجموع الاختباري للسجل السابق. +OkCheckFingerprintValidity=سجل السجل المؤرشف صالح. لم يتم تعديل البيانات الموجودة في هذا السطر ويتبع الإدخال السابق. +OkCheckFingerprintValidityButChainIsKo=يبدو السجل المؤرشف صالحًا مقارنةً بالسجل السابق ولكن السلسلة تالفة سابقًا. +AddedByAuthority=مخزنة في سلطة بعيدة +NotAddedByAuthorityYet=لم يتم تخزينها بعد في سلطة بعيدة +ShowDetails=إظهار التفاصيل المخزنة +BlockedLogBillDownload=تنزيل فاتورة العميل +BlockedLogBillPreview=معاينة فاتورة العميل +BlockedlogInfoDialog=تفاصيل السجل +ListOfTrackedEvents=قائمة الأحداث المتعقبة +Fingerprint=بصمة +DownloadLogCSV=تصدير السجلات المؤرشفة (CSV) +logDOC_PREVIEW=معاينة مستند تم التحقق من صحته من أجل الطباعة أو التنزيل +logDOC_DOWNLOAD=تنزيل مستند تم التحقق من صحته من أجل طباعته أو إرساله +DataOfArchivedEvent=البيانات الكاملة للحدث المؤرشف +ImpossibleToReloadObject=الكائن الأصلي (اكتب %s ، معرف %s) غير مرتبط (راجع عمود "البيانات الكاملة" للحصول على بيانات محفوظة غير قابلة للتغيير) +BlockedLogAreRequiredByYourCountryLegislation=قد تكون وحدة السجلات غير القابلة للتغيير مطلوبة بموجب تشريعات بلدك. قد يؤدي تعطيل هذه الوحدة إلى إبطال أي معاملات مستقبلية فيما يتعلق بالقانون واستخدام البرامج القانونية حيث لا يمكن التحقق من صحتها من خلال تدقيق ضريبي. +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=تم تنشيط وحدة السجلات غير القابلة للتغيير بسبب تشريعات بلدك. قد يؤدي تعطيل هذه الوحدة إلى جعل أي معاملات مستقبلية غير صالحة فيما يتعلق بالقانون واستخدام البرامج القانونية حيث لا يمكن التحقق من صحتها عن طريق التدقيق الضريبي. +BlockedLogDisableNotAllowedForCountry=قائمة البلدان التي يكون فيها استخدام هذه الوحدة إلزاميًا (فقط لمنع تعطيل الوحدة عن طريق الخطأ ، إذا كان بلدك في هذه القائمة ، فلا يمكن تعطيل الوحدة النمطية بدون تحرير هذه القائمة أولاً. لاحظ أيضًا أن تمكين / تعطيل هذه الوحدة سيؤدي إلى الحفاظ على المسار في سجل غير قابل للتغيير). +OnlyNonValid=غير صالح +TooManyRecordToScanRestrictFilters=هناك عدد كبير جدًا من السجلات للمسح الضوئي / التحليل. يرجى تقييد القائمة بفلاتر أكثر تقييدًا. +RestrictYearToExport=تقييد شهر / سنة للتصدير +BlockedLogEnabled=تم تفعيل نظام لتتبع الأحداث إلى سجلات غير قابلة للتغيير +BlockedLogDisabled=تم تعطيل نظام لتتبع الأحداث إلى سجلات غير قابلة للتغيير بعد إجراء بعض التسجيلات. قمنا بحفظ بصمة إصبع خاصة لتتبع السلسلة على أنها مكسورة +BlockedLogDisabledBis=تم تعطيل نظام لتتبع الأحداث إلى سجلات غير قابلة للتغيير. هذا ممكن لأنه لم يتم عمل أي سجل حتى الآن. + +## logTypes +logBILL_DELETE=فاتورة العميل محذوفة منطقيا +logBILL_PAYED=فاتورة العميل مدفوعة +logBILL_SENTBYMAIL=فاتورة العميل ترسل بالبريد +logBILL_UNPAYED=مجموعة فاتورة العميل غير مدفوعة logBILL_VALIDATE=فاتورة مصادق -logBILL_SENTBYMAIL=Customer invoice send by mail -logBILL_DELETE=Customer invoice logically deleted -logMODULE_RESET=Module BlockedLog was disabled -logMODULE_SET=Module BlockedLog was enabled -logDON_VALIDATE=Donation validated -logDON_MODIFY=Donation modified -logDON_DELETE=Donation logical deletion -logMEMBER_SUBSCRIPTION_CREATE=Member subscription created -logMEMBER_SUBSCRIPTION_MODIFY=Member subscription modified -logMEMBER_SUBSCRIPTION_DELETE=Member subscription logical deletion -logCASHCONTROL_VALIDATE=Cash desk closing recording -BlockedLogBillDownload=Customer invoice download -BlockedLogBillPreview=Customer invoice preview -BlockedlogInfoDialog=Log Details -ListOfTrackedEvents=List of tracked events -Fingerprint=Fingerprint -DownloadLogCSV=Export archived logs (CSV) -logDOC_PREVIEW=Preview of a validated document in order to print or download -logDOC_DOWNLOAD=Download of a validated document in order to print or send -DataOfArchivedEvent=Full datas of archived event -ImpossibleToReloadObject=Original object (type %s, id %s) not linked (see 'Full datas' column to get unalterable saved data) -BlockedLogAreRequiredByYourCountryLegislation=Unalterable Logs module may be required by the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they can not be validated by a tax audit. -BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Unalterable Logs module was activated because of the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they cannot be validated by a tax audit. -BlockedLogDisableNotAllowedForCountry=List of countries where usage of this module is mandatory (just to prevent to disable the module by error, if your country is in this list, disable of module is not possible without editing this list first. Note also that enabling/disabling this module will keep a track into the unalterable log). -OnlyNonValid=Non-valid -TooManyRecordToScanRestrictFilters=Too many records to scan/analyze. Please restrict list with more restrictive filters. -RestrictYearToExport=Restrict month / year to export -BlockedLogEnabled=System to track events into unalterable logs has been enabled -BlockedLogDisabled=System to track events into unalterable logs has been disabled after some recording were done. We saved a special Fingerprint to track the chain as broken -BlockedLogDisabledBis=System to track events into unalterable logs has been disabled. This is possible because no record were done yet. +logCASHCONTROL_VALIDATE=تسجيل إغلاق مكتب النقدية +logDOC_DOWNLOAD=تنزيل مستند تم التحقق من صحته من أجل طباعته أو إرساله +logDOC_PREVIEW=معاينة مستند تم التحقق من صحته من أجل الطباعة أو التنزيل +logDONATION_PAYMENT_CREATE=تم إنشاء دفعة التبرع +logDONATION_PAYMENT_DELETE=الحذف المنطقي لدفع التبرع +logDON_DELETE=التبرع الحذف المنطقي +logDON_MODIFY=تم تعديل التبرع +logDON_VALIDATE=تم التحقق من صحة التبرع +logMEMBER_SUBSCRIPTION_CREATE=تم إنشاء اشتراك الأعضاء +logMEMBER_SUBSCRIPTION_DELETE=الحذف المنطقي لاشتراك العضو +logMEMBER_SUBSCRIPTION_MODIFY=تم تعديل اشتراك العضو +logMODULE_RESET=تم تعطيل Module BlockedLog +logMODULE_SET=تم تمكين Module BlockedLog +logPAYMENT_ADD_TO_BANK=تمت إضافة الدفعة إلى البنك +logPAYMENT_CUSTOMER_CREATE=تم إنشاء دفع العميل +logPAYMENT_CUSTOMER_DELETE=الحذف المنطقي لدفع العميل +logPAYMENT_VARIOUS_CREATE=تم إنشاء الدفعة (لم يتم تعيينها لفاتورة) +logPAYMENT_VARIOUS_DELETE=الحذف المنطقي للدفع (غير مخصص لفاتورة) +logPAYMENT_VARIOUS_MODIFY=تم تعديل الدفعة (لم يتم تعيينها لفاتورة) diff --git a/htdocs/langs/ar_SA/bookmarks.lang b/htdocs/langs/ar_SA/bookmarks.lang index a65ddf2e059..3d0c4068458 100644 --- a/htdocs/langs/ar_SA/bookmarks.lang +++ b/htdocs/langs/ar_SA/bookmarks.lang @@ -6,17 +6,18 @@ ListOfBookmarks=قائمة الإشارات المرجعية EditBookmarks=قائمة / تحرير الإشارات المرجعية NewBookmark=إشارة مرجعية جديدة ShowBookmark=وتظهر علامة -OpenANewWindow=Open a new tab -ReplaceWindow=Replace current tab -BookmarkTargetNewWindowShort=New tab -BookmarkTargetReplaceWindowShort=Current tab -BookmarkTitle=Bookmark name +OpenANewWindow=افتح علامة تبويب جديدة +ReplaceWindow=استبدال علامة التبويب الحالية +BookmarkTargetNewWindowShort=علامة تبويب جديدة +BookmarkTargetReplaceWindowShort=علامة التبويب الحالية +BookmarkTitle=اسم المرجعية UrlOrLink=العنوان BehaviourOnClick=السلوك عند تحديد عنوان للإشارة المرجعية CreateBookmark=إنشاء إشارة مرجعية -SetHereATitleForLink=Set a name for the bookmark -UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external/absolute link (https://externalurl.com) or an internal/relative link (/mypage.php). You can also use phone like tel:0123456. -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if the linked page should open in the current tab or a new tab +SetHereATitleForLink=حدد اسمًا للإشارة المرجعية +UseAnExternalHttpLinkOrRelativeDolibarrLink=استخدم رابطًا خارجيًا / مطلقًا (https://externalurl.com) أو رابطًا داخليًا / نسبيًا (/mypage.php). يمكنك أيضًا استخدام الهاتف مثل الهاتف: 0123456. +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=اختر ما إذا كان يجب فتح الصفحة المرتبطة في علامة التبويب الحالية أو علامة تبويب جديدة BookmarksManagement=إدارة الإشارات المرجعية BookmarksMenuShortCut=Ctrl + shift + m -NoBookmarks=No bookmarks defined +NoBookmarks=لم يتم تحديد إشارات مرجعية +NoBookmarkFound=No bookmark found diff --git a/htdocs/langs/ar_SA/categories.lang b/htdocs/langs/ar_SA/categories.lang index 49df6dddd3b..c36fe5f7bc7 100644 --- a/htdocs/langs/ar_SA/categories.lang +++ b/htdocs/langs/ar_SA/categories.lang @@ -3,23 +3,23 @@ Rubrique=العلامة / الفئة Rubriques=الكلمات / فئات RubriquesTransactions=علامات/ فئات المعاملات categories=علامات / فئات -NoCategoryYet=No tag/category of this type has been created +NoCategoryYet=لم يتم إنشاء علامة / فئة من هذا النوع In=في AddIn=اضف الى modify=تعديل Classify=صنف CategoriesArea=منطقة الكلمات / الفئات -ProductsCategoriesArea=Product/Service tags/categories area -SuppliersCategoriesArea=Vendor tags/categories area -CustomersCategoriesArea=Customer tags/categories area -MembersCategoriesArea=Member tags/categories area -ContactsCategoriesArea=Contact tags/categories area -AccountsCategoriesArea=Bank account tags/categories area -ProjectsCategoriesArea=Project tags/categories area -UsersCategoriesArea=User tags/categories area -SubCats=Sub-categories +ProductsCategoriesArea=منطقة علامات / فئات المنتج / الخدمة +SuppliersCategoriesArea=منطقة علامات / فئات البائعين +CustomersCategoriesArea=منطقة علامات / فئات العملاء +MembersCategoriesArea=منطقة علامات الأعضاء / الفئات +ContactsCategoriesArea=علامات الاتصال / منطقة الفئات +AccountsCategoriesArea=منطقة علامات / فئات الحساب المصرفي +ProjectsCategoriesArea=علامات المشروع / منطقة الفئات +UsersCategoriesArea=علامات المستخدم / منطقة الفئات +SubCats=الفئات الفرعية CatList=قائمة العلامات / الفئات -CatListAll=List of tags/categories (all types) +CatListAll=قائمة العلامات / الفئات (جميع الأنواع) NewCategory=علامة / فئة جديدة ModifCat=تعديل العلامة / الفئة CatCreated=تم إنشاء العلامة / الفئة @@ -33,7 +33,7 @@ WasAddedSuccessfully=تمت إضافة %s بنجاح. ObjectAlreadyLinkedToCategory=العنصر مرتبط بالفعل بهذه العلامة / الفئة. ProductIsInCategories=المنتج / الخدمة مرتبط بـ العلامات / الفئات التالية CompanyIsInCustomersCategories=هذا الطرف الثالث مرتبط بـ العملاء / العملاء المحتملون العلامات / فئات التالية  -CompanyIsInSuppliersCategories=This third party is linked to following vendors tags/categories +CompanyIsInSuppliersCategories=هذا الطرف الثالث مرتبط بعلامات / فئات البائعين التالية MemberIsInCategories=هذا العضو مرتبط بـ علامات / فئات الأعضاء التالية ContactIsInCategories=ويرتبط هذا الاتصال إلى علامات / فئات جهات الاتصال التالية ProductHasNoCategory=هذا المنتج / الخدمة ليست في أي علامات / فئات @@ -42,6 +42,7 @@ MemberHasNoCategory=هذا العضو ليس في أي علامات / فئات ContactHasNoCategory=هذا الاتصال ليس في أي علامات / فئات ProjectHasNoCategory=هذا المشروع ليس في أي علامات / فئات ClassifyInCategory=إضافة إلى العلامة / الفئة +RemoveCategory=Remove category NotCategorized=دون علامة / فئة CategoryExistsAtSameLevel=هذه الفئة موجودة بالفعل مع هذا المرجع ContentsVisibleByAllShort=المحتويات مرئية للجميع @@ -49,52 +50,56 @@ ContentsNotVisibleByAllShort=المحتويات غير مرئية من قبل ا DeleteCategory=حذف العلامة / الفئة ConfirmDeleteCategory=هل تريد بالتأكيد حذف هذه العلامة / الفئة؟ NoCategoriesDefined=لم يتم تحديد أي علامة / فئة -SuppliersCategoryShort=Vendors tag/category +SuppliersCategoryShort=علامة البائعين / الفئة CustomersCategoryShort=علامة / فئة العملاء  ProductsCategoryShort=علامة / فئة المنتجات  MembersCategoryShort=علامة / فئة الأعضاء  -SuppliersCategoriesShort=Vendors tags/categories +SuppliersCategoriesShort=علامات / فئات البائعين CustomersCategoriesShort=علامات / فئات العملاء  ProspectsCategoriesShort=علامات/ فئات الاحتمال -CustomersProspectsCategoriesShort=Cust./Prosp. tags/categories +CustomersProspectsCategoriesShort=الزبون. / بروسب. العلامات / الفئات ProductsCategoriesShort=علامات / فئات المنتجات  MembersCategoriesShort=علامات / فئات الأعضاء  ContactCategoriesShort=علامات / فئات جهات الاتصال  AccountsCategoriesShort=علامات / فئات الحسابات  ProjectsCategoriesShort=علامات / فئات المشاريع  -UsersCategoriesShort=Users tags/categories -StockCategoriesShort=Warehouse tags/categories -ThisCategoryHasNoItems=This category does not contain any items. +UsersCategoriesShort=علامات المستخدمين / الفئات +StockCategoriesShort=علامات / فئات المستودعات +ThisCategoryHasNoItems=هذه الفئة لا تحتوي على أي عناصر. CategId=معرف العلامة / الفئة -ParentCategory=Parent tag/category -ParentCategoryLabel=Label of parent tag/category -CatSupList=List of vendors tags/categories -CatCusList=List of customers/prospects tags/categories +ParentCategory=العلامة الأصلية / الفئة +ParentCategoryID=ID of parent tag/category +ParentCategoryLabel=تسمية العلامة / الفئة الأصل +CatSupList=قائمة بعلامات / فئات البائعين +CatCusList=قائمة بعلامات / فئات العملاء / العملاء المحتملين CatProdList=قائمة علامات / فئات المنتجات  CatMemberList=قائمة علامات / فئات الأعضاء  -CatContactList=List of contacts tags/categories -CatProjectsList=List of projects tags/categories -CatUsersList=List of users tags/categories -CatSupLinks=Links between vendors and tags/categories +CatContactList=قائمة العلامات / الفئات جهات الاتصال +CatProjectsList=قائمة علامات / فئات المشاريع +CatUsersList=قائمة علامات المستخدمين / الفئات +CatSupLinks=الروابط بين البائعين والعلامات / الفئات CatCusLinks=الروابط بين العملاء / احتمال والعلامات / فئات -CatContactsLinks=Links between contacts/addresses and tags/categories +CatContactsLinks=الروابط بين الأسماء / العناوين والعلامات / الفئات CatProdLinks=الروابط بين المنتجات / الخدمات والعلامات / الفئات CatMembersLinks=الروابط بين أفراد والعلامات / فئات CatProjectsLinks=الروابط بين المشاريع والعلامات / الفئات -CatUsersLinks=Links between users and tags/categories +CatUsersLinks=الروابط بين المستخدمين والعلامات / الفئات DeleteFromCat=إزالة من العلامة / الفئة ExtraFieldsCategories=سمات تكميلية CategoriesSetup=إعداد العلامات / الفئات CategorieRecursiv=ربط مع العلامة / الفئة الاب تلقائيا -CategorieRecursivHelp=If option is on, when you add a product into a subcategory, product will also be added into the parent category. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=أضف المنتج / الخدمة التالية -AddCustomerIntoCategory=Assign category to customer -AddSupplierIntoCategory=Assign category to supplier +AddCustomerIntoCategory=تعيين فئة للعميل +AddSupplierIntoCategory=تعيين فئة للمورد +AssignCategoryTo=تعيين فئة إلى ShowCategory=إظهار العلامة / الفئة ByDefaultInList=افتراضيا في القائمة -ChooseCategory=Choose category -StocksCategoriesArea=Warehouse Categories -ActionCommCategoriesArea=Event Categories -WebsitePagesCategoriesArea=Page-Container Categories -KnowledgemanagementsCategoriesArea=KM article Categories -UseOrOperatorForCategories=Use 'OR' operator for categories +ChooseCategory=اختر الفئة +StocksCategoriesArea=فئات المستودعات +TicketsCategoriesArea=فئات التذاكر +ActionCommCategoriesArea=فئات الحدث +WebsitePagesCategoriesArea=فئات حاوية الصفحة +KnowledgemanagementsCategoriesArea=فئات مقالة KM +UseOrOperatorForCategories=استخدم عامل التشغيل "OR" للفئات +AddObjectIntoCategory=أضف كائنًا إلى الفئة diff --git a/htdocs/langs/ar_SA/commercial.lang b/htdocs/langs/ar_SA/commercial.lang index e3a95602dec..adc0dcdb097 100644 --- a/htdocs/langs/ar_SA/commercial.lang +++ b/htdocs/langs/ar_SA/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=احتمال وضع DraftPropals=صياغة مقترحات تجارية NoLimit=لا حدود ToOfferALinkForOnlineSignature=رابط للتوقيع عبر الإنترنت -WelcomeOnOnlineSignaturePage=مرحبًا بك في الصفحة لقبول العروض التجارية من %s -ThisScreenAllowsYouToSignDocFrom=تسمح لك هذه الشاشة بقبول وتوقيع أو رفض عرض أسعار / عرض تجاري -ThisIsInformationOnDocumentToSign=هذه معلومات على الوثيقة لقبولها أو رفضها +WelcomeOnOnlineSignaturePageProposal=مرحبًا بك في الصفحة لقبول العروض التجارية من %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=تسمح لك هذه الشاشة بقبول وتوقيع أو رفض عرض أسعار / عرض تجاري +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=هذه معلومات على الوثيقة لقبولها أو رفضها +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=توقيع عرض الأسعار / العرض التجاري %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=تم تعطيل ميزة التوقيع عبر الإنترنت أو تم إنشاء المستند قبل تمكين الميزة diff --git a/htdocs/langs/ar_SA/compta.lang b/htdocs/langs/ar_SA/compta.lang index 364e6d90e70..0d5c0b3cc1c 100644 --- a/htdocs/langs/ar_SA/compta.lang +++ b/htdocs/langs/ar_SA/compta.lang @@ -29,39 +29,41 @@ BalanceBefore=الميزان (قبل) Balance=التوازن Debit=الخصم Credit=الائتمان +AccountingDebit=الخصم +AccountingCredit=الائتمان Piece=تمثل الوثيقة. AmountHTVATRealReceived=جمعت HT AmountHTVATRealPaid=HT المدفوعة VATToPay=المبيعات الضريبية VATReceived=تم استلام الضريبة VATToCollect=المشتريات الضريبية -VATSummary=Tax monthly -VATBalance=Tax Balance -VATPaid=Tax paid -LT1Summary=Tax 2 summary -LT2Summary=Tax 3 summary +VATSummary=ضريبة شهرية +VATBalance=رصيد الضريبة +VATPaid=الضريبة المدفوعة +LT1Summary=ملخص الضريبة 2 +LT2Summary=ملخص الضريبة 3 LT1SummaryES=RE الميزان LT2SummaryES=IRPF الرصيد -LT1SummaryIN=CGST Balance -LT2SummaryIN=SGST Balance -LT1Paid=Tax 2 paid -LT2Paid=Tax 3 paid +LT1SummaryIN=ميزان CGST +LT2SummaryIN=ميزان SGST +LT1Paid=دفع الضريبة 2 +LT2Paid=دفع الضريبة 3 LT1PaidES=RE المدفوعة LT2PaidES=مدفوع IRPF -LT1PaidIN=CGST Paid -LT2PaidIN=SGST Paid -LT1Customer=Tax 2 sales -LT1Supplier=Tax 2 purchases +LT1PaidIN=مدفوعة CGST +LT2PaidIN=مدفوعة SGST +LT1Customer=ضريبة المبيعات 2 +LT1Supplier=ضريبة مشتريات 2 LT1CustomerES=RE المبيعات LT1SupplierES=RE المشتريات -LT1CustomerIN=CGST sales -LT1SupplierIN=CGST purchases -LT2Customer=Tax 3 sales -LT2Supplier=Tax 3 purchases +LT1CustomerIN=مبيعات CGST +LT1SupplierIN=مشتريات CGST +LT2Customer=ضريبة المبيعات 3 +LT2Supplier=3 ضريبة المشتريات LT2CustomerES=مبيعات IRPF LT2SupplierES=مشتريات IRPF -LT2CustomerIN=SGST sales -LT2SupplierIN=SGST purchases +LT2CustomerIN=مبيعات SGST +LT2SupplierIN=مشتريات SGST VATCollected=جمعت ضريبة القيمة المضافة StatusToPay=دفع SpecialExpensesArea=منطقة لجميع المدفوعات الخاصة @@ -70,7 +72,7 @@ SocialContribution=الضريبة الاجتماعية أو المالية SocialContributions=الضرائب الاجتماعية أو المالية SocialContributionsDeductibles=Deductible social or fiscal taxes SocialContributionsNondeductibles=Nondeductible social or fiscal taxes -DateOfSocialContribution=Date of social or fiscal tax +DateOfSocialContribution=تاريخ الضريبة الاجتماعية أو المالية LabelContrib=Label contribution TypeContrib=Type contribution MenuSpecialExpenses=المصروفات الخاصة @@ -80,16 +82,16 @@ MenuNewSocialContribution=الضريبة الاجتماعية / مالية جد NewSocialContribution=الضريبة الاجتماعية / مالية جديدة AddSocialContribution=Add social/fiscal tax ContributionsToPay=الضرائب الاجتماعية / المالية لدفع -AccountancyTreasuryArea=Billing and payment area +AccountancyTreasuryArea=منطقة الفواتير والدفع NewPayment=دفع جديدة PaymentCustomerInvoice=الزبون تسديد الفاتورة -PaymentSupplierInvoice=vendor invoice payment +PaymentSupplierInvoice=دفع فاتورة البائع PaymentSocialContribution=اجتماعي / دفع الضرائب المالية PaymentVat=دفع ضريبة القيمة المضافة -AutomaticCreationPayment=Automatically record the payment +AutomaticCreationPayment=سجل الدفع تلقائيًا ListPayment=قائمة المدفوعات ListOfCustomerPayments=قائمة مدفوعات العملاء -ListOfSupplierPayments=List of vendor payments +ListOfSupplierPayments=قائمة مدفوعات البائعين DateStartPeriod=تاريخ بداية الفترة DateEndPeriod=تاريخ انتهاء الفترة newLT1Payment=جديد الضريبية 2 الدفع @@ -106,25 +108,25 @@ LT2PaymentES=IRPF الدفع LT2PaymentsES=الدفعات IRPF VATPayment=Sales tax payment VATPayments=Sales tax payments -VATDeclarations=VAT declarations -VATDeclaration=VAT declaration +VATDeclarations=إقرارات ضريبة القيمة المضافة +VATDeclaration=إقرار ضريبة القيمة المضافة VATRefund=Sales tax refund -NewVATPayment=New sales tax payment -NewLocalTaxPayment=New tax %s payment +NewVATPayment=دفع ضريبة المبيعات الجديدة +NewLocalTaxPayment=دفعة جديدة للضريبة %s Refund=رد SocialContributionsPayments=الاجتماعية المدفوعات / الضرائب المالية ShowVatPayment=وتظهر دفع ضريبة القيمة المضافة TotalToPay=على دفع ما مجموعه -BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted on %s and filtered on 1 bank account (with no other filters) -CustomerAccountancyCode=Customer accounting code -SupplierAccountancyCode=Vendor accounting code +BalanceVisibilityDependsOnSortAndFilters=يظهر الرصيد في هذه القائمة فقط إذا تم فرز الجدول على %s وتصفيته على حساب مصرفي واحد (بدون عوامل تصفية أخرى) +CustomerAccountancyCode=كود محاسبة العملاء +SupplierAccountancyCode=كود محاسبة البائع CustomerAccountancyCodeShort=الزبون. حساب. رمز SupplierAccountancyCodeShort=سوب. حساب. رمز AccountNumber=رقم الحساب NewAccountingAccount=حساب جديد Turnover=Turnover invoiced TurnoverCollected=Turnover collected -SalesTurnoverMinimum=Minimum turnover +SalesTurnoverMinimum=الحد الأدنى من معدل الدوران ByExpenseIncome=By expenses & incomes ByThirdParties=بو أطراف ثالثة ByUserAuthorOfInvoice=فاتورة من قبل المؤلف @@ -135,26 +137,28 @@ NewCheckReceipt=خصم جديد NewCheckDeposit=تأكد من ايداع جديدة NewCheckDepositOn=تهيئة لتلقي الودائع على حساب : ٪ ق NoWaitingChecks=No checks awaiting deposit. -DateChequeReceived=Check receiving date -NbOfCheques=No. of checks +DateChequeReceived=تحقق من تاريخ الاستلام +NbOfCheques=عدد الشيكات PaySocialContribution=دفع ضريبة اجتماعية / مالية -PayVAT=Pay a VAT declaration -PaySalary=Pay a salary card -ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid ? -ConfirmPayVAT=Are you sure you want to classify this VAT declaration as paid ? -ConfirmPaySalary=Are you sure you want to classify this salary card as paid? +PayVAT=دفع إقرار ضريبة القيمة المضافة +PaySalary=دفع بطاقة الراتب +ConfirmPaySocialContribution=هل أنت متأكد من أنك تريد تصنيف هذه الضريبة الاجتماعية أو الضريبية على أنها مدفوعة؟ +ConfirmPayVAT=هل أنت متأكد من أنك تريد تصنيف إقرار ضريبة القيمة المضافة هذا على أنه مدفوع؟ +ConfirmPaySalary=هل أنت متأكد أنك تريد تصنيف بطاقة الراتب هذه على أنها مدفوعة؟ DeleteSocialContribution=حذف دفع الضرائب الاجتماعي أو المالي -DeleteVAT=Delete a VAT declaration -DeleteSalary=Delete a salary card -ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? -ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +DeleteVAT=حذف إقرار ضريبة القيمة المضافة +DeleteSalary=حذف بطاقة الراتب +DeleteVariousPayment=احذف دفعة مختلفة +ConfirmDeleteSocialContribution=هل أنت متأكد من أنك تريد حذف مدفوعات الضرائب الاجتماعية / المالية؟ +ConfirmDeleteVAT=هل أنت متأكد أنك تريد حذف إقرار ضريبة القيمة المضافة هذا؟ +ConfirmDeleteSalary=هل أنت متأكد أنك تريد حذف هذا الراتب؟ +ConfirmDeleteVariousPayment=هل أنت متأكد أنك تريد حذف هذه المدفوعات المتنوعة؟ ExportDataset_tax_1=الضرائب والمدفوعات الاجتماعية والمالية CalcModeVATDebt=الوضع٪ SVAT بشأن المحاسبة الالتزام٪ الصورة. CalcModeVATEngagement=وضع SVAT٪ على مداخيل مصاريف٪ الصورة. -CalcModeDebt=Analysis of known recorded documents even if they are not yet accounted in ledger. -CalcModeEngagement=Analysis of known recorded payments, even if they are not yet accounted in Ledger. -CalcModeBookkeeping=Analysis of data journalized in Bookkeeping Ledger table. +CalcModeDebt=تحليل المستندات المسجلة المعروفة حتى لو لم يتم احتسابها بعد في دفتر الأستاذ. +CalcModeEngagement=تحليل المدفوعات المسجلة المعروفة ، حتى لو لم يتم احتسابها بعد في دفتر الأستاذ. +CalcModeBookkeeping=تحليل البيانات المسجلة في دفتر دفتر الأستاذ. CalcModeLT1= الوضع٪ زارة العلاقات الخارجية على فواتير العملاء - فواتير الموردين٪ الصورة CalcModeLT1Debt=الوضع٪ زارة العلاقات الخارجية على فواتير العملاء٪ الصورة CalcModeLT1Rec= الوضع٪ زارة العلاقات الخارجية على فواتير الموردين٪ الصورة @@ -163,53 +167,53 @@ CalcModeLT2Debt=وضع sIRPF٪ على فواتير العملاء٪ الصو CalcModeLT2Rec= وضع sIRPF٪ على فواتير الموردين٪ الصورة AnnualSummaryDueDebtMode=ميزان الإيرادات والمصروفات، ملخص سنوي AnnualSummaryInputOutputMode=ميزان الإيرادات والمصروفات، ملخص سنوي -AnnualByCompanies=Balance of income and expenses, by predefined groups of account -AnnualByCompaniesDueDebtMode=Balance of income and expenses, detail by predefined groups, mode %sClaims-Debts%s said Commitment accounting. -AnnualByCompaniesInputOutputMode=Balance of income and expenses, detail by predefined groups, mode %sIncomes-Expenses%s said cash accounting. -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation based on recorded payments made even if they are not yet accounted in Ledger -SeeReportInDueDebtMode=See %sanalysis of recorded documents%s for a calculation based on known recorded documents even if they are not yet accounted in Ledger -SeeReportInBookkeepingMode=See %sanalysis of bookeeping ledger table%s for a report based on Bookkeeping Ledger table +AnnualByCompanies=ميزان الدخل والمصروفات حسب مجموعات الحساب المحددة مسبقا +AnnualByCompaniesDueDebtMode=ميزان الإيرادات والمصروفات ، التفاصيل حسب المجموعات المحددة مسبقًا ، الوضع %sClaims-Debts%s قال محاسبة الالتزام a09a4b739f. +AnnualByCompaniesInputOutputMode=ميزان الإيرادات والمصروفات ، التفاصيل حسب المجموعات المحددة مسبقًا ، الوضع %s الدخل - المصروفات %s قال المحاسبة النقدية a09a4b739. +SeeReportInInputOutputMode=راجع %s تحليل المدفوعات +SeeReportInDueDebtMode=راجع %s تحليل المستندات المسجلة +SeeReportInBookkeepingMode=راجع %s تحليل جدول دفتر الأستاذ لحراسة الدفاتر RulesAmountWithTaxIncluded=- المبالغ المبينة لمع جميع الضرائب المدرجة -RulesAmountWithTaxExcluded=- Amounts of invoices shown are with all taxes excluded -RulesResultDue=- It includes all invoices, expenses, VAT, donations, salaries, whether they are paid or not.
- It is based on the billing date of invoices and on the due date for expenses or tax payments. For salaries, the date of end of period is used. -RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT, donations and salaries. -RulesCADue=- It includes the customer's due invoices whether they are paid or not.
- It is based on the billing date of these invoices.
-RulesCAIn=- It includes all the effective payments of invoices received from customers.
- It is based on the payment date of these invoices
-RulesCATotalSaleJournal=It includes all credit lines from the Sale journal. -RulesSalesTurnoverOfIncomeAccounts=It includes (credit - debit) of lines for product accounts in group INCOME -RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" -RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" -RulesResultBookkeepingPersonalized=It show record in your Ledger with accounting accounts grouped by personalized groups -SeePageForSetup=See menu %s for setup -DepositsAreNotIncluded=- Down payment invoices are not included +RulesAmountWithTaxExcluded=- مبالغ الفواتير المعروضة مع استبعاد جميع الضرائب +RulesResultDue=- تشمل جميع الفواتير والمصاريف وضريبة القيمة المضافة والتبرعات والرواتب سواء تم دفعها أم لا.
- يعتمد على تاريخ فوترة الفواتير وتاريخ استحقاق المصروفات أو مدفوعات الضرائب. بالنسبة للرواتب ، يتم استخدام تاريخ انتهاء الفترة. +RulesResultInOut=- تشمل المدفوعات الحقيقية للفواتير والمصاريف وضريبة القيمة المضافة والرواتب.
- يعتمد على تواريخ سداد الفواتير والمصاريف وضريبة القيمة المضافة والتبرعات والرواتب. +RulesCADue=- تشمل فواتير العميل المستحقة سواء تم دفعها أم لا.
- يعتمد على تاريخ فوترة هذه الفواتير.
+RulesCAIn=- يشمل جميع المدفوعات الفعلية للفواتير المستلمة من العملاء.
- يعتمد على تاريخ دفع هذه الفواتير
+RulesCATotalSaleJournal=يشمل جميع خطوط الائتمان من مجلة البيع. +RulesSalesTurnoverOfIncomeAccounts=يتضمن (دائن - مدين) خطوط لحسابات المنتجات في دخل المجموعة +RulesAmountOnInOutBookkeepingRecord=يتضمن سجلًا في دفتر الأستاذ الخاص بك مع حسابات المحاسبة التي تحتوي على مجموعة "المصروفات" أو "الدخل" +RulesResultBookkeepingPredefined=يتضمن سجلًا في دفتر الأستاذ الخاص بك مع حسابات المحاسبة التي تحتوي على مجموعة "المصروفات" أو "الدخل" +RulesResultBookkeepingPersonalized=يظهر السجل في دفتر الأستاذ الخاص بك مع حسابات المحاسبة مجمعة حسب المجموعات الشخصية +SeePageForSetup=انظر القائمة %s للإعداد +DepositsAreNotIncluded=- فواتير الدفعة المقدمة غير متضمنة DepositsAreIncluded=- Down payment invoices are included -LT1ReportByMonth=Tax 2 report by month -LT2ReportByMonth=Tax 3 report by month -LT1ReportByCustomers=Report tax 2 by third party -LT2ReportByCustomers=Report tax 3 by third party +LT1ReportByMonth=تقرير الضريبة 2 حسب الشهر +LT2ReportByMonth=تقرير الضريبة 3 حسب الشهر +LT1ReportByCustomers=تقرير الضريبة 2 من قبل طرف ثالث +LT2ReportByCustomers=تقرير الضريبة 3 من قبل طرف ثالث LT1ReportByCustomersES=تقرير RE طرف ثالث LT2ReportByCustomersES=تقرير من قبل طرف ثالث IRPF -VATReport=Sales tax report -VATReportByPeriods=Sales tax report by period -VATReportByMonth=Sales tax report by month -VATReportByRates=Sales tax report by rate -VATReportByThirdParties=Sales tax report by third party -VATReportByCustomers=Sales tax report by customer +VATReport=تقرير ضريبة المبيعات +VATReportByPeriods=تقرير ضريبة المبيعات حسب الفترة +VATReportByMonth=تقرير ضريبة المبيعات بالشهر +VATReportByRates=تقرير ضريبة المبيعات حسب المعدل +VATReportByThirdParties=تقرير ضريبة المبيعات من قبل طرف ثالث +VATReportByCustomers=تقرير ضريبة المبيعات من قبل العميل VATReportByCustomersInInputOutputMode=تقرير من ضريبة القيمة المضافة العملاء جمع ودفع -VATReportByQuartersInInputOutputMode=Report by Sales tax rate of the tax collected and paid -VATReportShowByRateDetails=Show details of this rate -LT1ReportByQuarters=Report tax 2 by rate -LT2ReportByQuarters=Report tax 3 by rate +VATReportByQuartersInInputOutputMode=تقرير عن معدل ضريبة المبيعات للضريبة المحصلة والمدفوعة +VATReportShowByRateDetails=عرض تفاصيل هذا المعدل +LT1ReportByQuarters=تقرير الضريبة 2 حسب المعدل +LT2ReportByQuarters=تقرير الضريبة 3 حسب المعدل LT1ReportByQuartersES=تقرير معدل RE LT2ReportByQuartersES=تقرير معدل IRPF -SeeVATReportInInputOutputMode=See report %sVAT collection%s for a standard calculation -SeeVATReportInDueDebtMode=See report %sVAT on debit%s for a calculation with an option on the invoicing -RulesVATInServices=- For services, the report includes the VAT of payments actually received or paid on the basis of the date of payment. -RulesVATInProducts=- For material assets, the report includes the VAT on the basis of the date of payment. -RulesVATDueServices=- For services, the report includes VAT of due invoices, paid or not, based on the invoice date. -RulesVATDueProducts=- For material assets, the report includes the VAT of due invoices, based on the invoice date. +SeeVATReportInInputOutputMode=انظر التقرير %s مجموعة ضريبة القيمة المضافة %s للحصول على حساب قياسي +SeeVATReportInDueDebtMode=انظر التقرير %sVAT on debit%s للحصول على حساب مع خيار في الفواتير +RulesVATInServices=- بالنسبة للخدمات ، يتضمن التقرير ضريبة القيمة المضافة للدفعات المستلمة أو المدفوعة بالفعل على أساس تاريخ الدفع. +RulesVATInProducts=- بالنسبة للأصول المادية ، يتضمن التقرير ضريبة القيمة المضافة على أساس تاريخ الدفع. +RulesVATDueServices=- بالنسبة للخدمات ، يتضمن التقرير ضريبة القيمة المضافة للفواتير المستحقة ، المدفوعة أم لا ، بناءً على تاريخ الفاتورة. +RulesVATDueProducts=- بالنسبة للأصول المادية ، يتضمن التقرير ضريبة القيمة المضافة للفواتير المستحقة ، بناءً على تاريخ الفاتورة. OptionVatInfoModuleComptabilite=ملاحظة : للحصول على الأصول المادية ، فإنه ينبغي استخدام تاريخ التسليم ليكون أكثر إنصافا. -ThisIsAnEstimatedValue=This is a preview, based on business events and not from the final ledger table, so final results may differ from this preview values +ThisIsAnEstimatedValue=هذه معاينة ، بناءً على أحداث العمل وليس من جدول دفتر الأستاذ النهائي ، لذلك قد تختلف النتائج النهائية عن قيم المعاينة هذه PercentOfInvoice=٪ ٪ / الفاتورة NotUsedForGoods=لا تستخدم على السلع ProposalStats=إحصاءات بشأن المقترحات @@ -230,28 +234,28 @@ Pcg_version=Chart of accounts models Pcg_type=نوع PCG Pcg_subtype=PCG النوع الفرعي InvoiceLinesToDispatch=خطوط الفاتورة لارسال -ByProductsAndServices=By product and service +ByProductsAndServices=حسب المنتج والخدمة RefExt=المرجع الخارجي -ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click on button "%s". +ToCreateAPredefinedInvoice=لإنشاء نموذج فاتورة ، قم بإنشاء فاتورة قياسية ، ثم ، دون التحقق من صحتها ، انقر فوق الزر "%s". LinkedOrder=تصل إلى النظام Mode1=طريقة 1 Mode2=طريقة 2 CalculationRuleDesc=لحساب مجموع الضريبة على القيمة المضافة، هناك طريقتين:
طريقة 1 والتقريب ضريبة القيمة المضافة في كل سطر، ثم ملخصا لها.
طريقة 2 يتم تلخيص كل ضريبة القيمة المضافة في كل سطر، ثم التقريب النتيجة.
النتيجة النهائية قد تختلف من بضعة سنتات. الوضع الافتراضي هو وضع الصورة٪. -CalculationRuleDescSupplier=According to vendor, choose appropriate method to apply same calculation rule and get same result expected by your vendor. -TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover collected per product is not available. This report is only available for turnover invoiced. -TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. +CalculationRuleDescSupplier=وفقًا للبائع ، اختر الطريقة المناسبة لتطبيق نفس قاعدة الحساب والحصول على نفس النتيجة التي يتوقعها البائع. +TurnoverPerProductInCommitmentAccountingNotRelevant=لا يتوفر تقرير الدوران الذي تم جمعه لكل منتج. هذا التقرير متاح فقط للدوران المفوتر. +TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=لا يتوفر تقرير رقم الأعمال المحصل لكل معدل ضريبة بيع. هذا التقرير متاح فقط للدوران المفوتر. CalculationMode=وضع الحساب -AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. -ConfirmCloneTax=Confirm the clone of a social/fiscal tax -ConfirmCloneVAT=Confirm the clone of a VAT declaration -ConfirmCloneSalary=Confirm the clone of a salary +AccountancyJournal=مجلة كود المحاسبة +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=سيتم استخدام حساب المحاسبة المخصص المحدد في بطاقة الطرف الثالث لمحاسبة Subledger فقط. سيتم استخدام هذا واحد لدفتر الأستاذ العام وكقيمة افتراضية لمحاسبة Subledger إذا لم يتم تحديد حساب محاسبة العميل المخصص على طرف ثالث. +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=سيتم استخدام حساب المحاسبة المخصص المحدد في بطاقة الطرف الثالث لمحاسبة Subledger فقط. سيتم استخدام هذا واحد لدفتر الأستاذ العام وكقيمة افتراضية لمحاسبة Subledger إذا لم يتم تحديد حساب محاسبة البائع المخصص على طرف ثالث. +ConfirmCloneTax=قم بتأكيد استنساخ الضريبة الاجتماعية / المالية +ConfirmCloneVAT=قم بتأكيد استنساخ إقرار ضريبة القيمة المضافة +ConfirmCloneSalary=تأكيد استنساخ الراتب CloneTaxForNextMonth=استنساخ لشهر المقبل SimpleReport=تقرير بسيط AddExtraReport=Extra reports (add foreign and national customer report) @@ -265,36 +269,37 @@ ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period ListSocialContributionAssociatedProject=List of social contributions associated with the project -DeleteFromCat=Remove from accounting group -AccountingAffectation=Accounting assignment -LastDayTaxIsRelatedTo=Last day of period the tax is related to -VATDue=Sale tax claimed -ClaimedForThisPeriod=Claimed for the period -PaidDuringThisPeriod=Paid for this period -PaidDuringThisPeriodDesc=This is the sum of all payments linked to VAT declarations which have an end-of-period date in the selected date range -ByVatRate=By sale tax rate -TurnoverbyVatrate=Turnover invoiced by sale tax rate -TurnoverCollectedbyVatrate=Turnover collected by sale tax rate -PurchasebyVatrate=Purchase by sale tax rate +DeleteFromCat=إزالة من مجموعة المحاسبة +AccountingAffectation=مهمة المحاسبة +LastDayTaxIsRelatedTo=آخر يوم في الفترة التي تتعلق بها الضريبة +VATDue=مطالبة بضريبة البيع +ClaimedForThisPeriod=ادعى عن الفترة +PaidDuringThisPeriod=دفعت لهذه الفترة +PaidDuringThisPeriodDesc=هذا هو مجموع جميع المدفوعات المرتبطة بإقرارات ضريبة القيمة المضافة التي لها تاريخ نهاية الفترة في النطاق الزمني المحدد +ByVatRate=حسب معدل ضريبة البيع +TurnoverbyVatrate=معدل دوران بفاتورة معدل ضريبة البيع +TurnoverCollectedbyVatrate=حجم المبيعات المحصلة عن طريق معدل ضريبة البيع +PurchasebyVatrate=الشراء حسب معدل ضريبة البيع LabelToShow=التسمية قصيرة -PurchaseTurnover=Purchase turnover -PurchaseTurnoverCollected=Purchase turnover collected -RulesPurchaseTurnoverDue=- It includes the supplier's due invoices whether they are paid or not.
- It is based on the invoice date of these invoices.
-RulesPurchaseTurnoverIn=- It includes all the effective payments of invoices done to suppliers.
- It is based on the payment date of these invoices
-RulesPurchaseTurnoverTotalPurchaseJournal=It includes all debit lines from the purchase journal. -RulesPurchaseTurnoverOfExpenseAccounts=It includes (debit - credit) of lines for product accounts in group EXPENSE -ReportPurchaseTurnover=Purchase turnover invoiced -ReportPurchaseTurnoverCollected=Purchase turnover collected -IncludeVarpaysInResults = Include various payments in reports -IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) -InvoiceNotLate = To be collected (< 15 days) -InvoiceNotLate15Days = To be collected (15 to 30 days) -InvoiceNotLate30Days = To be collected (> 30 days) -InvoiceToPay=To pay (< 15 days) -InvoiceToPay15Days=To pay (15 to 30 days) -InvoiceToPay30Days=To pay (> 30 days) -ConfirmPreselectAccount=Preselect accountancy code -ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +PurchaseTurnover=معدل دوران الشراء +PurchaseTurnoverCollected=جمع دوران الشراء +RulesPurchaseTurnoverDue=- تشمل فواتير المورد المستحقة سواء تم دفعها أم لا.
- يعتمد على تاريخ فاتورة هذه الفواتير.
+RulesPurchaseTurnoverIn=- يشمل جميع عمليات السداد الفعلية للفواتير التي تم إجراؤها للموردين.
- يعتمد على تاريخ دفع هذه الفواتير
+RulesPurchaseTurnoverTotalPurchaseJournal=يتضمن جميع بنود الخصم من دفتر يومية الشراء. +RulesPurchaseTurnoverOfExpenseAccounts=يتضمن (مدين - دائن) خطوط لحسابات المنتجات في نفقات المجموعة +ReportPurchaseTurnover=فاتورة دوران الشراء +ReportPurchaseTurnoverCollected=جمع دوران الشراء +IncludeVarpaysInResults = تضمين المدفوعات المختلفة في التقارير +IncludeLoansInResults = تضمين القروض في التقارير +InvoiceLate30Days = متأخر (> 30 يومًا) +InvoiceLate15Days = متأخر (15 إلى 30 يومًا) +InvoiceLateMinus15Days = متأخر (أقل من 15 يومًا) +InvoiceNotLate = يتم تحصيلها (أقل من 15 يومًا) +InvoiceNotLate15Days = يتم تحصيلها (من 15 إلى 30 يومًا) +InvoiceNotLate30Days = يتم تحصيلها (> 30 يومًا) +InvoiceToPay=للدفع (<15 يومًا) +InvoiceToPay15Days=للدفع (من 15 إلى 30 يومًا) +InvoiceToPay30Days=للدفع (> 30 يومًا) +ConfirmPreselectAccount=حدد رمز المحاسبة مسبقًا +ConfirmPreselectAccountQuestion=هل أنت متأكد أنك تريد التحديد المسبق للأسطر المحددة %s برمز الحساب هذا؟ +AmountPaidMustMatchAmountOfDownPayment=يجب أن يتطابق المبلغ المدفوع مع مبلغ الدفعة المقدمة diff --git a/htdocs/langs/ar_SA/contracts.lang b/htdocs/langs/ar_SA/contracts.lang index 03dda40210d..21b6939f7e9 100644 --- a/htdocs/langs/ar_SA/contracts.lang +++ b/htdocs/langs/ar_SA/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=العقود / الاشتراكات ContractsAndLine=العقود و بنود العقود Contract=العقد ContractLine=بند العقد +ContractLines=خطوط العقد Closing=جار الإغلاق NoContracts=لا توجد عقود MenuServices=الخدمات @@ -36,7 +37,7 @@ CloseAContract=إغلاق العقد ConfirmDeleteAContract=هل انت متأكد من رغبتك في حذف هذا العقد وجميع خدماته ؟ ConfirmValidateContract=هل انت متأكد من رغبتك بتأكيد العقد المسمى %s ؟ ConfirmActivateAllOnContract=سيتم تفعيل جميع الخدمات (غير المفعلة بعد) . هل انت متأكد من رغبتك في تفعيل جميع الخدمات ؟ -ConfirmCloseContract=This will close all services (expired or not). Are you sure you want to close this contract? +ConfirmCloseContract=سيؤدي هذا إلى إغلاق جميع الخدمات (منتهية الصلاحية أم لا). هل أنت متأكد أنك تريد إغلاق هذا العقد؟ ConfirmCloseService=هل انت متأكد من رغبتك بإغلاق الخدمة بتاريخ %s ؟ ValidateAContract=تصديق العقد ActivateService=تفعيل الخدمة @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=هل انت متأكد من رغبتك بحذف بند MoveToAnotherContract=نقل الخدمة الى عقد اخر ConfirmMoveToAnotherContract=لقد اخترت عقد جدبد للخدمة و اود نقل هذه الخدمة الى العقد الجديد ConfirmMoveToAnotherContractQuestion=إختر ايأ من العقود الموجودة (لنفس الطرف الثالث) ، والتي تود نقل هذه الخدمة لها ؟ -PaymentRenewContractId=تجديد بند العقد (رقم %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=تاريخ الانتهاء NoExpiredServices=الخدمات المفعلة غير المنتهية ListOfServicesToExpireWithDuration=قائمة الخدمات المنتهية خلال %s ايام @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=جهة إتصال توقيع العق HideClosedServiceByDefault=إخفاء الخدمات المغلقة إبتداءاً ShowClosedServices=إظهار الخدمات المغلقة HideClosedServices=إخفاء الخدمات المغلقة +UserStartingService=خدمة بدء المستخدم +UserClosingService=خدمة إغلاق المستخدم diff --git a/htdocs/langs/ar_SA/cron.lang b/htdocs/langs/ar_SA/cron.lang index eb03a59b91e..0243d7ca6c7 100644 --- a/htdocs/langs/ar_SA/cron.lang +++ b/htdocs/langs/ar_SA/cron.lang @@ -7,16 +7,16 @@ Permission23103 = حذف مهمة مجدولة Permission23104 = تنفيذ مهمة مجدولة # Admin CronSetup=من المقرر إعداد إدارة العمل -URLToLaunchCronJobs=URL to check and launch qualified cron jobs from a browser -OrToLaunchASpecificJob=Or to check and launch a specific job from a browser +URLToLaunchCronJobs=عنوان URL للتحقق من وظائف cron المؤهلة وإطلاقها من المستعرض +OrToLaunchASpecificJob=أو للتحقق من وظيفة معينة وإطلاقها من متصفح KeyForCronAccess=مفتاح أمان للURL لإطلاق كرون الوظائف -FileToLaunchCronJobs=Command line to check and launch qualified cron jobs +FileToLaunchCronJobs=سطر الأوامر للتحقق من وظائف cron المؤهلة وإطلاقها CronExplainHowToRunUnix=على بيئة يونكس يجب عليك استخدام دخول كرونتاب التالي لتشغيل سطر الأوامر كل 5 دقائق -CronExplainHowToRunWin=On Microsoft(tm) Windows environment you can use Scheduled Task tools to run the command line each 5 minutes +CronExplainHowToRunWin=في بيئة Microsoft (tm) Windows ، يمكنك استخدام أدوات المهام المجدولة لتشغيل سطر الأوامر كل 5 دقائق CronMethodDoesNotExists=Class %s does not contains any method %s -CronMethodNotAllowed=Method %s of class %s is in blacklist of forbidden methods -CronJobDefDesc=Cron job profiles are defined into the module descriptor file. When module is activated, they are loaded and available so you can administer the jobs from the admin tools menu %s. -CronJobProfiles=List of predefined cron job profiles +CronMethodNotAllowed=الطريقة %s للفئة %s موجودة في القائمة السوداء للطرق المحظورة +CronJobDefDesc=يتم تعريف ملفات تعريف وظائف Cron في ملف واصف الوحدة. عند تنشيط الوحدة النمطية ، يتم تحميلها وإتاحتها حتى تتمكن من إدارة الوظائف من قائمة أدوات المسؤول %s. +CronJobProfiles=قائمة ملفات تعريف وظائف كرون المحددة مسبقًا # Menu EnabledAndDisabled=Enabled and disabled # Page list @@ -26,7 +26,7 @@ CronCommand=أمر CronList=المهام المجدولة CronDelete=حذف المهام المجدولة CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job +CronExecute=Launch now CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=وظيفة @@ -43,11 +43,11 @@ CronModule=وحدة CronNoJobs=أي وظيفة سجلت CronPriority=الأولوية CronLabel=ملصق -CronNbRun=Number of launches -CronMaxRun=Maximum number of launches +CronNbRun=عدد عمليات الإطلاق +CronMaxRun=العدد الأقصى لعمليات الإطلاق CronEach=كل JobFinished=العمل بدأ وانتهى -Scheduled=Scheduled +Scheduled=المقرر #Page card CronAdd= إضافة وظائف CronEvery=العمل كل تنفيذ @@ -57,35 +57,44 @@ CronSaveSucess=Save successfully CronNote=التعليق CronFieldMandatory=الحقول%s إلزامي CronErrEndDateStartDt=تاريخ نهاية لا يمكن أن يكون قبل تاريخ البدء -StatusAtInstall=Status at module installation -CronStatusActiveBtn=Schedule +StatusAtInstall=الحالة عند تثبيت الوحدة +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=يعطل -CronTaskInactive=This job is disabled (not scheduled) +CronTaskInactive=هذه الوظيفة معطلة (غير مجدولة) CronId=هوية شخصية CronClassFile=Filename with class -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is
product -CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For example to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is
product/class/product.class.php -CronObjectHelp=The object name to load.
For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is
Product -CronMethodHelp=The object method to launch.
For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is
fetch -CronArgsHelp=The method arguments.
For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be
0, ProductRef +CronModuleHelp=اسم دليل وحدة Dolibarr (يعمل أيضًا مع وحدة Dolibarr الخارجية).
على سبيل المثال لاستدعاء طريقة الجلب الخاصة بـ Dolibarr Product object / htdocs / product /class/product.class.php ، قيمة الوحدة النمطية هي
a049271e81833 +CronClassFileHelp=المسار النسبي واسم الملف المراد تحميله (المسار مرتبط بالدليل الجذر لخادم الويب).
على سبيل المثال لاستدعاء طريقة الجلب لكائن منتج Dolibarr htdocs / product / class / product.class.php ، قيمة اسم ملف الفئة هي
a049271e8181 +CronObjectHelp=اسم الكائن المراد تحميله.
على سبيل المثال لاستدعاء طريقة الجلب لكائن Dolibarr Product /htdocs/product/class/product.class.php ، قيمة اسم ملف الفئة هي
المنتج +CronMethodHelp=طريقة الكائن لبدء.
على سبيل المثال لاستدعاء طريقة الجلب لكائن منتج Dolibarr /htdocs/product/class/product.class.php ، قيمة الطريقة هي
fetch +CronArgsHelp=حجج الطريقة.
على سبيل المثال لاستدعاء طريقة الجلب لكائن Dolibarr Product /htdocs/product/class/product.class.php ، يمكن أن تكون قيمة المعلمات
0 ، ProductRef CronCommandHelp=سطر الأوامر لتنفيذ النظام. CronCreateJob=إنشاء مهمة مجدولة جديدة CronFrom=من عند # Info # Common CronType=نوع العمل -CronType_method=Call method of a PHP Class +CronType_method=طريقة استدعاء فئة PHP CronType_command=الأمر Shell -CronCannotLoadClass=Cannot load class file %s (to use class %s) -CronCannotLoadObject=Class file %s was loaded, but object %s was not found into it -UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled jobs" to see and edit scheduled jobs. +CronCannotLoadClass=لا يمكن تحميل ملف الفئة %s (لاستخدام الفئة %s) +CronCannotLoadObject=تم تحميل ملف الفئة %s ، ولكن لم يتم العثور على الكائن %s فيه +UseMenuModuleToolsToAddCronJobs=اذهب إلى القائمة " الصفحة الرئيسية - أدوات الإدارة - الوظائف المجدولة " لرؤية الوظائف المجدولة وتحريرها. JobDisabled=تعطيل وظيفة MakeLocalDatabaseDumpShort=Local database backup -MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep +MakeLocalDatabaseDump=إنشاء تفريغ قاعدة بيانات محلية. المعلمات هي: الضغط ("gz" أو "bz" أو "لا شيء") ، نوع النسخ الاحتياطي ("mysql" ، "pgsql" ، "تلقائي") ، 1 ، "تلقائي" أو اسم الملف المراد إنشاؤه ، عدد ملفات النسخ الاحتياطي المطلوب الاحتفاظ بها +MakeSendLocalDatabaseDumpShort=إرسال نسخة احتياطية من قاعدة البيانات المحلية +MakeSendLocalDatabaseDump=إرسال نسخة احتياطية لقاعدة البيانات المحلية عن طريق البريد الإلكتروني. المعلمات هي: إلى ، من ، الموضوع ، الرسالة ، اسم الملف (اسم الملف المرسل) ، عامل التصفية ('sql' للنسخ الاحتياطي لقاعدة البيانات فقط) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. -DATAPOLICYJob=Data cleaner and anonymizer -JobXMustBeEnabled=Job %s must be enabled +DATAPOLICYJob=منظف البيانات ومجهول الهوية +JobXMustBeEnabled=يجب تفعيل الوظيفة %s +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes -LastExecutedScheduledJob=Last executed scheduled job -NextScheduledJobExecute=Next scheduled job to execute -NumberScheduledJobError=Number of scheduled jobs in error +LastExecutedScheduledJob=آخر وظيفة مجدولة تم تنفيذها +NextScheduledJobExecute=المهمة التالية المجدولة للتنفيذ +NumberScheduledJobError=عدد الوظائف المجدولة بالخطأ +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/ar_SA/datapolicy.lang b/htdocs/langs/ar_SA/datapolicy.lang new file mode 100644 index 00000000000..eeb62deccc0 --- /dev/null +++ b/htdocs/langs/ar_SA/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = العميل +DATAPOLICY_TIERS_PROSPECT = فرصة +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = المورد +DATAPOLICY_CONTACT_CLIENT = العميل +DATAPOLICY_CONTACT_PROSPECT = فرصة +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = المورد +DATAPOLICY_ADHERENT = عضو +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/ar_SA/deliveries.lang b/htdocs/langs/ar_SA/deliveries.lang index 920fa226b0f..320189d768e 100644 --- a/htdocs/langs/ar_SA/deliveries.lang +++ b/htdocs/langs/ar_SA/deliveries.lang @@ -30,3 +30,4 @@ NonShippable=غير قابل للشحن ShowShippableStatus=إظهار علامة قابل للشحن ShowReceiving=عرض إيصال الاستلام NonExistentOrder=امر غير موجود +StockQuantitiesAlreadyAllocatedOnPreviousLines = كميات المخزون المخصصة بالفعل في الأسطر السابقة diff --git a/htdocs/langs/ar_SA/dict.lang b/htdocs/langs/ar_SA/dict.lang index f9c24a7a607..ced52e16a06 100644 --- a/htdocs/langs/ar_SA/dict.lang +++ b/htdocs/langs/ar_SA/dict.lang @@ -21,7 +21,7 @@ CountryNL=هولندا CountryHU=Hongria CountryRU=روسيا CountrySE=السويد -CountryCI=Ivoiry الساحل +CountryCI=ساحل العاج CountrySN=السنغال CountryAR=الأرجنتين CountryCM=الكاميرون @@ -116,7 +116,7 @@ CountryHM=واستمع وجزر ماكدونالد CountryVA=الكرسي الرسولي (دولة الفاتيكان) CountryHN=هندوراس CountryHK=هونج كونج -CountryIS=Iceland +CountryIS=أيسلندا CountryIN=الهند CountryID=اندونيسيا CountryIR=إيران @@ -131,7 +131,7 @@ CountryKI=كيريباس CountryKP=كوريا الشمالية CountryKR=كوريا الجنوبية CountryKW=الكويت -CountryKG=Kyrgyzstan +CountryKG=قيرغيزستان CountryLA=لاوس CountryLV=لاتفيا CountryLB=لبنان @@ -160,7 +160,7 @@ CountryMD=مولدافيا CountryMN=منغوليا CountryMS=مونتسرات CountryMZ=موزامبيق -CountryMM=Myanmar (Burma) +CountryMM=ميانمار (بورما) CountryNA=ناميبيا CountryNR=ناورو CountryNP=نيبال @@ -223,7 +223,7 @@ CountryTO=تونجا CountryTT=ترينيداد وتوباغو CountryTR=تركيا CountryTM=تركمانستان -CountryTC=Turks and Caicos Islands +CountryTC=جزر تركس وكايكوس CountryTV=توفالو CountryUG=أوغندا CountryUA=أوكرانيا @@ -250,7 +250,9 @@ CountryMF=سانت مارتين ##### Civilities ##### CivilityMME=السيدة +CivilityMMEShort=السيدة CivilityMR=السيد +CivilityMRShort=السيد CivilityMLE=السيدة CivilityMTRE=السيد CivilityDR=دكتور @@ -277,7 +279,7 @@ CurrencySingMGA=Ariary CurrencyMUR=موريشيوس روبية CurrencySingMUR=موريشيوس روبية CurrencyNOK=النرويجية بالكرون -CurrencySingNOK=Norwegian kronas +CurrencySingNOK=كرونا نرويجية CurrencyTND=دينار CurrencySingTND=الدينار التونسي CurrencyUSD=الدولار الأمريكي @@ -290,7 +292,7 @@ CurrencyXOF=BCEAO فرنك أفريقي CurrencySingXOF=اتفاق وقف إطلاق النار الفرنك تشريعي ملائم CurrencyXPF=الحراجية المعتمدة الفرنك CurrencySingXPF=الحراجية المعتمدة الفرنك -CurrencyCentEUR=cents +CurrencyCentEUR=سنتا CurrencyCentSingEUR=سنت CurrencyCentINR=بيزة CurrencyCentSingINR=paise @@ -307,7 +309,7 @@ DemandReasonTypeSRC_WOM=كلمة الفم DemandReasonTypeSRC_PARTNER=شريك DemandReasonTypeSRC_EMPLOYEE=الموظف DemandReasonTypeSRC_SPONSORING=رعاية -DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer +DemandReasonTypeSRC_SRC_CUSTOMER=جهة اتصال واردة للعميل #### Paper formats #### PaperFormatEU4A0=شكل 4A0 PaperFormatEU2A0=شكل 2A0 @@ -330,30 +332,30 @@ PaperFormatCAP5=شكل P5 كندا PaperFormatCAP6=شكل P6 كندا #### Expense report categories #### ExpAutoCat=سيارة -ExpCycloCat=Moped -ExpMotoCat=Motorbike -ExpAuto3CV=3 CV -ExpAuto4CV=4 CV -ExpAuto5CV=5 CV -ExpAuto6CV=6 CV -ExpAuto7CV=7 CV -ExpAuto8CV=8 CV -ExpAuto9CV=9 CV -ExpAuto10CV=10 CV -ExpAuto11CV=11 CV -ExpAuto12CV=12 CV -ExpAuto3PCV=3 CV and more -ExpAuto4PCV=4 CV and more -ExpAuto5PCV=5 CV and more -ExpAuto6PCV=6 CV and more -ExpAuto7PCV=7 CV and more -ExpAuto8PCV=8 CV and more -ExpAuto9PCV=9 CV and more -ExpAuto10PCV=10 CV and more -ExpAuto11PCV=11 CV and more -ExpAuto12PCV=12 CV and more -ExpAuto13PCV=13 CV and more -ExpCyclo=Capacity lower to 50cm3 -ExpMoto12CV=Motorbike 1 or 2 CV -ExpMoto345CV=Motorbike 3, 4 or 5 CV -ExpMoto5PCV=Motorbike 5 CV and more +ExpCycloCat=الدراجة +ExpMotoCat=دراجات نارية +ExpAuto3CV=3 سيرة ذاتية +ExpAuto4CV=4 سيرة ذاتية +ExpAuto5CV=5 سيرة ذاتية +ExpAuto6CV=6 سيرة ذاتية +ExpAuto7CV=7 سيرة ذاتية +ExpAuto8CV=8 سيرة ذاتية +ExpAuto9CV=9 سيرة ذاتية +ExpAuto10CV=10 سيرة ذاتية +ExpAuto11CV=11 سيرة ذاتية +ExpAuto12CV=12 سيرة ذاتية +ExpAuto3PCV=3 سيرة ذاتية فأكثر +ExpAuto4PCV=4 سيرة ذاتية فأكثر +ExpAuto5PCV=5 سيرة ذاتية فأكثر +ExpAuto6PCV=6 سيرة ذاتية فأكثر +ExpAuto7PCV=7 سيرة ذاتية فأكثر +ExpAuto8PCV=8 سيرة ذاتية فأكثر +ExpAuto9PCV=9 سيرة ذاتية فأكثر +ExpAuto10PCV=10 سيرة ذاتية فأكثر +ExpAuto11PCV=11 سيرة ذاتية فأكثر +ExpAuto12PCV=12 سيرة ذاتية فأكثر +ExpAuto13PCV=13 سيرة ذاتية فأكثر +ExpCyclo=السعة أقل من 50 سم 3 +ExpMoto12CV=دراجة نارية 1 أو 2 سيرة ذاتية +ExpMoto345CV=دراجة بخارية 3 أو 4 أو 5 سيراتو +ExpMoto5PCV=دراجة بخارية 5 سيرة ذاتية فأكثر diff --git a/htdocs/langs/ar_SA/ecm.lang b/htdocs/langs/ar_SA/ecm.lang index b78f8704cac..a312486b280 100644 --- a/htdocs/langs/ar_SA/ecm.lang +++ b/htdocs/langs/ar_SA/ecm.lang @@ -1,12 +1,13 @@ # Dolibarr language file - Source file is en_US - ecm -ECMNbOfDocs=No. of documents in directory +ECMNbOfDocs=عدد الوثائق في الدليل ECMSection=دليل ECMSectionManual=دليل دليل ECMSectionAuto=الدليل الآلي ECMSectionsManual=دليل الشجرة ECMSectionsAuto=شجرة الآلي +ECMSectionsMedias=Medias tree ECMSections=أدلة -ECMRoot=ECM Root +ECMRoot=جذر ECM ECMNewSection=دليل جديد ECMAddSection=إضافة دليل دليل ECMCreationDate=تاريخ الإنشاء @@ -14,36 +15,38 @@ ECMNbOfFilesInDir=عدد من الملفات في دليل ECMNbOfSubDir=من دون أدلة ECMNbOfFilesInSubDir=عدد الملفات في الدلائل الفرعية ECMCreationUser=مبدع -ECMArea=DMS/ECM area -ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* أدلة تلقائية تملأ تلقائيا عند إضافة الوثائق من بطاقة عنصر.
* دليل أدلة يمكن استخدامها لانقاذ وثائق ليست مرتبطة بشكل خاص عنصر. +ECMArea=منطقة DMS / ECM +ECMAreaDesc=تتيح لك منطقة DMS / ECM (نظام إدارة المستندات / إدارة المحتوى الإلكتروني) حفظ جميع أنواع المستندات ومشاركتها والبحث عنها بسرعة في Dolibarr. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=دليل ٪ ق حذفت. -ECMSectionWasCreated=Directory %s has been created. +ECMSectionWasCreated=تم إنشاء الدليل %s . ECMSearchByKeywords=بحث الكلمات الرئيسية ECMSearchByEntity=بحث عن وجوه ECMSectionOfDocuments=أدلة وثائق ECMTypeAuto=التلقائي -ECMDocsBy=Documents linked to %s +ECMDocsBy=المستندات المرتبطة بـ %s ECMNoDirectoryYet=لا الدليل ShowECMSection=وتظهر الدليل DeleteSection=إزالة الدليل ConfirmDeleteSection=Can you confirm you want to delete the directory %s? ECMDirectoryForFiles=دليل النسبي للملفات -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files +CannotRemoveDirectoryContainsFilesOrDirs=الإزالة غير ممكنة لأنها تحتوي على بعض الملفات أو الدلائل الفرعية +CannotRemoveDirectoryContainsFiles=الإزالة غير ممكنة لأنها تحتوي على بعض الملفات ECMFileManager=مدير الملفات -ECMSelectASection=Select a directory in the tree... -DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory. -ReSyncListOfDir=Resync list of directories -HashOfFileContent=Hash of file content -NoDirectoriesFound=No directories found -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it) -ExtraFieldsEcmFiles=Extrafields Ecm Files -ExtraFieldsEcmDirectories=Extrafields Ecm Directories -ECMSetup=ECM Setup -GenerateImgWebp=Duplicate all images with another version with .webp format -ConfirmGenerateImgWebp=If you confirm, you will generate an image in .webp format for all images currently into this folder (subfolders are not included)... -ConfirmImgWebpCreation=Confirm all images duplication -SucessConvertImgWebp=Images successfully duplicated -ECMDirName=Dir name -ECMParentDirectory=Parent directory +ECMSelectASection=حدد دليلاً في الشجرة ... +DirNotSynchronizedSyncFirst=يبدو أن هذا الدليل قد تم إنشاؤه أو تعديله خارج وحدة ECM. يجب النقر فوق الزر "إعادة المزامنة" أولاً لمزامنة القرص وقاعدة البيانات للحصول على محتوى هذا الدليل. +ReSyncListOfDir=إعادة مزامنة قائمة الدلائل +HashOfFileContent=تجزئة لمحتوى الملف +NoDirectoriesFound=لم يتم العثور على أدلة +FileNotYetIndexedInDatabase=لم تتم فهرسة الملف بعد في قاعدة البيانات (حاول إعادة تحميله) +ExtraFieldsEcmFiles=ملفات Extrafields Ecm +ExtraFieldsEcmDirectories=أدلة Extrafields Ecm +ECMSetup=إعداد ECM +GenerateImgWebp=قم بتكرار جميع الصور بإصدار آخر بتنسيق .webp +ConfirmGenerateImgWebp=إذا قمت بالتأكيد ، فسوف تقوم بإنشاء صورة بتنسيق webp. لجميع الصور الموجودة حاليًا في هذا المجلد (لا يتم تضمين المجلدات الفرعية) ... +ConfirmImgWebpCreation=تأكيد كل الصور المكررة +SucessConvertImgWebp=تم نسخ الصور بنجاح +ECMDirName=اسم دير +ECMParentDirectory=دليل الوالدين diff --git a/htdocs/langs/ar_SA/errors.lang b/htdocs/langs/ar_SA/errors.lang index f251d252aaa..f87f246a28e 100644 --- a/htdocs/langs/ar_SA/errors.lang +++ b/htdocs/langs/ar_SA/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=ادخل ٪ ق موجود بالفعل. ErrorGroupAlreadyExists=المجموعة ٪ ق موجود بالفعل. ErrorEmailAlreadyExists=البريد الإلكتروني %s موجود بالفعل. ErrorRecordNotFound=لم يتم العثور على السجل. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=فشل في نسخ الملف '%s' إلى '%s ". ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. ErrorFailToRenameFile=فشل لإعادة تسمية الملف '%s' إلى '%s ". @@ -48,6 +49,7 @@ ErrorBadImageFormat=ملف الصورة لم تنسيق معتمد (PHP لديك ErrorBadDateFormat='%s' قيمة له خاطئ تنسيق التاريخ ErrorWrongDate=تاريخ غير صحيح! ErrorFailedToWriteInDir=لم يكتب في دليل ٪ ق +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=العثور على بريد إلكتروني صحيح لتركيب خطوط ق ٪ في ملف (على سبيل المثال خط ٪ ق= ٪ مع البريد الإلكتروني) ErrorUserCannotBeDelete=لا يمكن حذف المستخدم. ربما يرتبط بكيانات Dolibarr. ErrorFieldsRequired=تم ترك بعض الحقول المطلوبة فارغة. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=يرجى ملء قيمة لقائمة مربع ErrorNoValueForRadioType=يرجى ملء قيمة لقائمة الراديو ErrorBadFormatValueList=قيمة القائمة لا يمكن أن يكون أكثر من واحد فاصلة:٪ الصورة، ولكن تحتاج إلى واحد على الأقل: مفتاح، قيمة ErrorFieldCanNotContainSpecialCharacters=يجب ألا يحتوي الحقل %s على أحرف خاصة. -ErrorFieldCanNotContainSpecialNorUpperCharacters=يجب ألا يحتوي الحقل %s على أحرف خاصة ولا أحرف كبيرة ولا يمكن أن يحتوي على أرقام فقط. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=يجب أن يحتوي الحقل %s على أحرف %s على الأقل. ErrorNoAccountancyModuleLoaded=أي وحدة المحاسبة وتفعيل ErrorExportDuplicateProfil=هذا الاسم الشخصي موجود مسبقا لهذه المجموعة التصدير. @@ -95,9 +97,9 @@ ErrorWrongValueForField=الحقل %s : ' %s ' لا يتطابق ErrorHtmlInjectionForField=الحقل %s : تحتوي القيمة ' %s ' على بيانات ضارة غير مسموح بها ErrorFieldValueNotIn=Field %s : ' %s ' is not a value found in field %s of %s ErrorFieldRefNotIn=الحقل %s : ' %s ' ليس a0aee833658377fz039 +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=تم العثور على أخطاء %s ErrorFileIsInfectedWithAVirus=وكان برنامج مكافحة الفيروسات غير قادرة على التحقق من صحة الملف (ملف قد يكون مصابا بواسطة فيروس) -ErrorSpecialCharNotAllowedForField=غير مسموح الأحرف الخاصة لحقل "%s" ErrorNumRefModel=إشارة إلى وجود قاعدة بيانات (%s) ، وغير متوافق مع هذه القاعدة الترقيم. سجل إزالة أو إعادة تسميته اشارة الى تفعيل هذه الوحدة. ErrorQtyTooLowForThisSupplier=الكمية منخفضة جدًا لهذا البائع أو لم يتم تحديد سعر لهذا المنتج لهذا البائع ErrorOrdersNotCreatedQtyTooLow=لم يتم إنشاء بعض الطلبات بسبب الكميات المنخفضة للغاية @@ -242,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=يجب أن تكون الكائنا ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=يجب أن تكون الكائنات بحالة "مسودة" أو "معطلة" ليتم تمكينها ErrorNoFieldWithAttributeShowoncombobox=لا توجد حقول لها الخاصية "showoncombobox" في تعريف الكائن "%s". لا توجد طريقة لإظهار الاحتكاك. ErrorFieldRequiredForProduct=الحقل "%s" مطلوب للمنتج %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=كانت المشكلة في إعداد المحطة الطرفية %s. ErrorAddAtLeastOneLineFirst=أضف سطرًا واحدًا على الأقل أولاً ErrorRecordAlreadyInAccountingDeletionNotPossible=خطأ ، تم نقل السجل بالفعل في المحاسبة ، والحذف غير ممكن. @@ -271,14 +274,14 @@ ErrorYouMustFirstSetupYourChartOfAccount=يجب عليك أولاً إعداد ErrorFailedToFindEmailTemplate=فشل العثور على قالب بالاسم الرمزي %s ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=المدة غير محددة في الخدمة. لا توجد طريقة لحساب سعر الساعة. ErrorActionCommPropertyUserowneridNotDefined=مالك المستخدم مطلوب -ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary +ErrorActionCommBadType=نوع الحدث المحدد (المعرف: %s ، الرمز: %s) غير موجود في قاموس نوع الحدث CheckVersionFail=فشل التحقق من الإصدار ErrorWrongFileName=لا يمكن أن يحتوي اسم الملف على __SOMETHING__ فيه ErrorNotInDictionaryPaymentConditions=ليس في قاموس شروط الدفع ، يرجى التعديل. ErrorIsNotADraft=%s ليس مسودة ErrorExecIdFailed=لا يمكن تنفيذ الأمر "id" -ErrorBadCharIntoLoginName=شخصية غير مصرح بها في اسم تسجيل الدخول -ErrorRequestTooLarge=خطأ ، الطلب كبير جدًا +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired ErrorNotApproverForHoliday=أنت لست المعتمد للمغادرة %s ErrorAttributeIsUsedIntoProduct=تُستخدم هذه السمة في متغير منتج واحد أو أكثر ErrorAttributeValueIsUsedIntoProduct=تُستخدم قيمة السمة هذه في متغير منتج واحد أو أكثر @@ -289,13 +292,22 @@ ErrorInvoiceLoadThirdPartyKey=مفتاح الجهة الخارجية "%s" لم ErrorDeleteLineNotAllowedByObjectStatus=حذف سطر غير مسموح به من خلال حالة الكائن الحالية ErrorAjaxRequestFailed=الطلب فشل ErrorThirpdartyOrMemberidIsMandatory=طرف ثالث أو عضو في الشراكة إلزامي -ErrorFailedToWriteInTempDirectory=Failed to write in temp directory -ErrorQuantityIsLimitedTo=Quantity is limited to %s +ErrorFailedToWriteInTempDirectory=فشل في الكتابة في الدليل المؤقت +ErrorQuantityIsLimitedTo=الكمية محدودة بـ %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=معلمة PHP upload_max_filesize (%s) أعلى من معلمة PHP post_max_size (%s). هذا ليس إعداد ثابت. WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم. -WarningMandatorySetupNotComplete=Click here to setup main parameters +WarningMandatorySetupNotComplete=انقر هنا لإعداد المعلمات الرئيسية WarningEnableYourModulesApplications=انقر هنا لتمكين الوحدات والتطبيقات الخاصة بك WarningSafeModeOnCheckExecDir=انذار ، فب safe_mode الخيار في ذلك تخزين الأمر يجب أن يكون داخل الدليل الذي أعلنته safe_mode_exec_dir المعلمة بي. WarningBookmarkAlreadyExists=المرجعية هذا الكتاب أو هذا الهدف (عنوان) موجود بالفعل. @@ -304,7 +316,7 @@ WarningConfFileMustBeReadOnly=انذار ، ملف (التكوين htdocs / WarningsOnXLines=تحذيرات عن مصدر خطوط %s WarningNoDocumentModelActivated=لم يتم تنشيط أي نموذج لإنشاء المستندات. سيتم اختيار نموذج افتراضيًا حتى تتحقق من إعداد الوحدة الخاصة بك. WarningLockFileDoesNotExists=تحذير ، بمجرد الانتهاء من الإعداد ، يجب عليك تعطيل أدوات التثبيت / الترحيل عن طريق إضافة ملف install.lock إلى الدليل %s . يعد حذف إنشاء هذا الملف مخاطرة أمنية كبيرة. -WarningUntilDirRemoved=ستبقى جميع التحذيرات الأمنية (المرئية من قبل المستخدمين المسؤولين فقط) نشطة طالما أن الثغرة الأمنية موجودة (أو أن MAIN_REMOVE_INSTALL_WARNING الثابت مضاف في الإعداد-> الإعداد الآخر). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=تحذير، ويتم إغلاق حتى إذا قدر يختلف بين عناصر المصدر والهدف. تمكين هذه الميزة بحذر. WarningUsingThisBoxSlowDown=تحذير، وذلك باستخدام هذا الإطار تبطئ على محمل الجد كل الصفحات التي تظهر مربع. WarningClickToDialUserSetupNotComplete=إعداد المعلومات ClickToDial لالمستخدم الخاص بك ليست كاملة (انظر التبويب ClickToDial على بطاقة المستخدم الخاص بك). @@ -326,6 +338,8 @@ WarningAvailableOnlyForHTTPSServers=متاح فقط في حالة استخدام WarningModuleXDisabledSoYouMayMissEventHere=لم يتم تمكين الوحدة النمطية %s. لذلك قد تفوتك الكثير من الأحداث هنا. WarningPaypalPaymentNotCompatibleWithStrict=تجعل القيمة "صارمة" ميزات الدفع عبر الإنترنت لا تعمل بشكل صحيح. استخدم "Lax" بدلاً من ذلك. WarningThemeForcedTo=تحذير ، تم إجبار السمة على %s بواسطة الثابت المخفي MAIN_FORCETHEME +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". # Validate RequireValidValue = القيمة غير صالحة diff --git a/htdocs/langs/ar_SA/eventorganization.lang b/htdocs/langs/ar_SA/eventorganization.lang index 71434cc289f..6ccb9f80b0d 100644 --- a/htdocs/langs/ar_SA/eventorganization.lang +++ b/htdocs/langs/ar_SA/eventorganization.lang @@ -17,151 +17,158 @@ # # Generic # -ModuleEventOrganizationName = Event Organization -EventOrganizationDescription = Event Organization through Module Project -EventOrganizationDescriptionLong= Manage the organization of an event (show, conferences, attendees or speakers, with public pages for suggestion, vote or registration) +ModuleEventOrganizationName = تنظيم الأحداث +EventOrganizationDescription = تنظيم الحدث من خلال مشروع الوحدة النمطية +EventOrganizationDescriptionLong= إدارة تنظيم حدث (عرض أو مؤتمرات أو حضور أو متحدثين ، مع صفحات عامة للاقتراح أو التصويت أو التسجيل) # # Menu # -EventOrganizationMenuLeft = Organized events -EventOrganizationConferenceOrBoothMenuLeft = Conference Or Booth +EventOrganizationMenuLeft = الأحداث المنظمة +EventOrganizationConferenceOrBoothMenuLeft = مؤتمر أو كشك -PaymentEvent=Payment of event +PaymentEvent=دفع الحدث # # Admin page # -NewRegistration=Registration -EventOrganizationSetup=Event Organization setup -EventOrganization=Event organization +NewRegistration=تسجيل +EventOrganizationSetup=إعداد تنظيم الحدث +EventOrganization=تنظيم الأحداث Settings=إعدادات -EventOrganizationSetupPage = Event Organization setup page -EVENTORGANIZATION_TASK_LABEL = Label of tasks to create automatically when project is validated -EVENTORGANIZATION_TASK_LABELTooltip = When you validate an organized event, some tasks can be automatically created in the project

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

على سبيل المثال:
Send Call for Conferences
Send Call for Booths
19
أرسل تذكيرًا بالحدث إلى المتحدثين
أرسل تذكيرًا بالحدث إلى Booth hosters
أرسل تذكيرًا بالحدث إلى الحضور +EVENTORGANIZATION_TASK_LABELTooltip2=اتركه فارغًا إذا لم تكن بحاجة إلى إنشاء المهام تلقائيًا. +EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = فئة لإضافتها إلى جهات خارجية يتم إنشاؤها تلقائيًا عندما يقترح شخص ما مؤتمرًا +EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = فئة للإضافة إلى جهات خارجية يتم إنشاؤها تلقائيًا عندما يقترحون كشكًا +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = نموذج بريد إلكتروني لإرساله بعد تلقي اقتراح من مؤتمر. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = نموذج البريد الإلكتروني لإرساله بعد تلقي اقتراح كشك. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = نموذج البريد الإلكتروني لإرساله بعد دفع التسجيل في كشك. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = نموذج بريد إلكتروني لإرساله بعد دفع رسوم التسجيل لحدث ما. +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = نموذج بريد إلكتروني لاستخدامه عند إرسال رسائل بريد إلكتروني من "إرسال رسائل بريد إلكتروني" إلى المتحدثين +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = نموذج بريد إلكتروني لاستخدامه عند إرسال رسائل بريد إلكتروني من رسالة "إرسال رسائل بريد إلكتروني" في قائمة الحضور +EVENTORGANIZATION_FILTERATTENDEES_CAT = في نموذج إنشاء / إضافة أحد الحاضرين ، يقصر قائمة الأطراف الثالثة على الأطراف الثالثة في الفئة +EVENTORGANIZATION_FILTERATTENDEES_TYPE = في نموذج إنشاء / إضافة أحد الحاضرين ، يقصر قائمة الأطراف الثالثة على الأطراف الثالثة ذات الطبيعة # # Object # -EventOrganizationConfOrBooth= Conference Or Booth -ManageOrganizeEvent = Manage the organization of an event -ConferenceOrBooth = Conference Or Booth -ConferenceOrBoothTab = Conference Or Booth -AmountPaid = Amount paid -DateOfRegistration = Date of registration -ConferenceOrBoothAttendee = Conference Or Booth Attendee +EventOrganizationConfOrBooth= مؤتمر أو كشك +EventOrganizationConfOrBoothes=Conferences or Boothes +ManageOrganizeEvent = إدارة تنظيم الحدث +ConferenceOrBooth = مؤتمر أو كشك +ConferenceOrBoothTab = مؤتمر أو كشك +AmountPaid = المبلغ المدفوع +DateOfRegistration = تاريخ التسجيل +ConferenceOrBoothAttendee = حضور المؤتمر أو الكابينة +ApplicantOrVisitor=مقدم الطلب أو الزائر +Speaker=مكبر الصوت # # Template Mail # -YourOrganizationEventConfRequestWasReceived = Your request for conference was received -YourOrganizationEventBoothRequestWasReceived = Your request for booth was received -EventOrganizationEmailAskConf = Request for conference -EventOrganizationEmailAskBooth = Request for booth -EventOrganizationEmailBoothPayment = Payment of your booth -EventOrganizationEmailRegistrationPayment = Registration for an event -EventOrganizationMassEmailAttendees = Communication to attendees -EventOrganizationMassEmailSpeakers = Communication to speakers -ToSpeakers=To speakers +YourOrganizationEventConfRequestWasReceived = تم استلام طلبك لعقد المؤتمر +YourOrganizationEventBoothRequestWasReceived = تم استلام طلبك للكشك +EventOrganizationEmailAskConf = طلب مؤتمر +EventOrganizationEmailAskBooth = طلب كشك +EventOrganizationEmailBoothPayment = دفع الكشك الخاص بك +EventOrganizationEmailRegistrationPayment = التسجيل لحدث +EventOrganizationMassEmailAttendees = التواصل مع الحاضرين +EventOrganizationMassEmailSpeakers = التواصل مع المتحدثين +ToSpeakers=إلى مكبرات الصوت # # Event # -AllowUnknownPeopleSuggestConf=Allow people to suggest conferences -AllowUnknownPeopleSuggestConfHelp=Allow unknown people to suggest a conference they want to do -AllowUnknownPeopleSuggestBooth=Allow people to apply for a booth -AllowUnknownPeopleSuggestBoothHelp=Allow unknown people to apply for a booth -PriceOfRegistration=Price of registration -PriceOfRegistrationHelp=Price to pay to register or participate in the event -PriceOfBooth=Subscription price to stand a booth -PriceOfBoothHelp=Subscription price to stand a booth -EventOrganizationICSLink=Link ICS for conferences -ConferenceOrBoothInformation=Conference Or Booth informations -Attendees=Attendees -ListOfAttendeesOfEvent=List of attendees of the event project -DownloadICSLink = Download ICS link -EVENTORGANIZATION_SECUREKEY = Seed to secure the key for the public registration page to suggest a conference -SERVICE_BOOTH_LOCATION = Service used for the invoice row about a booth location -SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to an event -NbVotes=Number of votes +AllowUnknownPeopleSuggestConf=السماح للناس باقتراح المؤتمرات +AllowUnknownPeopleSuggestConfHelp=اسمح لأشخاص غير معروفين باقتراح مؤتمر يريدون القيام به +AllowUnknownPeopleSuggestBooth=اسمح للناس بالتقدم بطلب للحصول على كشك +AllowUnknownPeopleSuggestBoothHelp=السماح للأشخاص المجهولين بالتقدم بطلب للحصول على كشك +PriceOfRegistration=سعر التسجيل +PriceOfRegistrationHelp=السعر الواجب دفعه للتسجيل أو المشاركة في الحدث +PriceOfBooth=سعر الاشتراك لوقوف كشك +PriceOfBoothHelp=سعر الاشتراك لوقوف كشك +EventOrganizationICSLink=رابط ICS للمؤتمرات +ConferenceOrBoothInformation=معلومات المؤتمر أو الكابينة +Attendees=الحاضرين +ListOfAttendeesOfEvent=قائمة الحاضرين لمشروع الحدث +DownloadICSLink = رابط تحميل ICS +EVENTORGANIZATION_SECUREKEY = أنشئ لتأمين المفتاح لصفحة التسجيل العامة لاقتراح مؤتمر +SERVICE_BOOTH_LOCATION = الخدمة المستخدمة لصف الفاتورة حول موقع الكشك +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = الخدمة المستخدمة لصف الفاتورة حول اشتراك حاضر في حدث +NbVotes=عدد الأصوات # # Status # EvntOrgDraft = حوالة مصرفية -EvntOrgSuggested = Suggested -EvntOrgConfirmed = Confirmed -EvntOrgNotQualified = Not Qualified +EvntOrgSuggested = مقترح +EvntOrgConfirmed = مؤكد +EvntOrgNotQualified = غير مؤهل EvntOrgDone = منتهي -EvntOrgCancelled = Cancelled +EvntOrgCancelled = ألغيت # # Public page # -SuggestForm = Suggestion page -SuggestOrVoteForConfOrBooth = Page for suggestion or vote -EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest a new one for the event. You can also apply to have a booth during the event. -EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. -EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. -ListOfSuggestedConferences = List of suggested conferences -ListOfSuggestedBooths = List of suggested booths -ListOfConferencesOrBooths=List of conferences or booths of event project -SuggestConference = Suggest a new conference -SuggestBooth = Suggest a booth -ViewAndVote = View and vote for suggested events -PublicAttendeeSubscriptionGlobalPage = Public link for registration to the event -PublicAttendeeSubscriptionPage = Public link for registration to this event only -MissingOrBadSecureKey = The security key is invalid or missing -EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event : %s -EvntOrgDuration = This conference starts on %s and ends on %s. -ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s. -BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s +SuggestForm = صفحة الاقتراح +SuggestOrVoteForConfOrBooth = صفحة للاقتراح أو التصويت +EvntOrgRegistrationHelpMessage = هنا ، يمكنك التصويت لعقد مؤتمر أو اقتراح مؤتمر جديد لهذا الحدث. يمكنك أيضًا تقديم طلب للحصول على كشك أثناء الحدث. +EvntOrgRegistrationConfHelpMessage = هنا ، يمكنك اقتراح مؤتمر جديد لتحريكه أثناء الحدث. +EvntOrgRegistrationBoothHelpMessage = هنا ، يمكنك تقديم طلب للحصول على كشك أثناء الحدث. +ListOfSuggestedConferences = قائمة المؤتمرات المقترحة +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project +SuggestConference = اقترح مؤتمر جديد +SuggestBooth = أقترح كشك +ViewAndVote = عرض والتصويت للأحداث المقترحة +PublicAttendeeSubscriptionGlobalPage = رابط عام للتسجيل في الحدث +PublicAttendeeSubscriptionPage = رابط عام للتسجيل في هذا الحدث فقط +MissingOrBadSecureKey = مفتاح الأمان غير صالح أو مفقود +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event +EvntOrgDuration = يبدأ هذا المؤتمر في %s وينتهي في %s. +ConferenceAttendeeFee = رسوم حضور المؤتمر للحدث: "%s" يحدث من %s إلى %s. +BoothLocationFee = موقع كشك الحدث: "%s" يحدث من %s إلى %s EventType = نوع الحدث -LabelOfBooth=Booth label -LabelOfconference=Conference label -ConferenceIsNotConfirmed=Registration not available, conference is not confirmed yet -DateMustBeBeforeThan=%s must be before %s -DateMustBeAfterThan=%s must be after %s +LabelOfBooth=تسمية كشك +LabelOfconference=تسمية المؤتمر +ConferenceIsNotConfirmed=التسجيل غير متاح ، لم يتم تأكيد المؤتمر بعد +DateMustBeBeforeThan=يجب أن يكون %s قبل %s +DateMustBeAfterThan=يجب أن يكون %s بعد %s +MaxNbOfAttendeesReached=The maximum number of participants has been reached +NewSubscription=تسجيل +OrganizationEventConfRequestWasReceived=تم استلام اقتراحك الخاص بالمؤتمر +OrganizationEventBoothRequestWasReceived=تم استلام طلبك الخاص بكشك +OrganizationEventPaymentOfBoothWasReceived=تم تسجيل الدفع الخاص بك لكشك +OrganizationEventPaymentOfRegistrationWasReceived=تم تسجيل الدفع الخاص بك لتسجيل الحدث الخاص بك +OrganizationEventBulkMailToAttendees=هذا تذكير بمشاركتك في الحدث بصفتك حاضرًا +OrganizationEventBulkMailToSpeakers=هذا تذكير بمشاركتك في الحدث كمتحدث +OrganizationEventLinkToThirdParty=رابط لطرف ثالث (عميل أو مورد أو شريك) +OrganizationEvenLabelName=الاسم العام للمؤتمر أو الكابينة -NewSubscription=Registration -OrganizationEventConfRequestWasReceived=Your suggestion for a conference has been received -OrganizationEventBoothRequestWasReceived=Your request for a booth has been received -OrganizationEventPaymentOfBoothWasReceived=Your payment for your booth has been recorded -OrganizationEventPaymentOfRegistrationWasReceived=Your payment for your event registration has been recorded -OrganizationEventBulkMailToAttendees=This is a remind about your participation in the event as an attendee -OrganizationEventBulkMailToSpeakers=This is a reminder on your participation in the event as a speaker -OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) - -NewSuggestionOfBooth=Application for a booth -NewSuggestionOfConference=Application for a conference +NewSuggestionOfBooth=طلب كشك +NewSuggestionOfConference=طلب لعقد مؤتمر # # Vote page # -EvntOrgRegistrationWelcomeMessage = Welcome on the conference or booth suggestion page. -EvntOrgRegistrationConfWelcomeMessage = Welcome on the conference suggestion page. -EvntOrgRegistrationBoothWelcomeMessage = Welcome on the booth suggestion page. -EvntOrgVoteHelpMessage = Here, you can view and vote for the suggested events for the project -VoteOk = Your vote has been accepted. -AlreadyVoted = You have already voted for this event. -VoteError = An error has occurred during the vote, please try again. +EvntOrgRegistrationWelcomeMessage = مرحبًا بكم في صفحة اقتراح المؤتمر أو الكابينة. +EvntOrgRegistrationConfWelcomeMessage = مرحبا بكم في صفحة اقتراح المؤتمر. +EvntOrgRegistrationBoothWelcomeMessage = مرحبا بكم في صفحة اقتراح الكابينة. +EvntOrgVoteHelpMessage = هنا ، يمكنك عرض الأحداث المقترحة للمشروع والتصويت عليها +VoteOk = تم قبول تصويتك. +AlreadyVoted = لقد قمت بالتصويت بالفعل لهذا الحدث. +VoteError = حدث خطأ أثناء التصويت ، يرجى المحاولة مرة أخرى. -SubscriptionOk = Your registration has been validated -ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event -Attendee = Attendee -PaymentConferenceAttendee = Conference attendee payment -PaymentBoothLocation = Booth location payment -DeleteConferenceOrBoothAttendee=Remove attendee -RegistrationAndPaymentWereAlreadyRecorder=A registration and a payment were already recorded for the email %s -EmailAttendee=Attendee email -EmailCompanyForInvoice=Company email (for invoice, if different of attendee email) -ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -ErrorSeveralCompaniesWithNameContactUs=Several companies with this name has been found so we can't validate automaticaly your registration. Please contact us at %s for a manual validation -NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +SubscriptionOk=Your registration has been recorded +ConfAttendeeSubscriptionConfirmation = تأكيد اشتراكك في حدث +Attendee = حاضر +PaymentConferenceAttendee = دفع حضور المؤتمر +PaymentBoothLocation = دفع موقع كشك +DeleteConferenceOrBoothAttendee=قم بإزالة الحاضر +RegistrationAndPaymentWereAlreadyRecorder=تم تسجيل تسجيل ودفع بالفعل للبريد الإلكتروني %s +EmailAttendee=البريد الإلكتروني للحضور +EmailCompany=Company email +EmailCompanyForInvoice=البريد الإلكتروني للشركة (للفاتورة ، إذا كان مختلفًا عن البريد الإلكتروني للحضور) +ErrorSeveralCompaniesWithEmailContactUs=تم العثور على العديد من الشركات باستخدام هذا البريد الإلكتروني ، لذا لا يمكننا التحقق من صحة تسجيلك تلقائيًا. يرجى الاتصال بنا على %s للتحقق اليدوي +ErrorSeveralCompaniesWithNameContactUs=تم العثور على العديد من الشركات بهذا الاسم لذا لا يمكننا التحقق من صحة تسجيلك تلقائيًا. يرجى الاتصال بنا على %s للتحقق اليدوي +NoPublicActionsAllowedForThisEvent=لا توجد إجراءات عامة مفتوحة للجمهور لهذا الحدث +MaxNbOfAttendees=أقصى عدد من الحاضرين diff --git a/htdocs/langs/ar_SA/exports.lang b/htdocs/langs/ar_SA/exports.lang index 13bb0749ec4..2e5a37faed1 100644 --- a/htdocs/langs/ar_SA/exports.lang +++ b/htdocs/langs/ar_SA/exports.lang @@ -1,62 +1,64 @@ # Dolibarr language file - Source file is en_US - exports ExportsArea=صادرات -ImportArea=Import -NewExport=New Export -NewImport=New Import +ImportArea=يستورد +NewExport=تصدير جديد +NewImport=استيراد جديد ExportableDatas=تصدير البيانات ImportableDatas=بيانات وارداتها SelectExportDataSet=اختر البيانات التي تريد تصديرها... SelectImportDataSet=اختر البيانات التي تريد الاستيراد... -SelectExportFields=Choose the fields you want to export, or select a predefined export profile -SelectImportFields=Choose the source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile: +SelectExportFields=اختر الحقول التي تريد تصديرها ، أو حدد ملف تعريف تصدير معرف مسبقًا +SelectImportFields=اختر حقول الملف المصدر التي تريد استيرادها والحقل الهدف الخاص بها في قاعدة البيانات عن طريق تحريكها لأعلى ولأسفل باستخدام نقطة الارتساء %s ، أو حدد ملف تعريف استيراد محدد مسبقًا: NotImportedFields=حقول من الملف المصدر يتم استيراد -SaveExportModel=Save your selections as an export profile/template (for reuse). -SaveImportModel=Save this import profile (for reuse) ... +SaveExportModel=احفظ التحديدات الخاصة بك كملف تعريف / قالب تصدير (لإعادة الاستخدام). +SaveImportModel=احفظ ملف تعريف الاستيراد هذا (لإعادة استخدامه) ... ExportModelName=اسم تصدير صورة -ExportModelSaved=Export profile saved as %s. +ExportModelSaved=تم حفظ ملف تعريف التصدير كـ %s . ExportableFields=مجالات للتصدير ExportedFields=صدرت المجالات ImportModelName=استيراد صورة الاسم -ImportModelSaved=Import profile saved as %s. +ImportModelSaved=تم حفظ ملف تعريف الاستيراد كـ %s . +ImportProfile=استيراد ملف التعريف DatasetToExport=بيانات التصدير DatasetToImport=استيراد البيانات ChooseFieldsOrdersAndTitle=اختيار الحقول من أجل... FieldsTitle=عنوان الحقول FieldTitle=حقل العنوان -NowClickToGenerateToBuildExportFile=Now, select the file format in the combo box and click on "Generate" to build the export file... -AvailableFormats=Available Formats +NowClickToGenerateToBuildExportFile=الآن ، حدد تنسيق الملف في مربع التحرير والسرد وانقر فوق "إنشاء" لإنشاء ملف التصدير ... +AvailableFormats=التنسيقات المتوفرة LibraryShort=المكتبة -ExportCsvSeparator=Csv caracter separator -ImportCsvSeparator=Csv caracter separator +ExportCsvSeparator=فاصل ناقل الحركة Csv +ImportCsvSeparator=فاصل ناقل الحركة Csv Step=خطوة -FormatedImport=Import Assistant -FormatedImportDesc1=This module allows you to update existing data or add new objects into the database from a file without technical knowledge, using an assistant. -FormatedImportDesc2=First step is to choose the kind of data you want to import, then the format of the source file, then the fields you want to import. -FormatedExport=Export Assistant -FormatedExportDesc1=These tools allow the export of personalized data using an assistant, to help you in the process without requiring technical knowledge. -FormatedExportDesc2=First step is to choose a predefined dataset, then which fields you want to export, and in which order. -FormatedExportDesc3=When data to export are selected, you can choose the format of the output file. +FormatedImport=مساعد استيراد +FormatedImportDesc1=تسمح لك هذه الوحدة بتحديث البيانات الموجودة أو إضافة كائنات جديدة إلى قاعدة البيانات من ملف بدون معرفة فنية ، باستخدام مساعد. +FormatedImportDesc2=الخطوة الأولى هي اختيار نوع البيانات التي تريد استيرادها ، ثم تنسيق الملف المصدر ، ثم الحقول التي تريد استيرادها. +FormatedExport=مساعد تصدير +FormatedExportDesc1=تسمح هذه الأدوات بتصدير البيانات الشخصية باستخدام مساعد ، لمساعدتك في العملية دون الحاجة إلى معرفة فنية. +FormatedExportDesc2=تتمثل الخطوة الأولى في اختيار مجموعة بيانات محددة مسبقًا ، ثم الحقول التي تريد تصديرها ، وبأي ترتيب. +FormatedExportDesc3=عند تحديد البيانات المراد تصديرها ، يمكنك اختيار تنسيق ملف الإخراج. Sheet=ورقة NoImportableData=لا ارداتها البيانات (أي وحدة مع السماح للبيانات تعريفات الواردات) FileSuccessfullyBuilt=File generated -SQLUsedForExport=SQL Request used to extract data +SQLUsedForExport=طلب SQL يستخدم لاستخراج البيانات LineId=معرف السطر LineLabel=تسمية الخط LineDescription=وصف خط LineUnitPrice=سعر الوحدة من خط LineVATRate=ضريبة القيمة المضافة من سعر الخط LineQty=خط للكمية -LineTotalHT=Amount excl. tax for line +LineTotalHT=المبلغ غير شامل. ضريبة للخط LineTotalTTC=المبلغ تمشيا مع ضريبة LineTotalVAT=مبلغ الضريبة على القيمة المضافة لخط TypeOfLineServiceOrProduct=Type of line (0=product, 1=نوع الخط (0= منتج الخدمة= 1) FileWithDataToImport=ملف استيراد البيانات FileToImport=مصدر لاستيراد ملف -FileMustHaveOneOfFollowingFormat=File to import must have one of following formats -DownloadEmptyExample=Download template file with field content information -StarAreMandatory=* are mandatory fields -ChooseFormatOfFileToImport=Choose the file format to use as import file format by clicking on the %s icon to select it... -ChooseFileToImport=Upload file then click on the %s icon to select file as source import file... +FileMustHaveOneOfFollowingFormat=يجب أن يحتوي الملف المراد استيراده على أحد التنسيقات التالية +DownloadEmptyExampleShort=قم بتنزيل ملف عينة +DownloadEmptyExample=قم بتنزيل ملف نموذج يحتوي على أمثلة ومعلومات حول الحقول التي يمكنك استيرادها +StarAreMandatory=في ملف القالب ، جميع الحقول التي تحتوي على * هي حقول إلزامية +ChooseFormatOfFileToImport=اختر تنسيق الملف لاستخدامه كتنسيق ملف الاستيراد بالنقر فوق أيقونة %s لتحديده ... +ChooseFileToImport=قم بتحميل الملف ثم انقر فوق أيقونة %s لتحديد الملف كملف استيراد المصدر ... SourceFileFormat=مصدر تنسيق ملف FieldsInSourceFile=الحقول في ملف المصدر FieldsInTargetDatabase=الحقول المستهدفة في قاعدة بيانات Dolibarr (جريئة = إلزامي) @@ -71,67 +73,75 @@ FieldsTarget=استهداف حقول FieldTarget=استهدف حقل FieldSource=مصدر الحقل NbOfSourceLines=عدد الأسطر في الملف المصدر -NowClickToTestTheImport=Check that the file format (field and string delimiters) of your file matches the options shown and that you have omitted the header line, or these will be flagged as errors in the following simulation.
Click on the "%s" button to run a check of the file structure/contents and simulate the import process.
No data will be changed in your database. -RunSimulateImportFile=Run Import Simulation +NowClickToTestTheImport=تحقق من أن تنسيق الملف (محددات الحقل والسلسلة) لملفك يطابق الخيارات المعروضة وأنك حذفت سطر العنوان ، أو سيتم وضع علامة عليها كأخطاء في المحاكاة التالية.
انقر فوق الزر " %s " لتشغيل فحص بنية / محتويات الملف ومحاكاة عملية الاستيراد.
لن يتم تغيير أي بيانات في قاعدة البيانات الخاصة بك . +RunSimulateImportFile=قم بتشغيل محاكاة الاستيراد FieldNeedSource=يتطلب هذا المجال البيانات من الملف المصدر SomeMandatoryFieldHaveNoSource=بعض الحقول إلزامية ليس لديها مصدر من ملف البيانات InformationOnSourceFile=معلومات عن الملف المصدر InformationOnTargetTables=معلومات عن الهدف الحقول SelectAtLeastOneField=التبديل حقل واحد على الأقل مصدر في عمود من الحقول لتصدير SelectFormat=اختيار تنسيق الملف هذا الاستيراد -RunImportFile=Import Data -NowClickToRunTheImport=Check the results of the import simulation. Correct any errors and re-test.
When the simulation reports no errors you may proceed to import the data into the database. -DataLoadedWithId=The imported data will have an additional field in each database table with this import id: %s, to allow it to be searchable in the case of investigating a problem related to this import. -ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. -TooMuchErrors=There are still %s other source lines with errors but output has been limited. -TooMuchWarnings=There are still %s other source lines with warnings but output has been limited. +RunImportFile=بيانات الاستيراد +NowClickToRunTheImport=تحقق من نتائج محاكاة الاستيراد. صحح أي أخطاء وأعد الاختبار.
عندما تبلغ المحاكاة عن عدم وجود أخطاء ، يمكنك المتابعة لاستيراد البيانات إلى قاعدة البيانات. +DataLoadedWithId=ستحتوي البيانات المستوردة على حقل إضافي في كل جدول قاعدة بيانات مع معرف الاستيراد هذا: %s ، للسماح لها بأن تكون قابلة للبحث في حالة التحقيق في مشكلة متعلقة بهذا الاستيراد. +ErrorMissingMandatoryValue=البيانات الإلزامية فارغة في الملف المصدر بالعمود %s . +TooMuchErrors=لا تزال هناك خطوط مصدر أخرى %s بها أخطاء ولكن الإخراج كان محدودًا. +TooMuchWarnings=لا تزال هناك خطوط مصدر أخرى %s مع تحذيرات ولكن الإخراج كان محدودًا. EmptyLine=سيتم تجاهل سطر فارغ () -CorrectErrorBeforeRunningImport=You must correct all errors before running the definitive import. +CorrectErrorBeforeRunningImport=يجب عليك تصحيح كافة الأخطاء قبل تشغيل تشغيل الاستيراد النهائي. FileWasImported=تم استيراد ملف مع %s عدد. -YouCanUseImportIdToFindRecord=You can find all the imported records in your database by filtering on field import_key='%s'. +YouCanUseImportIdToFindRecord=يمكنك العثور على جميع السجلات المستوردة في قاعدة البيانات الخاصة بك عن طريق التصفية في الحقل import_key = '%s' . NbOfLinesOK=عدد الأسطر مع عدم وجود أخطاء وتحذيرات لا : %s. NbOfLinesImported=عدد خطوط المستوردة بنجاح : %s. DataComeFromNoWhere=قيمة لادخال تأتي من أي مكان في الملف المصدر. -DataComeFromFileFieldNb=قيمة لادخال يأتي من %s عدد الحقول في الملف المصدر. -DataComeFromIdFoundFromRef=Value that comes from field number %s of source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). -DataComeFromIdFoundFromCodeId=Code that comes from field number %s of source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. +DataComeFromFileFieldNb=تأتي القيمة المراد إدراجها من العمود %s في الملف المصدر. +DataComeFromIdFoundFromRef=The value that comes from the source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). +DataComeFromIdFoundFromCodeId=The value of code that comes from source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. DataIsInsertedInto=البيانات سوف تأتي من الملف المصدر يتم إدراجها في الحقل التالي : -DataIDSourceIsInsertedInto=The id of the parent object, that was found using the data in the source file, will be inserted into the following field: -DataCodeIDSourceIsInsertedInto=The id of the parent line, that was found from code, will be inserted into the following field: +DataIDSourceIsInsertedInto=سيتم إدخال معرف الكائن الأصل ، الذي تم العثور عليه باستخدام البيانات الموجودة في الملف المصدر ، في الحقل التالي: +DataCodeIDSourceIsInsertedInto=سيتم إدخال معرف السطر الأصل ، الذي تم العثور عليه من التعليمات البرمجية ، في الحقل التالي: SourceRequired=بيانات قيمة إلزامية SourceExample=مثال على قيمة البيانات ممكن ExampleAnyRefFoundIntoElement=أي المرجع تم العثور عليها ل %s العنصر ExampleAnyCodeOrIdFoundIntoDictionary=أي رمز (أو قيمة id) وجدت في القاموس٪ الصورة -CSVFormatDesc=Comma Separated Value file format (.csv).
This is a text file format where fields are separated by a separator [ %s ]. If separator is found inside a field content, field is rounded by round character [ %s ]. Escape character to escape round character is [ %s ]. -Excel95FormatDesc=Excel file format (.xls)
This is the native Excel 95 format (BIFF5). -Excel2007FormatDesc=Excel file format (.xlsx)
This is the native Excel 2007 format (SpreadsheetML). +CSVFormatDesc= قيمة مفصولة بفاصلة تنسيق الملف (.csv).
هذا تنسيق ملف نصي حيث يتم فصل الحقول بواسطة فاصل [%s]. إذا تم العثور على فاصل داخل محتوى الحقل ، يتم تقريب الحقل بواسطة حرف دائري [%s]. شخصية الهروب للهروب من الحرف المستدير هي [%s]. +Excel95FormatDesc= تنسيق ملف Excel (.xls)
هذا هو تنسيق Excel 95 الأصلي (BIFF5). +Excel2007FormatDesc= تنسيق ملف Excel (.xlsx)
هذا هو تنسيق Excel 2007 الأصلي (SpreadsheetML). TsvFormatDesc=علامة التبويب تنسيق ملف منفصل القيمة (و .tsv)
هذا هو شكل ملف نصي حيث يتم فصل الحقول من قبل الجدوال [التبويب]. ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). -CsvOptions=CSV format options -Separator=Field Separator -Enclosure=String Delimiter +CsvOptions=خيارات تنسيق CSV +Separator=فاصل المجال +Enclosure=محدد السلسلة SpecialCode=رمز خاص ExportStringFilter=٪٪ يسمح استبدال حرف واحد أو أكثر في النص -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD: filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD: filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD: filters on all previous years/months/days +ExportDateFilter=YYYY، YYYYMM، YYYYMMDD: المرشحات على مدى سنة / شهر / يوم
YYYY + YYYY، YYYYMM + YYYYMM، YYYYMMDD + YYYYMMDD: المرشحات على مدى سنوات / شهور / أيام a0342MMfccfY19 السنوات / الأشهر / الأيام التالية
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number -ImportFromToLine=Limit range (From - To). Eg. to omit header line(s). -SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines.
If the header lines are NOT omitted, this will result in multiple errors in the Import Simulation. -KeepEmptyToGoToEndOfFile=Keep this field empty to process all lines to the end of the file. -SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for an UPDATE import -UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) -NoUpdateAttempt=No update attempt was performed, only insert -ImportDataset_user_1=Users (employees or not) and properties -ComputedField=Computed field +ImportFromToLine=نطاق الحد (من - إلى). على سبيل المثال. لحذف سطر (خطوط) الرأس. +SetThisValueTo2ToExcludeFirstLine=على سبيل المثال ، اضبط هذه القيمة على 3 لاستبعاد أول سطرين.
إذا لم يتم حذف سطور الرأس ، فسيؤدي ذلك إلى العديد من الأخطاء في محاكاة الاستيراد. +KeepEmptyToGoToEndOfFile=اترك هذا الحقل فارغًا لمعالجة جميع الأسطر حتى نهاية الملف. +SelectPrimaryColumnsForUpdateAttempt=حدد العمود (الأعمدة) لاستخدامه كمفتاح أساسي لاستيراد UPDATE +UpdateNotYetSupportedForThisImport=التحديث غير مدعوم لهذا النوع من الاستيراد (إدراج فقط) +NoUpdateAttempt=لم يتم إجراء أي محاولة تحديث ، أدخل فقط +ImportDataset_user_1=المستخدمون (موظفون أم لا) والممتلكات +ComputedField=المجال المحسوب ## filters SelectFilterFields=إذا كنت ترغب في تصفية على بعض القيم، قيم الإدخال فقط هنا. FilteredFields=الحقول التي تمت تصفيتها FilteredFieldsValues=قيمة للمرشح FormatControlRule=حكم عنصر تنسيق ## imports updates -KeysToUseForUpdates=Key (column) to use for updating existing data +KeysToUseForUpdates=مفتاح (عمود) لاستخدامه مع لتحديث البيانات الموجودة NbInsert=Number of inserted lines: %s +NbInsertSim=Number of lines that will be inserted: %s NbUpdate=Number of updated lines: %s +NbUpdateSim=Number of lines that will be updated : %s MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s -StocksWithBatch=Stocks and location (warehouse) of products with batch/serial number +StocksWithBatch=مخزون وموقع (مستودع) المنتجات مع رقم الدُفعة / التسلسل +WarningFirstImportedLine=لن يتم استيراد السطر (الأسطر) الأول مع التحديد الحالي +NotUsedFields=مجالات قاعدة البيانات غير مستخدمة +SelectImportFieldsSource = اختر حقول الملف المصدر التي تريد استيرادها والحقل الهدف الخاص بها في قاعدة البيانات عن طريق اختيار الحقول في كل مربعات تحديد ، أو حدد ملف تعريف استيراد محدد مسبقًا: +MandatoryTargetFieldsNotMapped=لم يتم تعيين بعض الحقول الهدف الإلزامية +AllTargetMandatoryFieldsAreMapped=يتم تعيين كافة الحقول المستهدفة التي تحتاج إلى قيمة إلزامية +ResultOfSimulationNoError=نتيجة المحاكاة: لا خطأ diff --git a/htdocs/langs/ar_SA/help.lang b/htdocs/langs/ar_SA/help.lang index f7cf58faef5..69d52121094 100644 --- a/htdocs/langs/ar_SA/help.lang +++ b/htdocs/langs/ar_SA/help.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - help CommunitySupport=منتدى / ويكي الدعم EMailSupport=دعم رسائل البريد الإلكتروني -RemoteControlSupport=Online real-time / remote support +RemoteControlSupport=الدعم عبر الإنترنت في الوقت الفعلي / عن بُعد OtherSupport=دعم آخر ToSeeListOfAvailableRessources=للاتصال / الاطلاع على الموارد المتاحة: -HelpCenter=Help Center -DolibarrHelpCenter=Dolibarr Help and Support Center -ToGoBackToDolibarr=Otherwise, click here to continue to use Dolibarr. -TypeOfSupport=Type of support +HelpCenter=مركز المساعدة +DolibarrHelpCenter=مركز المساعدة والدعم Dolibarr +ToGoBackToDolibarr=خلاف ذلك ، انقر هنا لمواصلة استخدام Dolibarr . +TypeOfSupport=نوع الدعم TypeSupportCommunauty=المجتمع (مجاني) TypeSupportCommercial=تجاري TypeOfHelp=نوع @@ -15,9 +15,9 @@ NeedHelpCenter=هل تحتاج إلى مساعدة أو دعم؟ Efficiency=الكفاءة TypeHelpOnly=المساعدة فقط TypeHelpDev=مساعدة + التنمية -TypeHelpDevForm=Help+Development+Training -BackToHelpCenter=Otherwise, go back to Help center home page. +TypeHelpDevForm=مساعدة + تطوير + تدريب +BackToHelpCenter=خلاف ذلك ، ارجع إلى الصفحة الرئيسية لمركز المساعدة . LinkToGoldMember=يمكنك اختيار احد المدربين المختارين مسبقا بواسطة دوليبار من اجل لغتك (1%s) بالضغط على البريمج الخاص بهم (يتم تحديث الحالة والحد الاعلى للسعر تلقائياً) PossibleLanguages=اللغات المدعومة -SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation -SeeOfficalSupport=للحصول على دعم رسمي من دوليبار بلغتك:
%s +SubscribeToFoundation=ساعد مشروع Dolibarr ، اشترك في المؤسسة +SeeOfficalSupport=للحصول على دعم Dolibarr الرسمي بلغتك:
%s diff --git a/htdocs/langs/ar_SA/interventions.lang b/htdocs/langs/ar_SA/interventions.lang index 2412062f9e9..a48f49f1125 100644 --- a/htdocs/langs/ar_SA/interventions.lang +++ b/htdocs/langs/ar_SA/interventions.lang @@ -4,10 +4,10 @@ Interventions=المداخلات InterventionCard=تدخل البطاقة NewIntervention=التدخل الجديدة AddIntervention=إنشاء التدخل -ChangeIntoRepeatableIntervention=Change to repeatable intervention +ChangeIntoRepeatableIntervention=التغيير إلى التدخل المتكرر ListOfInterventions=قائمة التدخلات ActionsOnFicheInter=إجراءات على التدخل -LastInterventions=Latest %s interventions +LastInterventions=أحدث تدخلات %s AllInterventions=كل التدخلات CreateDraftIntervention=إنشاء مشروع InterventionContact=التدخل الاتصال @@ -15,54 +15,58 @@ DeleteIntervention=حذف التدخل ValidateIntervention=تحقق من التدخل ModifyIntervention=تعديل التدخل DeleteInterventionLine=حذف السطر التدخل -ConfirmDeleteIntervention=Are you sure you want to delete this intervention? -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name %s? -ConfirmModifyIntervention=Are you sure you want to modify this intervention? -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line? -ConfirmCloneIntervention=Are you sure you want to clone this intervention? -NameAndSignatureOfInternalContact=Name and signature of intervening: -NameAndSignatureOfExternalContact=Name and signature of customer: +ConfirmDeleteIntervention=هل أنت متأكد أنك تريد حذف هذا التدخل؟ +ConfirmValidateIntervention=هل أنت متأكد من أنك تريد التحقق من صحة هذا التدخل تحت الاسم %s ؟ +ConfirmModifyIntervention=هل أنت متأكد أنك تريد تعديل هذا التدخل؟ +ConfirmDeleteInterventionLine=هل أنت متأكد أنك تريد حذف سطر التدخل هذا؟ +ConfirmCloneIntervention=هل أنت متأكد أنك تريد استنساخ هذا التدخل؟ +NameAndSignatureOfInternalContact=اسم المتدخل وتوقيعه: +NameAndSignatureOfExternalContact=اسم وتوقيع العميل: DocumentModelStandard=نموذج وثيقة موحدة للتدخلات InterventionCardsAndInterventionLines=التدخلات وخطوط التدخلات InterventionClassifyBilled=تصنيف "المفوتر" InterventionClassifyUnBilled=تصنيف "فواتير" -InterventionClassifyDone=Classify "Done" +InterventionClassifyDone=تصنيف "تم" StatusInterInvoiced=فواتير SendInterventionRef=تقديم التدخل٪ الصورة -SendInterventionByMail=Send intervention by email +SendInterventionByMail=أرسل المداخلة عبر البريد الإلكتروني InterventionCreatedInDolibarr=التدخل٪ الصورة خلقت InterventionValidatedInDolibarr=التدخل%s التأكد من صلاحيتها InterventionModifiedInDolibarr=التدخل٪ الصورة المعدلة InterventionClassifiedBilledInDolibarr=التدخل٪ الصورة كما وصفت مجموعة InterventionClassifiedUnbilledInDolibarr=التدخل٪ الصورة مجموعة كما فواتير -InterventionSentByEMail=Intervention %s sent by email +InterventionSentByEMail=تم إرسال التدخل %s عبر البريد الإلكتروني InterventionDeletedInDolibarr=التدخل٪ الصورة حذفها InterventionsArea=منطقة التدخلات DraftFichinter=مشروع التدخلات LastModifiedInterventions=Latest %s modified interventions -FichinterToProcess=Interventions to process +FichinterToProcess=التدخلات للعملية TypeContact_fichinter_external_CUSTOMER=متابعة العملاء الاتصال -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card +PrintProductsOnFichinter=اطبع أيضًا سطورًا من نوع "المنتج" (وليس الخدمات فقط) على بطاقة التدخل PrintProductsOnFichinterDetails=التدخلات المتولدة من أوامر -UseServicesDurationOnFichinter=Use services duration for interventions generated from orders -UseDurationOnFichinter=Hides the duration field for intervention records -UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records -InterventionStatistics=Statistics of interventions -NbOfinterventions=No. of intervention cards -NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation) -AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them. +UseServicesDurationOnFichinter=استخدام مدة الخدمات للتدخلات الناتجة عن الأوامر +UseDurationOnFichinter=يخفي حقل المدة لسجلات التدخل +UseDateWithoutHourOnFichinter=يخفي الساعات والدقائق خارج حقل التاريخ لسجلات التدخل +InterventionStatistics=إحصائيات التدخلات +NbOfinterventions=عدد بطاقات التدخل +NumberOfInterventionsByMonth=عدد بطاقات التدخل بالشهر (تاريخ المصادقة) +AmountOfInteventionNotIncludedByDefault=لا يتم تضمين مقدار التدخل بشكل افتراضي في الربح (في معظم الحالات ، يتم استخدام الجداول الزمنية لحساب الوقت المنقضي). أضف الخيار PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT إلى 1 في المنزل-الإعداد الآخر لتضمينها. InterId=تدخل معرف InterRef=تدخل المرجع. InterDateCreation=تدخل تاريخ الإنشاء InterDuration=تدخل مدة InterStatus=التدخل الوضع InterNote=ملاحظة التدخل -InterLine=Line of intervention +InterLine=خط التدخل InterLineId=تدخل معرف الخط InterLineDate=تدخل تاريخ الخط InterLineDuration=تدخل مدة خط InterLineDesc=خط وصف التدخل -RepeatableIntervention=Template of intervention -ToCreateAPredefinedIntervention=To create a predefined or recurring intervention, create a common intervention and convert it into intervention template -ConfirmReopenIntervention=Are you sure you want to open back the intervention %s? -GenerateInter=Generate intervention +RepeatableIntervention=نموذج التدخل +ToCreateAPredefinedIntervention=لإنشاء تدخل محدد مسبقًا أو متكرر ، قم بإنشاء تدخل مشترك وقم بتحويله إلى قالب تدخل +ConfirmReopenIntervention=هل أنت متأكد أنك تريد فتح تدخل %s ؟ +GenerateInter=توليد التدخل +FichinterNoContractLinked=تم إنشاء التدخل %s بدون عقد مرتبط. +ErrorFicheinterCompanyDoesNotExist=الشركة غير موجودة. لم يتم إنشاء التدخل. +NextDateToIntervention=Date for next intervention generation +NoIntervention=No intervention diff --git a/htdocs/langs/ar_SA/intracommreport.lang b/htdocs/langs/ar_SA/intracommreport.lang index a95f6d10e9e..01d5beaad7b 100644 --- a/htdocs/langs/ar_SA/intracommreport.lang +++ b/htdocs/langs/ar_SA/intracommreport.lang @@ -1,40 +1,40 @@ -Module68000Name = Intracomm report -Module68000Desc = Intracomm report management (Support for French DEB/DES format) -IntracommReportSetup = Intracommreport module setup -IntracommReportAbout = About intracommreport +Module68000Name = تقرير إنتراكوم +Module68000Desc = إدارة تقارير Intracomm (دعم تنسيق DEB / DES الفرنسي) +IntracommReportSetup = إعداد وحدة Intracommreport +IntracommReportAbout = حول التقرير الداخلي # Setup INTRACOMMREPORT_NUM_AGREMENT=Numéro d'agrément (délivré par le CISD de rattachement) -INTRACOMMREPORT_TYPE_ACTEUR=Type d'acteur +INTRACOMMREPORT_TYPE_ACTEUR=النوع الفاعل INTRACOMMREPORT_ROLE_ACTEUR=Rôle joué par l'acteur -INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les introductions +INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les مقدمات INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION=Niveau d'obligation sur les expéditions INTRACOMMREPORT_CATEG_FRAISDEPORT=Catégorie de services de type "Frais de port" INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant # Menu -MenuIntracommReport=Intracomm report -MenuIntracommReportNew=New declaration +MenuIntracommReport=تقرير إنتراكوم +MenuIntracommReportNew=إعلان جديد MenuIntracommReportList=قائمة # View -NewDeclaration=New declaration -Declaration=Declaration -AnalysisPeriod=Analysis period -TypeOfDeclaration=Type of declaration -DEB=Goods exchange declaration (DEB) -DES=Services exchange declaration (DES) +NewDeclaration=إعلان جديد +Declaration=إعلان +AnalysisPeriod=فترة التحليل +TypeOfDeclaration=نوع التصريح +DEB=إقرار تبادل البضائع (DEB) +DES=تصريح تبادل الخدمات (DES) # Export page -IntracommReportTitle=Preparation of an XML file in ProDouane format +IntracommReportTitle=تحضير ملف XML بتنسيق ProDouane # List -IntracommReportList=List of generated declarations -IntracommReportNumber=Numero of declaration -IntracommReportPeriod=Period of nalysis -IntracommReportTypeDeclaration=Type of declaration -IntracommReportDownload=download XML file +IntracommReportList=قائمة الإعلانات التي تم إنشاؤها +IntracommReportNumber=نوميرو من التصريح +IntracommReportPeriod=فترة التحليل +IntracommReportTypeDeclaration=نوع التصريح +IntracommReportDownload=تنزيل ملف XML # Invoice -IntracommReportTransportMode=Transport mode +IntracommReportTransportMode=وضع النقل diff --git a/htdocs/langs/ar_SA/languages.lang b/htdocs/langs/ar_SA/languages.lang index 66358c46f8e..b8bbd60563f 100644 --- a/htdocs/langs/ar_SA/languages.lang +++ b/htdocs/langs/ar_SA/languages.lang @@ -1,27 +1,32 @@ # Dolibarr language file - Source file is en_US - languages Language_am_ET=إثيوبي Language_ar_AR=العربية -Language_ar_DZ=Arabic (Algeria) +Language_ar_DZ=العربية (الجزائر) Language_ar_EG=العربية (مصر) -Language_ar_MA=Arabic (Moroco) +Language_ar_JO=العربية (الأردنية) +Language_ar_MA=العربية (المغرب) Language_ar_SA=العربية -Language_ar_TN=Arabic (Tunisia) -Language_ar_IQ=Arabic (Iraq) -Language_as_IN=Assamese +Language_ar_TN=العربية (تونس) +Language_ar_IQ=العربية (العراق) +Language_as_IN=الأسامية Language_az_AZ=أذربيجان Language_bn_BD=بنغالي Language_bn_IN=البنغالية (الهند) Language_bg_BG=البلغارية +Language_bo_CN=التبتية Language_bs_BA=البوسنية Language_ca_ES=كاتالاني Language_cs_CZ=تشيكي +Language_cy_GB=تهرب من دفع الرهان Language_da_DA=الدانمركية Language_da_DK=دانماركي Language_de_DE=اللغة الألمانية Language_de_AT=الألمانية (النمسا) Language_de_CH=الألمانية (سويسرا) +Language_de_LU=German (Luxembourg) Language_el_GR=يوناني Language_el_CY=اليونانية (قبرص) +Language_en_AE=الإنجليزية (الإمارات العربية المتحدة) Language_en_AU=الإنكليزية (أستراليا) Language_en_CA=الإنكليزية (كندا) Language_en_GB=الانجليزية (المملكة المتحدة) @@ -31,11 +36,13 @@ Language_en_SA=الإنجليزية (المملكة العربية السعود Language_en_SG=الإنجليزية (سنغافورة) Language_en_US=الإنكليزية (الولايات المتحدة) Language_en_ZA=الإنكليزية (جنوب أفريقيا) +Language_en_ZW=English (Zimbabwe) Language_es_ES=الأسبانية Language_es_AR=الأسبانية (الأرجنتين) Language_es_BO=الأسبانية (بوليفيا) Language_es_CL=الإسبانية (تشيلي) Language_es_CO=الأسبانية (كولومبيا) +Language_es_CR=الأسبانية (كوستاريكا) Language_es_DO=الأسبانية (جمهورية الدومنيكان) Language_es_EC=الإسبانية (إكوادور) Language_es_GT=الإسبانية (غواتيمالا) @@ -74,7 +81,7 @@ Language_it_IT=الإيطالي Language_it_CH=الإيطالية (سويسرا) Language_ja_JP=اليابانية Language_ka_GE=الجورجية -Language_kk_KZ=Kazakh +Language_kk_KZ=الكازاخستانية Language_km_KH=الخمير Language_kn_IN=الكانادا Language_ko_KR=الكورية @@ -83,19 +90,22 @@ Language_lt_LT=اللتوانية Language_lv_LV=اللاتفية Language_mk_MK=المقدونية Language_mn_MN=المنغولية +Language_my_MM=البورمية Language_nb_NO=النرويجية (بوكمال) Language_ne_NP=النيبالية Language_nl_BE=الهولندية (بلجيكا) Language_nl_NL=اللغة الهولندية Language_pl_PL=بولندي -Language_pt_AO=Portuguese (Angola) +Language_pt_AO=البرتغالية (أنغولا) +Language_pt_MZ=البرتغالية (موزمبيق) Language_pt_BR=البرتغالية (البرازيل) Language_pt_PT=البرتغالية -Language_ro_MD=Romanian (Moldavia) +Language_ro_MD=الرومانية (مولدافيا) Language_ro_RO=الرومانية Language_ru_RU=الروسية Language_ru_UA=الروسية (أوكرانيا) -Language_tg_TJ=Tajik +Language_ta_IN=التاميل +Language_tg_TJ=طاجيك Language_tr_TR=التركية Language_sl_SI=السلوفينية Language_sv_SV=السويدية @@ -103,9 +113,11 @@ Language_sv_SE=السويدية Language_sq_AL=الألبانية Language_sk_SK=السلوفاكية Language_sr_RS=صربي +Language_sw_KE=Swahili Language_sw_SW=السواحيلية Language_th_TH=التايلاندية Language_uk_UA=الأوكراني +Language_ur_PK=الأردية Language_uz_UZ=الأوزبكي Language_vi_VN=الفيتنامية Language_zh_CN=الصينية diff --git a/htdocs/langs/ar_SA/ldap.lang b/htdocs/langs/ar_SA/ldap.lang index b84a13ba7a7..0f2fab0c304 100644 --- a/htdocs/langs/ar_SA/ldap.lang +++ b/htdocs/langs/ar_SA/ldap.lang @@ -25,3 +25,7 @@ ContactSynchronized=تمت مزامنة جهة الاتصال ForceSynchronize=إجبار التزامن بين دوليبار و خادم الوصول الخفيف للأدلة ErrorFailedToReadLDAP=فشل في قراءة قاعدة بيانات خادم الوصول الخفيف للأدلة. راجع إعدادات وحدة خادم الوصول الخفيف للأدلة، وإمكانية الوصول إلى قاعدة البيانات. PasswordOfUserInLDAP=كلمة سر المستخدم في خادم الوصول الخفيف للأدلة +LDAPPasswordHashType=نوع تجزئة كلمة المرور +LDAPPasswordHashTypeExample=نوع تجزئة كلمة المرور المستخدمة على الخادم +SupportedForLDAPExportScriptOnly=مدعوم فقط من خلال برنامج نصي للتصدير ldap +SupportedForLDAPImportScriptOnly=مدعوم فقط بواسطة برنامج نصي للاستيراد ldap diff --git a/htdocs/langs/ar_SA/loan.lang b/htdocs/langs/ar_SA/loan.lang index c2caa6426d9..5a01f71a4ab 100644 --- a/htdocs/langs/ar_SA/loan.lang +++ b/htdocs/langs/ar_SA/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=التزام مالي InterestAmount=اهتمام CapitalRemain=يبقى رأس المال TermPaidAllreadyPaid = هذا المصطلح مدفوع بالفعل -CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started +CantUseScheduleWithLoanStartedToPaid = لا يمكن إنشاء مخطط زمني لقرض بدفعة بدأت CantModifyInterestIfScheduleIsUsed = لا يمكنك تعديل الفائدة إذا كنت تستخدم الجدول الزمني # Admin ConfigLoan=التكوين للقرض وحدة -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=تحرير الالتزام المالي diff --git a/htdocs/langs/ar_SA/mailmanspip.lang b/htdocs/langs/ar_SA/mailmanspip.lang index 1cc0c530fe8..09a761fd3ca 100644 --- a/htdocs/langs/ar_SA/mailmanspip.lang +++ b/htdocs/langs/ar_SA/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip -MailmanSpipSetup=ساعي البريد و تركيب نموذج SPIP -MailmanTitle=القائمة البريدية ميلمان النظام -TestSubscribe=لاختبار الاشتراك في قوائم ميلمان +MailmanSpipSetup=إعداد وحدة البريد و SPIP +MailmanTitle=نظام القائمة البريدية ميلمان +TestSubscribe=لاختبار الاشتراك في قوائم البريد TestUnSubscribe=لاختبار إلغاء الاشتراك من قوائم ساعي البريد -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully -SynchroMailManEnabled=سيتم تنفيذ عملية تحديث ميلمان -SynchroSpipEnabled=سيتم تنفيذ عملية تحديث SPIP -DescADHERENT_MAILMAN_ADMINPW=ساعي البريد مرور مسؤول -DescADHERENT_MAILMAN_URL=URL للاشتراكات ساعي البريد -DescADHERENT_MAILMAN_UNSUB_URL=URL للunsubscriptions ساعي البريد -DescADHERENT_MAILMAN_LISTS=قائمة ل نقش التلقائي للأعضاء الجدد (مفصولة بفواصل) +MailmanCreationSuccess=تم تنفيذ اختبار الاشتراك بنجاح +MailmanDeletionSuccess=تم تنفيذ اختبار إلغاء الاشتراك بنجاح +SynchroMailManEnabled=سيتم تنفيذ تحديث ميلمان +SynchroSpipEnabled=سيتم تنفيذ تحديث SPIP +DescADHERENT_MAILMAN_ADMIN_PASSWORD=كلمة مرور ساعيالبريد +DescADHERENT_MAILMAN_URL=عنوان URL لاشتراكات ساعي البريد +DescADHERENT_MAILMAN_UNSUB_URL=عنوان URL لإلغاء اشتراكات ساعي البريد +DescADHERENT_MAILMAN_LISTS=قائمة (قوائم) التسجيل التلقائي للأعضاء الجدد (مفصولة بفواصل) SPIPTitle=SPIP نظام إدارة المحتوى -DescADHERENT_SPIP_SERVEUR=SPIP خادم -DescADHERENT_SPIP_DB=SPIP اسم قاعدة البيانات -DescADHERENT_SPIP_USER=قاعدة بيانات SPIP تسجيل الدخول -DescADHERENT_SPIP_PASS=SPIP كلمة مرور قاعدة البيانات +DescADHERENT_SPIP_SERVEUR=خادم SPIP +DescADHERENT_SPIP_DB=اسم قاعدة بيانات SPIP +DescADHERENT_SPIP_USER=معلومات تسجيل الدخول إلى قاعدة بيانات SPIP  +DescADHERENT_SPIP_PASS=كلمة مرور قاعدة بيانات SPIP  AddIntoSpip=إضافة إلى SPIP AddIntoSpipConfirmation=هل أنت متأكد أنك تريد إضافة هذا العضو إلى SPIP؟ AddIntoSpipError=فشل في إضافة المستخدم في SPIP DeleteIntoSpip=إزالة من SPIP DeleteIntoSpipConfirmation=هل أنت متأكد أنك تريد إزالة هذا العضو من SPIP؟ -DeleteIntoSpipError=فشل في قمع المستخدم من SPIP -SPIPConnectionFailed=فشل الاتصال SPIP -SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database -SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database +DeleteIntoSpipError=فشل في حظر المستخدم من SPIP +SPIPConnectionFailed=فشل الاتصال بـ SPIP +SuccessToAddToMailmanList=تمت إضافة %s بنجاح إلى قائمة ساعي البريد %s أو قاعدة بيانات SPIP +SuccessToRemoveToMailmanList=%s تمت إزالته بنجاح من قائمة ساعي البريد %s أو قاعدة بيانات SPIP diff --git a/htdocs/langs/ar_SA/mails.lang b/htdocs/langs/ar_SA/mails.lang index 79b34553d19..d6198e63b8d 100644 --- a/htdocs/langs/ar_SA/mails.lang +++ b/htdocs/langs/ar_SA/mails.lang @@ -7,20 +7,20 @@ MailCard=بطاقة الإنترنت MailRecipients=المستفيدون MailRecipient=المتلقي MailTitle=العنوان -MailFrom=مرسل +MailFrom=من MailErrorsTo=الأخطاء MailReply=وردا على -MailTo=جهاز الاستقبال (ق) -MailToUsers=To user(s) +MailTo=فاتورة الى: +MailToUsers=إلى مستخدم (ق) MailCC=نسخة إلى -MailToCCUsers=Copy to users(s) +MailToCCUsers=نسخ للمستخدمين MailCCC=نسخة إلى نسخة -MailTopic=Email subject +MailTopic=موضوع البريد الإلكتروني MailText=رسالة MailFile=الملفات المرفقة MailMessage=هيئة البريد الإلكتروني -SubjectNotIn=Not in Subject -BodyNotIn=Not in Body +SubjectNotIn=ليس في الموضوع +BodyNotIn=ليس في الجسد ShowEMailing=وتظهر مراسلة ListOfEMailings=قائمة emailings NewMailing=مراسلة جديدة @@ -47,20 +47,20 @@ MailingStatusReadAndUnsubscribe=Read and unsubscribe ErrorMailRecipientIsEmpty=البريد الإلكتروني المتلقي فارغة WarningNoEMailsAdded=بريد الكتروني جديدة تضاف الى قائمة المتلقي. ConfirmValidMailing=Are you sure you want to validate this emailing? -ConfirmResetMailing=Warning, by re-initializing emailing %s, you will allow the re-sending this email in a bulk mailing. Are you sure you want to do this? -ConfirmDeleteMailing=Are you sure you want to delete this emailing? -NbOfUniqueEMails=No. of unique emails -NbOfEMails=No. of EMails +ConfirmResetMailing=تحذير ، من خلال إعادة تهيئة البريد الإلكتروني %s ، ستسمح بإعادة إرسال هذا البريد الإلكتروني في بريد مجمع. هل انت متأكد من أنك تريد أن تفعل هذا؟ +ConfirmDeleteMailing=هل أنت متأكد أنك تريد حذف هذا البريد الإلكتروني؟ +NbOfUniqueEMails=عدد رسائل البريد الإلكتروني الفريدة +NbOfEMails=عدد رسائل البريد الإلكتروني TotalNbOfDistinctRecipients=عدد المستفيدين متميزة NoTargetYet=ولم يعرف بعد المستفيدين (الذهاب على تبويبة 'المتلقين) -NoRecipientEmail=No recipient email for %s +NoRecipientEmail=لا يوجد بريد إلكتروني للمستلم لـ %s RemoveRecipient=إزالة المتلقية YouCanAddYourOwnPredefindedListHere=البريد الإلكتروني الخاص بك لإنشاء وحدة منتق ، انظر htdocs / تضم / وحدات / الرسائل / إقرأني. EMailTestSubstitutionReplacedByGenericValues=عند استخدام طريقة الاختبار ، واستبدال المتغيرات العامة الاستعاضة عن القيم MailingAddFile=يرفق هذا الملف NoAttachedFiles=ولا الملفات المرفقة -BadEMail=Bad value for Email -EMailNotDefined=Email not defined +BadEMail=قيمة سيئة للبريد الإلكتروني +EMailNotDefined=لم يتم تعريف البريد الإلكتروني ConfirmCloneEMailing=Are you sure you want to clone this emailing? CloneContent=استنساخ الرسالة CloneReceivers=شبيه المستفيدين @@ -68,32 +68,32 @@ DateLastSend=Date of latest sending DateSending=تاريخ إرسال SentTo=إرسالها إلى %s MailingStatusRead=قرأ -YourMailUnsubcribeOK=The email %s is correctly unsubscribe from mailing list -ActivateCheckReadKey=Key used to encrypt URL used for "Read Receipt" and "Unsubscribe" feature -EMailSentToNRecipients=Email sent to %s recipients. -EMailSentForNElements=Email sent for %s elements. +YourMailUnsubcribeOK=البريد الإلكتروني %s بشكل صحيح إلغاء الاشتراك من القائمة البريدية +ActivateCheckReadKey=المفتاح المستخدم لتشفير URL المستخدم لميزة "إيصال القراءة" و "إلغاء الاشتراك" +EMailSentToNRecipients=تم إرسال بريد إلكتروني إلى مستلمي %s. +EMailSentForNElements=تم إرسال بريد إلكتروني لعناصر %s. XTargetsAdded=وأضاف المتلقين٪ الصورة إلى قائمة المستهدفين -OnlyPDFattachmentSupported=If the PDF documents were already generated for the objects to send, they will be attached to email. If not, no email will be sent (also, note that only pdf documents are supported as attachments in mass sending in this version). -AllRecipientSelected=The recipients of the %s record selected (if their email is known). -GroupEmails=Group emails -OneEmailPerRecipient=One email per recipient (by default, one email per record selected) -WarningIfYouCheckOneRecipientPerEmail=Warning, if you check this box, it means only one email will be sent for several different record selected, so, if your message contains substitution variables that refers to data of a record, it becomes not possible to replace them. -ResultOfMailSending=Result of mass Email sending -NbSelected=Number selected -NbIgnored=Number ignored -NbSent=Number sent -SentXXXmessages=%s message(s) sent. +OnlyPDFattachmentSupported=إذا تم إنشاء مستندات PDF بالفعل لإرسال الكائنات ، فسيتم إرفاقها بالبريد الإلكتروني. إذا لم يكن الأمر كذلك ، فلن يتم إرسال بريد إلكتروني (أيضًا ، لاحظ أن مستندات pdf فقط مدعومة كمرفقات في الإرسال الجماعي في هذا الإصدار). +AllRecipientSelected=تم تحديد مستلمي السجل %s (إذا كان بريدهم الإلكتروني معروفًا). +GroupEmails=رسائل البريد الإلكتروني الجماعية +OneEmailPerRecipient=بريد إلكتروني واحد لكل مستلم (افتراضيًا ، يتم تحديد بريد إلكتروني واحد لكل سجل) +WarningIfYouCheckOneRecipientPerEmail=تحذير ، إذا قمت بتحديد هذا المربع ، فهذا يعني أنه سيتم إرسال بريد إلكتروني واحد فقط لعدة سجلات مختلفة محددة ، لذلك ، إذا كانت رسالتك تحتوي على متغيرات الاستبدال التي تشير إلى بيانات السجل ، فلن يكون من الممكن استبدالها. +ResultOfMailSending=نتيجة إرسال جماعي للبريد الإلكتروني +NbSelected=الرقم المحدد +NbIgnored=تم تجاهل الرقم +NbSent=تم إرسال الرقم +SentXXXmessages=تم إرسال رسالة (رسائل) %s. ConfirmUnvalidateEmailing=Are you sure you want to change email %s to draft status? MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters -MailingModuleDescContactsByCompanyCategory=Contacts by third-party category +MailingModuleDescContactsByCompanyCategory=جهات الاتصال حسب فئة الطرف الثالث MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position -MailingModuleDescEmailsFromFile=Emails from file -MailingModuleDescEmailsFromUser=Emails input by user -MailingModuleDescDolibarrUsers=Users with Emails -MailingModuleDescThirdPartiesByCategories=Third parties (by categories) -SendingFromWebInterfaceIsNotAllowed=Sending from web interface is not allowed. -EmailCollectorFilterDesc=All filters must match to have an email being collected +MailingModuleDescEmailsFromFile=رسائل البريد الإلكتروني من الملف +MailingModuleDescEmailsFromUser=إدخال رسائل البريد الإلكتروني من قبل المستخدم +MailingModuleDescDolibarrUsers=المستخدمون الذين لديهم رسائل بريد إلكتروني +MailingModuleDescThirdPartiesByCategories=الأطراف الثالثة (حسب الفئات) +SendingFromWebInterfaceIsNotAllowed=الإرسال من واجهة الويب غير مسموح به. +EmailCollectorFilterDesc=يجب أن تتطابق جميع المرشحات حتى يتم جمع بريد إلكتروني # Libelle des modules de liste de destinataires mailing LineInFile=خط المستندات في ملف ٪ @@ -121,19 +121,19 @@ DeliveryReceipt=Delivery Ack. YouCanUseCommaSeparatorForSeveralRecipients=يمكنك استخدام الفاصلة فاصل لتحديد عدد من المتلقين. TagCheckMail=افتتاح البريد المسار TagUnsubscribe=رابط إلغاء الاشتراك -TagSignature=Signature of sending user -EMailRecipient=Recipient Email -TagMailtoEmail=Recipient Email (including html "mailto:" link) +TagSignature=توقيع المستخدم المرسل +EMailRecipient=البريد الإلكتروني المستلم +TagMailtoEmail=البريد الإلكتروني للمستلم (بما في ذلك رابط "mailto:" html) NoEmailSentBadSenderOrRecipientEmail=لا ترسل البريد الإلكتروني. مرسل سيئة أو البريد الإلكتروني المستلم. تحقق ملف تعريف المستخدم. # Module Notifications Notifications=الإخطارات -NotificationsAuto=Notifications Auto. -NoNotificationsWillBeSent=No automatic email notifications are planned for this event type and company -ANotificationsWillBeSent=1 automatic notification will be sent by email -SomeNotificationsWillBeSent=%s automatic notifications will be sent by email -AddNewNotification=Subscribe to a new automatic email notification (target/event) -ListOfActiveNotifications=List of all active subscriptions (targets/events) for automatic email notification -ListOfNotificationsDone=List of all automatic email notifications sent +NotificationsAuto=إخطارات السيارات. +NoNotificationsWillBeSent=لا توجد إخطارات تلقائية بالبريد الإلكتروني مخططة لهذا النوع من الأحداث والشركة +ANotificationsWillBeSent=سيتم إرسال إشعار تلقائي واحد عبر البريد الإلكتروني +SomeNotificationsWillBeSent=%s سيتم إرسال إشعارات تلقائية عبر البريد الإلكتروني +AddNewNotification=اشترك في إشعار تلقائي جديد بالبريد الإلكتروني (الهدف / الحدث) +ListOfActiveNotifications=قائمة بجميع الاشتراكات النشطة (الأهداف / الأحداث) للإخطار التلقائي بالبريد الإلكتروني +ListOfNotificationsDone=قائمة بجميع إخطارات البريد الإلكتروني التلقائية المرسلة MailSendSetupIs=وقد تم تكوين إرسال البريد الإلكتروني الإعداد ل'٪ ق'. هذا الوضع لا يمكن أن تستخدم لإرسال إرساله عبر البريد الإلكتروني الشامل. MailSendSetupIs2=يجب عليك أولا الذهاب، مع حساب مشرف، في القائمة٪ sHome - إعداد - رسائل البريد الإلكتروني٪ s إلى تغيير المعلمة '٪ ق' لاستخدام وضع '٪ ق'. مع هذا الوضع، يمكنك إدخال الإعداد خادم SMTP المقدمة من قبل موفر خدمة الإنترنت واستخدام قداس ميزة البريد الإلكتروني. MailSendSetupIs3=إذا كان لديك أي أسئلة حول كيفية إعداد ملقم SMTP الخاص بك، يمكنك أن تطلب إلى٪ s. @@ -142,39 +142,40 @@ NbOfTargetedContacts=العدد الحالي من رسائل البريد الإ UseFormatFileEmailToTarget=Imported file must have format email;name;firstname;other UseFormatInputEmailToTarget=Enter a string with format email;name;firstname;other MailAdvTargetRecipients=Recipients (advanced selection) -AdvTgtTitle=Fill input fields to preselect the third parties or contacts/addresses to target -AdvTgtSearchTextHelp=Use %% as wildcards. For example to find all item like jean, joe, jim, you can input j%%, you can also use ; as separator for value, and use ! for except this value. For example jean;joe;jim%%;!jimo;!jima%% will target all jean, joe, start with jim but not jimo and not everything that starts with jima +AdvTgtTitle=املأ حقول الإدخال للتحديد المسبق للأطراف الثالثة أو جهات الاتصال / العناوين المراد استهدافها +AdvTgtSearchTextHelp=استخدم %% كأحرف بدل. على سبيل المثال للعثور على كل العناصر مثل jean، joe، jim ، يمكنك إدخال j%% ، يمكنك أيضًا استخدام ؛ كفاصل للقيمة والاستخدام! باستثناء هذه القيمة. على سبيل المثال jean؛ joe؛ jim%%؛! jimo؛! jima%% سيستهدف كل jean ، joe ، ابدأ بـ jim ولكن ليس jimo وليس كل شيء يبدأ بـ jima AdvTgtSearchIntHelp=Use interval to select int or float value AdvTgtMinVal=Minimum value AdvTgtMaxVal=Maximum value AdvTgtSearchDtHelp=Use interval to select date value AdvTgtStartDt=Start dt. AdvTgtEndDt=End dt. -AdvTgtTypeOfIncudeHelp=Target Email of third party and email of contact of the third party, or just third-party email or just contact email +AdvTgtTypeOfIncudeHelp=الهدف البريد الإلكتروني للطرف الثالث والبريد الإلكتروني لجهة اتصال الطرف الثالث ، أو البريد الإلكتروني لجهة خارجية فقط أو مجرد الاتصال بالبريد الإلكتروني AdvTgtTypeOfIncude=Type of targeted email AdvTgtContactHelp=Use only if you target contact into "Type of targeted email" AddAll=Add all RemoveAll=Remove all ItemsCount=Item(s) AdvTgtNameTemplate=Filter name -AdvTgtAddContact=Add emails according to criteria +AdvTgtAddContact=أضف رسائل البريد الإلكتروني وفقًا للمعايير AdvTgtLoadFilter=Load filter AdvTgtDeleteFilter=Delete filter AdvTgtSaveFilter=Save filter AdvTgtCreateFilter=Create filter AdvTgtOrCreateNewFilter=Name of new filter -NoContactWithCategoryFound=No category found linked to some contacts/addresses -NoContactLinkedToThirdpartieWithCategoryFound=No category found linked to some thirdparties -OutGoingEmailSetup=Outgoing emails -InGoingEmailSetup=Incoming emails -OutGoingEmailSetupForEmailing=Outgoing emails (for module %s) -DefaultOutgoingEmailSetup=Same configuration than the global Outgoing email setup +NoContactWithCategoryFound=لم يتم العثور على فئة مرتبطة ببعض جهات الاتصال / العناوين +NoContactLinkedToThirdpartieWithCategoryFound=لم يتم العثور على فئة مرتبطة ببعض الأطراف الثالثة +OutGoingEmailSetup=رسائل البريد الإلكتروني الصادرة +InGoingEmailSetup=رسائل البريد الإلكتروني الواردة +OutGoingEmailSetupForEmailing=رسائل البريد الإلكتروني الصادرة (للوحدة النمطية %s) +DefaultOutgoingEmailSetup=نفس التكوين من إعداد البريد الإلكتروني الصادر العام Information=معلومات -ContactsWithThirdpartyFilter=Contacts with third-party filter -Unanswered=Unanswered +ContactsWithThirdpartyFilter=جهات الاتصال مع مرشح طرف ثالث +Unanswered=لم يتم الرد عليها Answered=محلول -IsNotAnAnswer=Is not answer (initial email) -IsAnAnswer=Is an answer of an initial email -RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s -DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact -DefaultStatusEmptyMandatory=Empty but mandatory +IsNotAnAnswer=ليس إجابة (البريد الإلكتروني الأولي) +IsAnAnswer=هي إجابة رسالة بريد إلكتروني أولية +RecordCreatedByEmailCollector=السجل الذي تم إنشاؤه بواسطة مُجمع البريد الإلكتروني %s من البريد الإلكتروني %s +DefaultBlacklistMailingStatus=القيمة الافتراضية للحقل "%s" عند تكوين جهة اتصال جديدة +DefaultStatusEmptyMandatory=فارغ ولكنه إلزامي +WarningLimitSendByDay=تحذير: إعداد أو عقد المثيل الخاص بك يحد من عدد رسائل البريد الإلكتروني يوميًا إلى %s . قد تؤدي محاولة إرسال المزيد إلى إبطاء المثيل أو تعليقه. يرجى الاتصال بالدعم الخاص بك إذا كنت بحاجة إلى حصة أعلى. diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang index 5bf59f3f85c..8e6c8c6381a 100644 --- a/htdocs/langs/ar_SA/main.lang +++ b/htdocs/langs/ar_SA/main.lang @@ -34,6 +34,7 @@ NoTemplateDefined=لا يوجد قالب متاح لهذا النوع من ال AvailableVariables=متغيرات الاستبدال المتاحة NoTranslation=لا يوجد ترجمة Translation=الترجمة +Translations=Translations CurrentTimeZone=حسب توقيت خادم البي إتش بي EmptySearchString=أدخل معايير بحث غير فارغة EnterADateCriteria=أدخل معايير التاريخ @@ -205,6 +206,7 @@ Valid=صالح Approve=موافق Disapprove=رفض ReOpen=إعادة فتح +OpenVerb=مفتوح Upload=Upload ToLink=حلقة الوصل Select=اختار @@ -222,8 +224,9 @@ UserGroup=مجموعة المستخدمين UserGroups=مجموعات الاعضاء NoUserGroupDefined=لم يتم تحديد مجموعة مستخدمين Password=كلمة المرور -PasswordRetype=أعد كتابة كلمة المرور +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=لاحظ أنه تم تعطيل الكثير من الميزات | الوحدات في هذا العرض التوضيحي. +YourUserFile=Your user file Name=اسم NameSlashCompany=الاسم | الشركة Person=شخص @@ -487,6 +490,7 @@ ActionsOnContact=الأحداث لهذا الاتصال او العنوان ActionsOnContract=أحداث هذا العقد ActionsOnMember=الأحداث عن هذا العضو ActionsOnProduct=أحداث حول هذا المنتج +ActionsOnAsset=Events for this fixed asset NActionsLate=%s متأخر ToDo=للعمل Completed=مكتمل @@ -808,6 +812,7 @@ URLPhoto=عنوان URL للصورة | الشعار SetLinkToAnotherThirdParty=ربط بطرف ثالث آخر LinkTo=ربط مع او بـ LinkToProposal=ربط مع العرض +LinkToExpedition= Link to expedition LinkToOrder=ربط مع الامر LinkToInvoice=ربط مع الفاتورة LinkToTemplateInvoice=ربط مع قالب الفاتورة @@ -893,6 +898,9 @@ MassFilesArea=مساحة للملفات التي تم إنشاؤها بواسط ShowTempMassFilesArea=عرض مساحة الملفات التي تم إنشاؤها بواسطة الإجراءات الجماعية ConfirmMassDeletion=تأكيد الحذف الضخم ConfirmMassDeletionQuestion=هل أنت متأكد من أنك تريد حذف %s السجل (السجلات) المحددة؟ +ConfirmMassClone=Bulk clone confirmation +ConfirmMassCloneQuestion=Select project to clone to +ConfirmMassCloneToOneProject=Clone to project %s RelatedObjects=كائنات ذات صلة ClassifyBilled=تصنيف الفواتير ClassifyUnbilled=تصنيف غير مفوتر @@ -908,8 +916,8 @@ ExportFilteredList=تصدير قائمة التى تم تصفيتها ExportList=قائمة التصدير ExportOptions=خيارات التصدير IncludeDocsAlreadyExported=تضمين المستندات التي تم تصديرها -ExportOfPiecesAlreadyExportedIsEnable=Export of pieces already exported is enable -ExportOfPiecesAlreadyExportedIsDisable=Export of pieces already exported is disable +ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported +ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported AllExportedMovementsWereRecordedAsExported=تم تسجيل جميع حركات التصدير على أنها مصدرة NotAllExportedMovementsCouldBeRecordedAsExported=لا يمكن تسجيل جميع حركات التصدير على أنها مصدرة Miscellaneous=متفرقات @@ -926,6 +934,7 @@ DirectDownloadInternalLink=رابط التحميل الخاص PrivateDownloadLinkDesc=تحتاج إلى تسجيل الدخول وتحتاج إلى أذونات لعرض الملف أو تنزيله Download=تحميل DownloadDocument=تحميل مستند +DownloadSignedDocument=Download signed document ActualizeCurrency=تحديث سعر العملة Fiscalyear=السنة المالية ModuleBuilder=الوحدة النمطية ومنشئ التطبيق @@ -1051,6 +1060,7 @@ SearchIntoContracts=عقود SearchIntoCustomerShipments=شحنات العملاء SearchIntoExpenseReports=تقارير المصاريف SearchIntoLeaves=الاجازات +SearchIntoKM=Knowledge base SearchIntoTickets=تذاكر SearchIntoCustomerPayments=مدفوعات العميل SearchIntoVendorPayments=مدفوعات الموردين @@ -1122,6 +1132,7 @@ DeleteFileText=هل تريد حقا حذف هذا الملف؟ ShowOtherLanguages=عرض اللغات الأخرى SwitchInEditModeToAddTranslation=قم بالتبديل في وضع التحرير لإضافة ترجمات لهذه اللغة NotUsedForThisCustomer=غير مستخدم لهذا العميل +NotUsedForThisVendor=Not used for this vendor AmountMustBePositive=المبلغ يجب أن يكون موجبًا ByStatus=حسب الحالة InformationMessage=معلومات @@ -1142,15 +1153,29 @@ EventReminder=تذكير بالحدث UpdateForAllLines=تحديث لجميع البنود OnHold=في الانتظار Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign a Tag +AffectUser=Assign a User +SetSupervisor=Set the supervisor CreateExternalUser=إنشاء مستخدم خارجي -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project/opportunity +TasksRole=Role assigned on each task (if used) +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=لا يوجد ملصق لنوع السجل +Rate=معدل +SupervisorNotFound=Supervisor not found CopiedToClipboard=تم النسخ الى الحافظة InformationOnLinkToContract=هذا المبلغ هو مجموع بنود العقد . دون مراعاة قيمة الزمن ConfirmCancel=هل أنت متأكد أنك تريد إلغاء EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=تعيين على تمكين SetToDisabled=تعيين إلى معطل ConfirmMassEnabling=تأكيد التمكين الشامل @@ -1179,11 +1204,21 @@ Terminated=تم إنهاؤه AddLineOnPosition=أضف سطرًا في الموضع (في النهاية إذا كان فارغًا) ConfirmAllocateCommercial=تعيين تأكيد مندوب المبيعات ConfirmAllocateCommercialQuestion=هل أنت متأكد من أنك تريد تعيين السجل (السجلات) المحددة %s؟ -CommercialsAffected=مندوبي المبيعات يتأثرون -CommercialAffected=مندوب المبيعات يتأثر +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned YourMessage=رسالتك YourMessageHasBeenReceived=وقد وردت الرسالة. سنقوم بالرد أو الاتصال بك في أقرب وقت ممكن. UrlToCheck=عنوان Url المراد التحقق منه Automation=أتمتة -CreatedByEmailCollector=Created by Email collector -CreatedByPublicPortal=Created from Public portal +CreatedByEmailCollector=تم إنشاؤها بواسطة جامع البريد الإلكتروني +CreatedByPublicPortal=تم إنشاؤه من بوابة عامة +UserAgent=User Agent +InternalUser=مستخدم داخلي +ExternalUser=مستخدم خارجي +NoSpecificContactAddress=No specific contact or address +NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate. +HideOnVCard=Hide %s +AddToContacts=Add address to my contacts +LastAccess=Last access +UploadAnImageToSeeAPhotoHere=Upload an image from the tab %s to see a photo here +LastPasswordChangeDate=Last password change date diff --git a/htdocs/langs/ar_SA/margins.lang b/htdocs/langs/ar_SA/margins.lang index 7195b871c51..43d633f2d9d 100644 --- a/htdocs/langs/ar_SA/margins.lang +++ b/htdocs/langs/ar_SA/margins.lang @@ -22,7 +22,7 @@ ProductService=المنتج أو الخدمة AllProducts=جميع المنتجات والخدمات ChooseProduct/Service=اختيار المنتج أو الخدمة ForceBuyingPriceIfNull=فرض سعر شراء / تكلفة إلى سعر البيع إذا لم يتم تحديدها -ForceBuyingPriceIfNullDetails=If buying/cost price not provided when we add a new line, and this option is "ON", the margin will be 0%% on the new line (buying/cost price = selling price). If this option is "OFF" (recommended), margin will be equal to the value suggested by default (and may be 100%% if no default value can be found). +ForceBuyingPriceIfNullDetails=إذا لم يتم توفير سعر الشراء / التكلفة عند إضافة سطر جديد ، وكان هذا الخيار "تشغيل" ، فسيكون الهامش 0%% في السطر الجديد (سعر الشراء / سعر التكلفة = سعر البيع). إذا كان هذا الخيار "إيقاف التشغيل" (مستحسن) ، فسيكون الهامش مساويًا للقيمة المقترحة افتراضيًا (وقد يكون 100%% إذا لم يتم العثور على قيمة افتراضية). MARGIN_METHODE_FOR_DISCOUNT=طريقة الهامش للخصومات العالمية UseDiscountAsProduct=كمنتج UseDiscountAsService=كخدمة @@ -32,14 +32,14 @@ MARGIN_TYPE=سعر الشراء / التكلفة المقترحة افتراضي MargeType1=الهامش على سعر المورد الافضل MargeType2=الهامش على متوسط ​​السعر المرجح (واب) MargeType3=هامش على سعر التكلفة -MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card
* Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best vendor price if WAP not yet defined
* Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best vendor price if WAP not yet defined +MarginTypeDesc=* الهامش على أفضل سعر شراء = سعر البيع - أفضل سعر للبائع المحدد في بطاقة المنتج
* الهامش على متوسط السعر المرجح (WAP) = سعر البيع - متوسط السعر المرجح للمنتج (WAP) أو أفضل سعر للبائع إذا لم يتم تحديد WAP بعد
* الهامش بسعر التكلفة = سعر البيع - سعر التكلفة المحدد على بطاقة المنتج أو WAP إذا لم يتم تحديد سعر التكلفة ، أو أفضل سعر للبائع إذا لم يتم تحديد WAP بعد CostPrice=سعر الكلفة UnitCharges=رسوم الوحدة Charges=الرسوم AgentContactType=نوع اتصال الوكيل التجاري -AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per contact/address. Note that reading statistics on a contact is not reliable since in most cases the contact may not be defined explicitely on the invoices. +AgentContactTypeDetails=حدد نوع جهة الاتصال (المرتبطة بالفواتير) التي سيتم استخدامها لتقرير الهامش لكل جهة اتصال / عنوان. لاحظ أن قراءة الإحصائيات الخاصة بجهة اتصال لا يمكن الاعتماد عليها لأنه في معظم الحالات قد لا يتم تحديد جهة الاتصال بشكل واضح في الفواتير. rateMustBeNumeric=يجب أن يكون السعر قيمة رقمية markRateShouldBeLesserThan100=يجب أن يكون معدل العلامة أقل من 100 ShowMarginInfos=إظهار معلومات الهامش CheckMargins=تفاصيل الهوامش -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any dedicated sale representative and some third parties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). +MarginPerSaleRepresentativeWarning=يستخدم تقرير الهامش لكل مستخدم الرابط بين الأطراف الثالثة وممثلي البيع لحساب هامش كل مندوب بيع. نظرًا لأن بعض الأطراف الثالثة قد لا يكون لديها أي ممثل بيع مخصص وقد يتم ربط بعض الأطراف الثالثة بعدة مبالغ ، فقد لا يتم تضمين بعض المبالغ في هذا التقرير (إذا لم يكن هناك ممثل بيع) وقد يظهر البعض في سطور مختلفة (لكل مندوب بيع) . diff --git a/htdocs/langs/ar_SA/members.lang b/htdocs/langs/ar_SA/members.lang index f8764aafc0f..e71475a85aa 100644 --- a/htdocs/langs/ar_SA/members.lang +++ b/htdocs/langs/ar_SA/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=عضو آخر (الاسم : ٪ ق< ErrorUserPermissionAllowsToLinksToItselfOnly=لأسباب أمنية ، يجب أن تمنح أذونات لتحرير جميع المستخدمين لتكون قادرة على ربط عضو لمستخدم هذا ليس لك. SetLinkToUser=وصلة إلى مستخدم Dolibarr SetLinkToThirdParty=وصلة إلى طرف ثالث Dolibarr +MemberCountersArePublic=Counters of valid members are public MembersCards=توليد بطاقات للاعضاء MembersList=قائمة الأعضاء MembersListToValid=قائمة مشاريع أعضاء (ينبغي التأكد من صحة) @@ -34,7 +35,8 @@ DateSubscription=تاريخ العضوية DateEndSubscription=تاريخ انتهاء العضوية EndSubscription=انتهاء العضوية SubscriptionId=معرف المساهمة -WithoutSubscription=بدون مساهمة +WithoutSubscription=Without membership +WaitingSubscription=Membership pending MemberId=معرف العضو MemberRef=عضو المرجع NewMember=عضو جديد @@ -72,6 +74,12 @@ MemberTypeCanNotBeDeleted=لا يمكن حذف نوع العضو NewSubscription=مساهمة جديدة NewSubscriptionDesc=هذا النموذج يسمح لك لتسجيل الاشتراك الخاص بك كعضو جديد من الأساس. إذا كنت ترغب في تجديد الاشتراك (إذا كان بالفعل عضوا)، يرجى الاتصال مؤسسة المجلس بدلا من %s البريد الإلكتروني. Subscription=إسهام +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=مدة +GetMembershipButtonLabel=Join Subscriptions=مساهمات SubscriptionLate=متأخر SubscriptionNotReceived=المساهمة لم يتم استلامها @@ -136,7 +144,7 @@ CardContent=مضمون البطاقة الخاصة بك عضوا # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=نريد إخبارك بأنه قد تم استلام طلب العضوية الخاص بك.

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

-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=نريد إخبارك بأن اشتراكك على وشك الانتهاء أو انتهى بالفعل (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). نأمل أن تقوم بتجديده.

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

DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=موضوع إشعار البريد الإلكتروني المستلم في حالة التسجيل التلقائي للضيف @@ -199,8 +207,10 @@ NbOfSubscriptions=عدد المساهمات AmountOfSubscriptions=المبلغ المحصل من المساهمات TurnoverOrBudget=دوران (لشركة) أو الميزانية (على أساس) DefaultAmount=المبلغ الافتراضي للمساهمة -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=القفز على صفحة الدفع عبر الانترنت المتكاملة +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=بالطبيعة MembersStatisticsByProperties=إحصائيات الأعضاء حسب الطبيعة VATToUseForSubscriptions=معدل ضريبة القيمة المضافة لاستخدامه في المساهمات @@ -221,3 +231,4 @@ CreateDolibarrLoginDesc=يسمح إنشاء تسجيل دخول مستخدم ل CreateDolibarrThirdPartyDesc=الطرف الثالث هو الكيان القانوني الذي سيتم استخدامه في الفاتورة إذا قررت إنشاء فاتورة لكل مساهمة. ستتمكن من إنشائه لاحقًا أثناء عملية تسجيل المساهمة. MemberFirstname=الاسم الأول للعضو MemberLastname=اسم العائلة للعضو +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/ar_SA/mrp.lang b/htdocs/langs/ar_SA/mrp.lang index 0abf5f071be..5b80d46d669 100644 --- a/htdocs/langs/ar_SA/mrp.lang +++ b/htdocs/langs/ar_SA/mrp.lang @@ -1,109 +1,120 @@ Mrp=أوامر التصنيع -MOs=Manufacturing orders -ManufacturingOrder=Manufacturing Order -MRPDescription=Module to manage production and Manufacturing Orders (MO). -MRPArea=MRP Area -MrpSetupPage=Setup of module MRP -MenuBOM=Bills of material -LatestBOMModified=Latest %s Bills of materials modified -LatestMOModified=Latest %s Manufacturing Orders modified -Bom=Bills of Material -BillOfMaterials=Bill of Materials -BillOfMaterialsLines=Bill of Materials lines -BOMsSetup=Setup of module BOM -ListOfBOMs=List of bills of material - BOM -ListOfManufacturingOrders=List of Manufacturing Orders -NewBOM=New bill of materials -ProductBOMHelp=Product to create (or disassemble) with this BOM.
Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. -BOMsNumberingModules=BOM numbering templates -BOMsModelModule=BOM document templates -MOsNumberingModules=MO numbering templates -MOsModelModule=MO document templates -FreeLegalTextOnBOMs=Free text on document of BOM -WatermarkOnDraftBOMs=Watermark on draft BOM -FreeLegalTextOnMOs=Free text on document of MO -WatermarkOnDraftMOs=Watermark on draft MO -ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials %s ? -ConfirmCloneMo=Are you sure you want to clone the Manufacturing Order %s ? -ManufacturingEfficiency=Manufacturing efficiency -ConsumptionEfficiency=Consumption efficiency -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly -ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product -DeleteBillOfMaterials=Delete Bill Of Materials -DeleteMo=Delete Manufacturing Order -ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Materials? -ConfirmDeleteMo=Are you sure you want to delete this Manufacturing Order? +MOs=أوامر التصنيع +ManufacturingOrder=أمر التصنيع +MRPDescription=وحدة لإدارة أوامر الإنتاج والتصنيع (MO). +MRPArea=منطقة MRP +MrpSetupPage=إعداد وحدة MRP +MenuBOM=فواتير المواد +LatestBOMModified=أحدث %s فواتير المواد المعدلة +LatestMOModified=تم تعديل أحدث أوامر التصنيع %s +Bom=فواتير المواد +BillOfMaterials=فاتورة المواد +BillOfMaterialsLines=خطوط فاتورة المواد +BOMsSetup=إعداد وحدة BOM +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=أوامر التصنيع +NewBOM=فاتورة مواد جديدة +ProductBOMHelp=المنتج المراد إنشاؤه (أو تفكيكه) باستخدام قائمة مكونات الصنف.
ملاحظة: المنتجات ذات الخاصية "طبيعة المنتج" = "المواد الخام" غير مرئية في هذه القائمة. +BOMsNumberingModules=قوالب ترقيم BOM +BOMsModelModule=قوالب مستندات BOM +MOsNumberingModules=قوالب ترقيم MO +MOsModelModule=قوالب مستندات MO +FreeLegalTextOnBOMs=نص حر في وثيقة BOM +WatermarkOnDraftBOMs=علامة مائية على مشروع BOM +FreeLegalTextOnMOs=نص مجاني على وثيقة MO +WatermarkOnDraftMOs=علامة مائية على مشروع MO +ConfirmCloneBillOfMaterials=هل أنت متأكد أنك تريد استنساخ فاتورة المواد %s؟ +ConfirmCloneMo=هل أنت متأكد من أنك تريد استنساخ أمر التصنيع %s؟ +ManufacturingEfficiency=كفاءة التصنيع +ConsumptionEfficiency=كفاءة الاستهلاك +Consumption=Consumption +ValueOfMeansLoss=تعني القيمة 0.95 متوسط خسارة 5%% أثناء التصنيع أو التفكيك +ValueOfMeansLossForProductProduced=قيمة 0.95 تعني متوسط 5%% لفقدان المنتج المنتج +DeleteBillOfMaterials=حذف قائمة المواد +DeleteMo=حذف أمر التصنيع +ConfirmDeleteBillOfMaterials=هل أنت متأكد أنك تريد حذف قائمة المواد هذه؟ +ConfirmDeleteMo=هل أنت متأكد أنك تريد حذف أمر التصنيع هذا؟ MenuMRP=أوامر التصنيع -NewMO=New Manufacturing Order -QtyToProduce=Qty to produce -DateStartPlannedMo=Date start planned -DateEndPlannedMo=Date end planned -KeepEmptyForAsap=Empty means 'As Soon As Possible' -EstimatedDuration=Estimated duration -EstimatedDurationDesc=Estimated duration to manufacture (or disassemble) this product using this BOM -ConfirmValidateBom=Are you sure you want to validate the BOM with the reference %s (you will be able to use it to build new Manufacturing Orders) -ConfirmCloseBom=Are you sure you want to cancel this BOM (you won't be able to use it to build new Manufacturing Orders anymore) ? -ConfirmReopenBom=Are you sure you want to re-open this BOM (you will be able to use it to build new Manufacturing Orders) -StatusMOProduced=Produced -QtyFrozen=Frozen Qty -QuantityFrozen=Frozen Quantity -QuantityConsumedInvariable=When this flag is set, the quantity consumed is always the value defined and is not relative to the quantity produced. -DisableStockChange=Stock change disabled -DisableStockChangeHelp=When this flag is set, there is no stock change on this product, whatever is the quantity consumed -BomAndBomLines=Bills Of Material and lines -BOMLine=Line of BOM -WarehouseForProduction=Warehouse for production -CreateMO=Create MO -ToConsume=To consume -ToProduce=To produce -ToObtain=To obtain -QtyAlreadyConsumed=Qty already consumed -QtyAlreadyProduced=Qty already produced -QtyRequiredIfNoLoss=Qty required if there is no loss (Manufacturing efficiency is 100%%) -ConsumeOrProduce=Consume or Produce -ConsumeAndProduceAll=Consume and Produce All -Manufactured=Manufactured -TheProductXIsAlreadyTheProductToProduce=The product to add is already the product to produce. -ForAQuantityOf=For a quantity to produce of %s -ForAQuantityToConsumeOf=For a quantity to disassemble of %s -ConfirmValidateMo=Are you sure you want to validate this Manufacturing Order? -ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements. -ProductionForRef=Production of %s -AutoCloseMO=Close automatically the Manufacturing Order if quantities to consume and to produce are reached -NoStockChangeOnServices=No stock change on services -ProductQtyToConsumeByMO=Product quantity still to consume by open MO -ProductQtyToProduceByMO=Product quantity still to produce by open MO -AddNewConsumeLines=Add new line to consume -AddNewProduceLines=Add new line to produce -ProductsToConsume=Products to consume -ProductsToProduce=Products to produce -UnitCost=Unit cost -TotalCost=Total cost -BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) -GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. -ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO -Workstation=Workstation -Workstations=Workstations -WorkstationsDescription=Workstations management -WorkstationSetup = Workstations setup -WorkstationSetupPage = Workstations setup page -WorkstationList=Workstation list -WorkstationCreate=Add new workstation -ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? -EnableAWorkstation=Enable a workstation -ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? -DisableAWorkstation=Disable a workstation +NewMO=أمر تصنيع جديد +QtyToProduce=الكمية للإنتاج +DateStartPlannedMo=تاريخ البدء المخطط +DateEndPlannedMo=تاريخ الانتهاء المخطط +KeepEmptyForAsap=فارغ يعني "في أقرب وقت ممكن" +EstimatedDuration=المدة المقدرة +EstimatedDurationDesc=المدة المقدرة لتصنيع (أو تفكيك) هذا المنتج باستخدام قائمة المواد +ConfirmValidateBom=هل أنت متأكد من أنك تريد التحقق من BOM بالمرجع %s (ستتمكن من استخدامه لإنشاء أوامر تصنيع جديدة) +ConfirmCloseBom=هل أنت متأكد من أنك تريد إلغاء قائمة المواد (لن تتمكن من استخدامها لإنشاء أوامر تصنيع جديدة بعد الآن)؟ +ConfirmReopenBom=هل أنت متأكد من أنك تريد إعادة فتح قائمة المواد (ستتمكن من استخدامها لإنشاء أوامر تصنيع جديدة) +StatusMOProduced=أنتجت +QtyFrozen=الكمية المجمدة +QuantityFrozen=الكمية المجمدة +QuantityConsumedInvariable=عند تعيين هذه العلامة ، تكون الكمية المستهلكة دائمًا هي القيمة المحددة وليست مرتبطة بالكمية المنتجة. +DisableStockChange=تم تعطيل تغيير المخزون +DisableStockChangeHelp=عند تعيين هذه العلامة ، لا يوجد تغيير في المخزون في هذا المنتج ، مهما كانت الكمية المستهلكة +BomAndBomLines=فواتير المواد والخطوط +BOMLine=خط BOM +WarehouseForProduction=مستودع للإنتاج +CreateMO=إنشاء MO +ToConsume=تستهلك +ToProduce=لانتاج +ToObtain=ليحصل +QtyAlreadyConsumed=الكمية المستهلكة بالفعل +QtyAlreadyProduced=الكمية المنتجة بالفعل +QtyRequiredIfNoLoss=الكمية المطلوبة في حالة عدم وجود خسارة (كفاءة التصنيع 100%%) +ConsumeOrProduce=تستهلك أو تنتج +ConsumeAndProduceAll=تستهلك وأنتج كل شيء +Manufactured=مصنعة +TheProductXIsAlreadyTheProductToProduce=المنتج المراد إضافته هو بالفعل المنتج المطلوب إنتاجه. +ForAQuantityOf=للحصول على كمية لإنتاج %s +ForAQuantityToConsumeOf=للحصول على كمية لتفكيك %s +ConfirmValidateMo=هل أنت متأكد أنك تريد التحقق من صحة أمر التصنيع هذا؟ +ConfirmProductionDesc=بالنقر فوق "%s" ، ستتحقق من صحة الاستهلاك و / أو الإنتاج لمجموعة الكميات. سيؤدي هذا أيضًا إلى تحديث المخزون وتسجيل حركات المخزون. +ProductionForRef=إنتاج %s +CancelProductionForRef=إلغاء تخفيض مخزون المنتج للمنتج %s +TooltipDeleteAndRevertStockMovement=حذف السطر وعودة حركة المخزون +AutoCloseMO=أغلق أمر التصنيع تلقائيًا إذا تم الوصول إلى الكميات المراد استهلاكها والإنتاج +NoStockChangeOnServices=لا يوجد تغيير في المخزون على الخدمات +ProductQtyToConsumeByMO=لا تزال كمية المنتج تستهلك بواسطة MO المفتوح +ProductQtyToProduceByMO=لا تزال كمية المنتج التي يتم إنتاجها بواسطة MO المفتوح +AddNewConsumeLines=أضف سطرًا جديدًا للاستهلاك +AddNewProduceLines=أضف خطًا جديدًا للإنتاج +ProductsToConsume=منتجات للاستهلاك +ProductsToProduce=المنتجات المطلوب إنتاجها +UnitCost=تكلفة الوحدة +TotalCost=التكلفة الإجمالية +BOMTotalCost=تكلفة إنتاج قائمة مكونات الصنف هذه استنادًا إلى تكلفة كل كمية ومنتج يتم استهلاكه (استخدم سعر التكلفة إذا تم تحديده ، وإلا فإن متوسط السعر المرجح إذا تم تحديده ، وإلا فإن أفضل سعر شراء) +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" +GoOnTabProductionToProduceFirst=يجب أن تكون قد بدأت الإنتاج أولاً لإغلاق أمر التصنيع (انظر علامة التبويب "%s"). لكن يمكنك إلغاء ذلك. +ErrorAVirtualProductCantBeUsedIntoABomOrMo=لا يمكن استخدام مجموعة في BOM أو MO +Workstation=محطة العمل +Workstations=محطات العمل +WorkstationsDescription=إدارة محطات العمل +WorkstationSetup = إعداد محطات العمل +WorkstationSetupPage = صفحة إعداد محطات العمل +WorkstationList=قائمة محطات العمل +WorkstationCreate=أضف محطة عمل جديدة +ConfirmEnableWorkstation=هل أنت متأكد من أنك تريد تمكين محطة العمل %s ؟ +EnableAWorkstation=قم بتمكين محطة العمل +ConfirmDisableWorkstation=هل أنت متأكد من أنك تريد تعطيل محطة العمل %s ؟ +DisableAWorkstation=تعطيل محطة العمل DeleteWorkstation=حذف -NbOperatorsRequired=Number of operators required -THMOperatorEstimated=Estimated operator THM -THMMachineEstimated=Estimated machine THM -WorkstationType=Workstation type -Human=Human -Machine=Machine -HumanMachine=Human / Machine -WorkstationArea=Workstation area -Machines=Machines -THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item -BOM=Bill Of Materials -CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module -MOAndLines=Manufacturing Orders and lines +NbOperatorsRequired=عدد المشغلين المطلوب +THMOperatorEstimated=المشغل المقدر THM +THMMachineEstimated=آلة تقدير THM +WorkstationType=نوع محطة العمل +Human=بشر +Machine=آلة +HumanMachine=الإنسان / الآلة +WorkstationArea=منطقة محطة العمل +Machines=الآلات +THMEstimatedHelp=هذا المعدل يجعل من الممكن تحديد التكلفة المتوقعة للصنف +BOM=فاتورة المواد +CollapseBOMHelp=يمكنك تحديد العرض الافتراضي لتفاصيل التسمية في تكوين وحدة قائمة المواد +MOAndLines=أوامر التصنيع والخطوط +MoChildGenerate=توليد الطفل Mo +ParentMo=أحد الوالدين MO +MOChild=طفل مو +BomCantAddChildBom=The nomenclature %s is already present in the tree leading to the nomenclature %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=BOM's products +BOMServicesList=BOM's services diff --git a/htdocs/langs/ar_SA/multicurrency.lang b/htdocs/langs/ar_SA/multicurrency.lang index bfcbd11fb7c..c5d2eb19b62 100644 --- a/htdocs/langs/ar_SA/multicurrency.lang +++ b/htdocs/langs/ar_SA/multicurrency.lang @@ -1,22 +1,38 @@ # Dolibarr language file - Source file is en_US - multicurrency -MultiCurrency=Multi currency -ErrorAddRateFail=Error in added rate -ErrorAddCurrencyFail=Error in added currency -ErrorDeleteCurrencyFail=Error delete fail -multicurrency_syncronize_error=Synchronization error: %s -MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use the date of the document to find the currency rate, instead of using the latest known rate -multicurrency_useOriginTx=When an object is created from another, keep the original rate from the source object (otherwise use the latest known rate) +MultiCurrency=متعدد العملات +ErrorAddRateFail=خطأ في المعدل المضاف +ErrorAddCurrencyFail=خطأ في العملة المضافة +ErrorDeleteCurrencyFail=خطأ حذف فشل +multicurrency_syncronize_error=خطأ التزامن: %s +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=استخدم تاريخ المستند للعثور على سعر العملة ، بدلاً من استخدام أحدث سعر معروف +multicurrency_useOriginTx=عندما يتم إنشاء كائن من كائن آخر ، احتفظ بالمعدل الأصلي من الكائن المصدر (وإلا استخدم أحدث معدل معروف) CurrencyLayerAccount=CurrencyLayer API -CurrencyLayerAccount_help_to_synchronize=You must create an account on website %s to use this functionality.
Get your API key.
If you use a free account, you can't change the source currency (USD by default).
If your main currency is not USD, the application will automatically recalculate it.

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

أنت مقيد بـ 1000 مزامنة شهريًا. +multicurrency_appId=مفتاح API +multicurrency_appCurrencySource=عملة المصدر +multicurrency_alternateCurrencySource=عملة المصدر البديلة +CurrenciesUsed=العملات المستخدمة +CurrenciesUsed_help_to_add=أضف العملات والأسعار المختلفة التي تحتاج إلى استخدامها في طلبات الخاصة بك ، ، الطلبات إلخ. +rate=معدل +MulticurrencyReceived=العملة الأصلية المستلمة +MulticurrencyRemainderToTake=المبلغ المتبقي ، العملة الأصلية +MulticurrencyPaymentAmount=المبلغ المدفوع ، العملة الأصلية +AmountToOthercurrency=المبلغ إلى (بعملة حساب الاستقبال) +CurrencyRateSyncSucceed=تمت مزامنة سعر العملة بنجاح +MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=استخدم عملة المستند للمدفوعات عبر الإنترنت +TabTitleMulticurrencyRate=قائمة الأسعار +ListCurrencyRate=قائمة أسعار الصرف للعملة +CreateRate=إنشاء معدل +FormCreateRate=معدل الخلق +FormUpdateRate=تعديل معدل +successRateCreate=تمت إضافة سعر العملة %s إلى قاعدة البيانات +ConfirmDeleteLineRate=هل أنت متأكد من أنك تريد إزالة سعر %s للعملة %s في تاريخ %s؟ +DeleteLineRate=معدل واضح +successRateDelete=معدل حذف +errorRateDelete=خطأ عند حذف السعر +successUpdateRate=تم التعديل +ErrorUpdateRate=خطأ عند تغيير المعدل +Codemulticurrency=رمز العملة +UpdateRate=تغيير المعدل +CancelUpdate=إلغاء +NoEmptyRate=يجب ألا يكون حقل السعر فارغًا diff --git a/htdocs/langs/ar_SA/opensurvey.lang b/htdocs/langs/ar_SA/opensurvey.lang index c2dbbc9fc4b..024d4ac0344 100644 --- a/htdocs/langs/ar_SA/opensurvey.lang +++ b/htdocs/langs/ar_SA/opensurvey.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - opensurvey Survey=تصويت Surveys=استطلاعات الرأي -OrganizeYourMeetingEasily=Organize your meetings and polls easily. First select the type of poll... +OrganizeYourMeetingEasily=تنظيم اجتماعاتك واستطلاعات الرأي بسهولة. حدد أولاً نوع الاستطلاع ... NewSurvey=استطلاع جديد OpenSurveyArea=منطقة استطلاعات الرأي AddACommentForPoll=يمكنك إضافة تعليق إلى استطلاع ... @@ -11,7 +11,7 @@ PollTitle=عنوان الإستطلاع ToReceiveEMailForEachVote=تتلقى رسالة بريد إلكتروني لكل صوت TypeDate=تاريخ نوع TypeClassic=نوع القياسية -OpenSurveyStep2=Select your dates among the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it +OpenSurveyStep2=حدد التواريخ من بين الأيام المجانية (باللون الرمادي). الأيام المختارة خضراء. يمكنك إلغاء تحديد اليوم المحدد مسبقًا بالنقر فوقه مرة أخرى RemoveAllDays=إزالة جميع أيام CopyHoursOfFirstDay=نسخة ساعات من اليوم الأول RemoveAllHours=إزالة كل ساعة @@ -35,7 +35,7 @@ TitleChoice=تسمية الاختيار ExportSpreadsheet=نتيجة تصدير جدول ExpireDate=الحد من التاريخ NbOfSurveys=عدد من استطلاعات الرأي -NbOfVoters=No. of voters +NbOfVoters=عدد الناخبين SurveyResults=النتائج PollAdminDesc=يسمح لك بتغيير جميع خطوط التصويت على هذا الاستطلاع مع زر "تحرير". يمكنك، أيضا، إزالة عمود أو خط مع٪ الصورة. يمكنك أيضا إضافة عمود جديد مع٪ الصورة. 5MoreChoices=5 المزيد من الخيارات @@ -48,16 +48,16 @@ AddEndHour=إضافة نهاية ساعة votes=التصويت (ق) NoCommentYet=لم يتم نشر تعليقات لهذا الاستطلاع حتى الآن CanComment=يمكن للناخبين التعليق في استطلاع -YourVoteIsPrivate=This poll is private, nobody can see your vote. -YourVoteIsPublic=This poll is public, anybody with the link can see your vote. +YourVoteIsPrivate=هذا الاستطلاع خاص ، لا أحد يستطيع رؤية تصويتك. +YourVoteIsPublic=هذا الاستطلاع عام ، ويمكن لأي شخص لديه الرابط رؤية تصويتك. CanSeeOthersVote=يمكن للناخبين التصويت يرى الآخرين -SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format:
- empty,
- "8h", "8H" or "8:00" to give a meeting's start hour,
- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,
- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. +SelectDayDesc=لكل يوم محدد ، يمكنك اختيار أو عدم اختيار ساعات الاجتماع بالتنسيق التالي:
- فارغ ،
- "8h" أو "8H" أو "8:00" لإعطاء ساعة بدء الاجتماع ،
- "8- 11 "أو" 8h-11h "أو" 8H-11H "أو" 8: 00-11: 00 "لإعطاء ساعة بداية الاجتماع وانتهائه ،
-" 8h15-11h15 "أو" 8H15-11H15 "أو" 8: 15-11: 15 "لنفس الشيء لكن مع دقائق. BackToCurrentMonth=العودة إلى الشهر الحالي ErrorOpenSurveyFillFirstSection=هل لا شغل في القسم الأول من إنشاء الإستطلاع ErrorOpenSurveyOneChoice=أدخل خيار واحد على الأقل ErrorInsertingComment=كان هناك خطأ أثناء إدخال تعليقك MoreChoices=إدخال المزيد من الخيارات للناخبين -SurveyExpiredInfo=The poll has been closed or voting delay has expired. +SurveyExpiredInfo=تم إغلاق الاستطلاع أو انتهاء صلاحية تأخير التصويت. EmailSomeoneVoted=قد ملأت%s خط. يمكنك العثور على استطلاع الرأي الخاص بك على الرابط:٪ الصورة -ShowSurvey=Show survey -UserMustBeSameThanUserUsedToVote=You must have voted and use the same user name that the one used to vote, to post a comment +ShowSurvey=إظهار الاستطلاع +UserMustBeSameThanUserUsedToVote=يجب أن تكون قد صوتت وتستخدم نفس اسم المستخدم الذي استخدمه الشخص للتصويت ، لنشر تعليق diff --git a/htdocs/langs/ar_SA/orders.lang b/htdocs/langs/ar_SA/orders.lang index 8618a7f1379..8f01cab8254 100644 --- a/htdocs/langs/ar_SA/orders.lang +++ b/htdocs/langs/ar_SA/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=تم بالفعل فتح أمر مرتبط بهذا الاقتراح ، لذلك لم يتم إنشاء أي أمر آخر تلقائيًا OrdersArea=منطقة أوامر العملاء SuppliersOrdersArea=منطقة أوامر الشراء OrderCard=بطاقة الامر @@ -17,7 +18,7 @@ ToOrder=قم بالامر MakeOrder=قم بالامر SupplierOrder=أمر شراء SuppliersOrders=اوامر الشراء -SaleOrderLines=Sales order lines +SaleOrderLines=سطور أوامر المبيعات PurchaseOrderLines=بنود امر الشراء SuppliersOrdersRunning=أوامر الشراء الحالية CustomerOrder=امر بيع @@ -68,6 +69,8 @@ CreateOrder=إنشاء أمر RefuseOrder=رفض الامر ApproveOrder=الموافقة على الامر Approve2Order=أمر الموافقة (المستوى الثاني) +UserApproval=مستخدم للموافقة عليه +UserApproval2=مستخدم للموافقة (المستوى الثاني) ValidateOrder=اعتماد الامر UnvalidateOrder=عدم اعتماد الامر DeleteOrder=حذف الامر @@ -102,6 +105,8 @@ ConfirmCancelOrder=هل أنت متأكد أنك تريد إلغاء هذا ال ConfirmMakeOrder=هل تريد بالتأكيد تأكيد قيامك بهذا الطلب على %s ؟ GenerateBill=توليد الفاتورة ClassifyShipped=تصنيف تسليمها +PassedInShippedStatus=تسليم مصنفة +YouCantShipThis=لا يمكنني تصنيف هذا. يرجى التحقق من أذونات المستخدم DraftOrders=مسودة أوامر DraftSuppliersOrders=مسودة أوامر الشراء OnProcessOrders=أوامر قيد المعالجة @@ -124,8 +129,8 @@ SupplierOrderReceivedInDolibarr=أمر الشراء %s استلم %s SupplierOrderSubmitedInDolibarr=تم تقديم امر الشراء %s SupplierOrderClassifiedBilled=امر الشراء %s فى وضع فوترة OtherOrders=أوامر أخرى -SupplierOrderValidatedAndApproved=Supplier order is validated and approved : %s -SupplierOrderValidated=Supplier order is validated : %s +SupplierOrderValidatedAndApproved=تم التحقق من صحة طلب المورد واعتماده: %s +SupplierOrderValidated=تم التحقق من صحة طلب المورد: %s ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=مندوب متابعة أوامر البيع TypeContact_commande_internal_SHIPPING=مندوب متابعة الشحن @@ -153,7 +158,7 @@ PDFEdisonDescription=نموذج امر بسيط PDFProformaDescription=نموذج فاتورة أولية كامل CreateInvoiceForThisCustomer=فوترة الامر CreateInvoiceForThisSupplier=فوترة الامر -CreateInvoiceForThisReceptions=Bill receptions +CreateInvoiceForThisReceptions=استقبال الفواتير NoOrdersToInvoice=لا أوامر للفوترة CloseProcessedOrdersAutomatically=تصنيف "تمت معالجتها" جميع الاوامر المحددة. OrderCreation=إنشاء الامر diff --git a/htdocs/langs/ar_SA/partnership.lang b/htdocs/langs/ar_SA/partnership.lang index fb8315f25bd..c1fd7b31d30 100644 --- a/htdocs/langs/ar_SA/partnership.lang +++ b/htdocs/langs/ar_SA/partnership.lang @@ -19,15 +19,17 @@ ModulePartnershipName=إدارة الشراكة PartnershipDescription=وحدة إدارة الشراكة PartnershipDescriptionLong= وحدة إدارة الشراكة -Partnership=Partnership -AddPartnership=Add partnership -CancelPartnershipForExpiredMembers=Partnership: Cancel partnership of members with expired subscriptions -PartnershipCheckBacklink=Partnership: Check referring backlink +Partnership=شراكة +Partnerships=Partnerships +AddPartnership=أضف شراكة +CancelPartnershipForExpiredMembers=الشراكة: إلغاء شراكة الأعضاء المنتهية صلاحيتها +PartnershipCheckBacklink=الشراكة: تحقق من إحالة الروابط الخلفية # # Menu # NewPartnership=شراكة جديدة +NewPartnershipbyWeb= Your partnership was added successfully. ListOfPartnerships=قائمة الشراكات # @@ -36,57 +38,59 @@ ListOfPartnerships=قائمة الشراكات PartnershipSetup=إعدادات الشراكة PartnershipAbout=حول الشراكة PartnershipAboutPage=صفحة حول الشراكة -partnershipforthirdpartyormember=Partner status must be set on a 'thirdparty' or a 'member' -PARTNERSHIP_IS_MANAGED_FOR=Partnership managed for -PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks to check -PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb of days before cancelling status of a partnership when a subscription has expired -ReferingWebsiteCheck=Check of website referring -ReferingWebsiteCheckDesc=You can enable a feature to check that your partners has added a backlink to your website domains on their own website. +partnershipforthirdpartyormember=يجب تعيين حالة الشريك على "طرف ثالث" أو "عضو" +PARTNERSHIP_IS_MANAGED_FOR=إدارة الشراكة لـ +PARTNERSHIP_BACKLINKS_TO_CHECK=الروابط الخلفية المراد التحقق منها +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=عدد الأيام قبل إلغاء حالة الشراكة عند انتهاء صلاحية الاشتراك +ReferingWebsiteCheck=تحقق من إحالة الموقع +ReferingWebsiteCheckDesc=يمكنك تمكين ميزة للتحقق من أن شركائك قد أضافوا رابطًا خلفيًا إلى مجالات موقع الويب الخاص بك على موقع الويب الخاص بهم. +PublicFormRegistrationPartnerDesc=يمكن أن توفر لك Dolibarr عنوان URL / موقع ويب عام للسماح للزوار الخارجيين بطلب الانضمام إلى برنامج الشراكة. # # Object # -DeletePartnership=Delete a partnership -PartnershipDedicatedToThisThirdParty=Partnership dedicated to this third party -PartnershipDedicatedToThisMember=Partnership dedicated to this member +DeletePartnership=حذف شراكة +PartnershipDedicatedToThisThirdParty=شراكة مخصصة لهذا الطرف الثالث +PartnershipDedicatedToThisMember=شراكة مكرسة لهذا العضو DatePartnershipStart=تاريخ البدء DatePartnershipEnd=تاريخ الانتهاء -ReasonDecline=Decline reason -ReasonDeclineOrCancel=Decline reason -PartnershipAlreadyExist=Partnership already exist -ManagePartnership=Manage partnership -BacklinkNotFoundOnPartnerWebsite=Backlink not found on partner website -ConfirmClosePartnershipAsk=Are you sure you want to cancel this partnership? -PartnershipType=Partnership type -PartnershipRefApproved=Partnership %s approved - -# -# Template Mail -# -SendingEmailOnPartnershipWillSoonBeCanceled=Partnership will soon be canceled -SendingEmailOnPartnershipRefused=Partnership refused -SendingEmailOnPartnershipAccepted=Partnership accepted -SendingEmailOnPartnershipCanceled=Partnership canceled - -YourPartnershipWillSoonBeCanceledTopic=Partnership will soon be canceled -YourPartnershipRefusedTopic=Partnership refused -YourPartnershipAcceptedTopic=Partnership accepted -YourPartnershipCanceledTopic=Partnership canceled - -YourPartnershipWillSoonBeCanceledContent=We inform you that your partnership will soon be canceled (Backlink not found) -YourPartnershipRefusedContent=We inform you that your partnership request has been refused. -YourPartnershipAcceptedContent=We inform you that your partnership request has been accepted. -YourPartnershipCanceledContent=We inform you that your partnership has been canceled. - -CountLastUrlCheckError=Number of errors for last URL check -LastCheckBacklink=Date of last URL check -ReasonDeclineOrCancel=Decline reason - -# -# Status -# +ReasonDecline=سبب الرفض +ReasonDeclineOrCancel=سبب الرفض +PartnershipAlreadyExist=الشراكة موجودة بالفعل +ManagePartnership=إدارة الشراكة +BacklinkNotFoundOnPartnerWebsite=الرابط الخلفي غير موجود على موقع الشريك +ConfirmClosePartnershipAsk=هل أنت متأكد أنك تريد إلغاء هذه الشراكة؟ +PartnershipType=نوع الشراكة +PartnershipRefApproved=تمت الموافقة على الشراكة %s +KeywordToCheckInWebsite=إذا كنت تريد التحقق من وجود كلمة رئيسية معينة في موقع الويب الخاص بكل شريك ، فحدد هذه الكلمة الأساسية هنا PartnershipDraft=حوالة مصرفية PartnershipAccepted=قبلت PartnershipRefused=رفض PartnershipCanceled=ملغي PartnershipManagedFor=الشركاء هم + +# +# Template Mail +# +SendingEmailOnPartnershipWillSoonBeCanceled=سيتم إلغاء الشراكة قريبًا +SendingEmailOnPartnershipRefused=رفضت الشراكة +SendingEmailOnPartnershipAccepted=قبلت الشراكة +SendingEmailOnPartnershipCanceled=تم إلغاء الشراكة + +YourPartnershipWillSoonBeCanceledTopic=سيتم إلغاء الشراكة قريبًا +YourPartnershipRefusedTopic=رفضت الشراكة +YourPartnershipAcceptedTopic=قبلت الشراكة +YourPartnershipCanceledTopic=تم إلغاء الشراكة + +YourPartnershipWillSoonBeCanceledContent=نعلمك أنه سيتم إلغاء شراكتك قريبًا (لم يتم العثور على Backlink) +YourPartnershipRefusedContent=نعلمك أنه تم رفض طلب الشراكة الخاص بك. +YourPartnershipAcceptedContent=نعلمك أنه تم قبول طلب الشراكة الخاص بك. +YourPartnershipCanceledContent=نعلمك أنه تم إلغاء شراكتك. + +CountLastUrlCheckError=عدد الأخطاء الخاصة بآخر فحص لعنوان URL +LastCheckBacklink=تاريخ آخر فحص لعنوان URL +ReasonDeclineOrCancel=سبب الرفض + +NewPartnershipRequest=طلب شراكة جديد +NewPartnershipRequestDesc=يسمح لك هذا النموذج بطلب أن تكون جزءًا من أحد برامج الشراكة الخاصة بنا. إذا كنت بحاجة إلى مساعدة لملء هذا النموذج ، فيرجى الاتصال عبر البريد الإلكتروني %s . + diff --git a/htdocs/langs/ar_SA/paybox.lang b/htdocs/langs/ar_SA/paybox.lang index fc28a4d1f3c..f17ca026b2a 100644 --- a/htdocs/langs/ar_SA/paybox.lang +++ b/htdocs/langs/ar_SA/paybox.lang @@ -1,31 +1,30 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=إعداد وحدة PayBox -PayBoxDesc=تعرض صفحات نموذج الوحدة هذه الدفعات على Paybox من قبل العملاء. هذا يمكن استخدامها للدفع مجانا أو للدفع على عنصر دوليبار معين (الفاتورة، طلب، ...) +PayBoxDesc=تقدم هذه الوحدة صفحات للسماح بالدفع على Paybox من قبل العملاء. يمكن استخدام هذا للدفع المجاني أو للدفع على شيء Dolibarr معين (فاتورة ، أمر ، ...) FollowingUrlAreAvailableToMakePayments=تتوفر عناوين URL التالية لتقديم صفحة إلى عميل لإجراء دفعة على عناصر دوليبار PaymentForm=نموذج الدفع -WelcomeOnPaymentPage=Welcome to our online payment service +WelcomeOnPaymentPage=مرحبًا بك في خدمة الدفع عبر الإنترنت ThisScreenAllowsYouToPay=هذه الشاشة تسمح لك بإجراء الدفع عبر الإنترنت إلى %s. ThisIsInformationOnPayment=هذه هي معلومات عن الدفع للقيام به ToComplete=لإكمال YourEMail=البريد الإلكتروني لتلقي تأكيد الدفع Creditor=دائن PaymentCode=رمز الدفع -PayBoxDoPayment=Pay with Paybox +PayBoxDoPayment=ادفع باستخدام Paybox YouWillBeRedirectedOnPayBox=سيتم إعادة توجيهك على صفحة Paybox الأمنة لإدخال معلومات بطاقة الائتمان الخاصة بك Continue=التالي -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url %s to have payment created automatically when validated by Paybox. +SetupPayBoxToHavePaymentCreatedAutomatically=قم بإعداد Paybox الخاص بك بعنوان url %s حتى يتم إنشاء الدفع تلقائيًا عند التحقق من صحته بواسطة Paybox. YourPaymentHasBeenRecorded=تؤكد هذه الصفحة أنه قد تم تسجيل دفعتك. شكرا لكم. -YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you. +YourPaymentHasNotBeenRecorded=لم يتم تسجيل دفعتك وتم إلغاء المعاملة. شكرًا لك. AccountParameter=معلمات الحساب UsageParameter=معلمات الاستخدام InformationToFindParameters=مساعدة للعثور على معلومات الحساب الخاص بك %s PAYBOX_CGI_URL_V2=Url من Paybox CGI وحدة للدفع -VendorName=اسم البائع CSSUrlForPaymentForm=CSS style sheet url لنموذج الدفع NewPayboxPaymentReceived=تلقى الدفع Paybox الجديد NewPayboxPaymentFailed=دفع Paybox جديد حاول ولكنه فشل -PAYBOX_PAYONLINE_SENDEMAIL=Email notification after payment attempt (success or fail) +PAYBOX_PAYONLINE_SENDEMAIL=إشعار بالبريد الإلكتروني بعد محاولة الدفع (نجاح أو فشل) PAYBOX_PBX_SITE=قيمة PBX SITE PAYBOX_PBX_RANG=قيمة PBX رانج PAYBOX_PBX_IDENTIFIANT=قيمة PBX ID -PAYBOX_HMAC_KEY=HMAC key +PAYBOX_HMAC_KEY=مفتاح HMAC diff --git a/htdocs/langs/ar_SA/printing.lang b/htdocs/langs/ar_SA/printing.lang index 01b13693845..9f6cf3a34ab 100644 --- a/htdocs/langs/ar_SA/printing.lang +++ b/htdocs/langs/ar_SA/printing.lang @@ -10,7 +10,7 @@ ListDrivers=قائمة برامج التشغيل PrintTestDesc=قائمة الطابعات. FileWasSentToPrinter=وأرسل ملف٪ s إلى طابعة ViaModule=عبر الوحدة -NoActivePrintingModuleFound=No active driver to print document. Check setup of module %s. +NoActivePrintingModuleFound=لا يوجد برنامج تشغيل نشط لطباعة الوثيقة. تحقق من إعداد الوحدة النمطية %s. PleaseSelectaDriverfromList=يرجى تحديد برنامج تشغيل من القائمة. PleaseConfigureDriverfromList=يرجى تكوين برنامج التشغيل المحدد من القائمة. SetupDriver=إعداد برنامج التشغيل @@ -19,7 +19,7 @@ UserConf=الإعداد لكل مستخدم PRINTGCP_INFO=جوجل أوث الإعداد API PRINTGCP_AUTHLINK=المصادقة PRINTGCP_TOKEN_ACCESS=جوجل الغيمة طباعة أوث رمز -PrintGCPDesc=This driver allows sending documents directly to a printer using Google Cloud Print. +PrintGCPDesc=يسمح برنامج التشغيل هذا بإرسال المستندات مباشرة إلى الطابعة باستخدام الطباعة في السحاب من Google. GCP_Name=اسم GCP_displayName=اسم العرض GCP_Id=طابعة معرف @@ -27,7 +27,7 @@ GCP_OwnerName=اسم المالك GCP_State=الدولة طابعة GCP_connectionStatus=الدولة عبر الإنترنت GCP_Type=نوع الطابعة -PrintIPPDesc=This driver allows sending of documents directly to a printer. It requires a Linux system with CUPS installed. +PrintIPPDesc=يسمح برنامج التشغيل هذا بإرسال المستندات مباشرة إلى الطابعة. يتطلب نظام Linux مثبتًا عليه CUPS. PRINTIPP_HOST=ملقم الطباعة PRINTIPP_PORT=ميناء PRINTIPP_USER=تسجيل الدخول @@ -46,9 +46,9 @@ IPP_Device=جهاز IPP_Media=وسائل الإعلام طابعة IPP_Supported=نوع من وسائل الإعلام DirectPrintingJobsDesc=هذا عمل القوائم صفحة الطباعة تم العثور عليها ل الطابعات المتوفرة. -GoogleAuthNotConfigured=Google OAuth has not been setup. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +GoogleAuthNotConfigured=لم يتم إعداد Google OAuth. تمكين الوحدة النمطية OAuth وتعيين معرف / سر Google. +GoogleAuthConfigured=تم العثور على بيانات اعتماد Google OAuth في إعداد وحدة OAuth. PrintingDriverDescprintgcp=المتغيرات التكوين للسائق الطباعة في السحاب من Google طباعة. -PrintingDriverDescprintipp=Configuration variables for printing driver Cups. +PrintingDriverDescprintipp=متغيرات التكوين لطباعة أكواب السائق. PrintTestDescprintgcp=قائمة طابعات جوجل الغيمة طباعة. -PrintTestDescprintipp=List of Printers for Cups. +PrintTestDescprintipp=قائمة طابعات الكؤوس. diff --git a/htdocs/langs/ar_SA/productbatch.lang b/htdocs/langs/ar_SA/productbatch.lang index 529f7a6f6f4..303ae6e9ce8 100644 --- a/htdocs/langs/ar_SA/productbatch.lang +++ b/htdocs/langs/ar_SA/productbatch.lang @@ -17,29 +17,31 @@ printBatch=الكثير / التسلسلي:٪ الصورة printEatby=تناول الطعام عن طريق:٪ الصورة printSellby=بيع عن طريق:٪ الصورة printQty=الكمية:٪ د +printPlannedWarehouse=المخازن AddDispatchBatchLine=إضافة سطر لالصلاحية إيفاد -WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic stock decrease is forced to 'Decrease real stocks on shipping validation' and automatic increase mode is forced to 'Increase real stocks on manual dispatching into warehouses' and can't be edited. Other options can be defined as you want. +WhenProductBatchModuleOnOptionAreForced=عندما تكون دفعة الوحدة / المسلسل قيد التشغيل ، يتم إجبار خفض المخزون التلقائي على "تقليل المخزونات الحقيقية عند التحقق من صحة الشحن" ويتم فرض وضع الزيادة التلقائية على "زيادة المخزونات الحقيقية في الإرسال اليدوي إلى المستودعات" ولا يمكن تحريرها. يمكن تحديد الخيارات الأخرى كما تريد. ProductDoesNotUseBatchSerial=هذا المنتج لا يستخدم الكثير / الرقم التسلسلي ProductLotSetup=إعدادات الحصة / الرقم التسلسلي ShowCurrentStockOfLot=عرض المخزون الحالي للمنتجات/الحصص. ShowLogOfMovementIfLot=عرض سجل الحركات للمنتجات/ الحصص . StockDetailPerBatch=تفاصيل المخزون لكل قطعة SerialNumberAlreadyInUse=الرقم التسلسلي %s مستخدم للمنتج %s -TooManyQtyForSerialNumber=You can only have one product %s for serial number %s +TooManyQtyForSerialNumber=يمكنك الحصول على منتج واحد فقط %s للرقم التسلسلي %s ManageLotMask=قناع مخصص -CustomMasks=Option to define a different numbering mask for each product -BatchLotNumberingModules=Numbering rule for automatic generation of lot number -BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product) -QtyToAddAfterBarcodeScan=Qty to %s for each barcode/lot/serial scanned +CustomMasks=خيار لتحديد قناع ترقيم مختلف لكل منتج +BatchLotNumberingModules=قاعدة الترقيم للإنشاء التلقائي لرقم التشغيلة +BatchSerialNumberingModules=قاعدة الترقيم للإنشاء التلقائي للرقم التسلسلي (للمنتجات ذات الخاصية 1 دفعة / مسلسل فريد لكل منتج) +QtyToAddAfterBarcodeScan=الكمية إلى %s لكل رمز شريطي / مجموعة / مسلسل تم مسحه ضوئيًا LifeTime=المدة (بالأيام) EndOfLife=نهاية المدة ManufacturingDate=تاريخ التصنيع DestructionDate=تاريخ التدمير FirstUseDate=تاريخ أول استخدام -QCFrequency=Quality control frequency (in days) -ShowAllLots=Show all lots -HideLots=Hide lots +QCFrequency=تردد مراقبة الجودة (بالأيام) +ShowAllLots=عرض كل القطع +HideLots=إخفاء الكثير #Traceability - qc status -OutOfOrder=Out of order -InWorkingOrder=In working order -ToReplace=Replace +OutOfOrder=خارج عن السيطرة +InWorkingOrder=عمل الأمر بسلاسة +ToReplace=يحل محل +CantMoveNonExistantSerial=خطأ. أنت تطلب نقلًا على سجل لمسلسل لم يعد موجودًا بعد الآن. قد تأخذ نفس المسلسل في نفس المستودع عدة مرات في نفس الشحنة أو تم استخدامه بواسطة شحنة أخرى. قم بإزالة هذه الشحنة وإعداد واحدة أخرى. diff --git a/htdocs/langs/ar_SA/products.lang b/htdocs/langs/ar_SA/products.lang index bda51095681..347f5ba892e 100644 --- a/htdocs/langs/ar_SA/products.lang +++ b/htdocs/langs/ar_SA/products.lang @@ -2,7 +2,7 @@ ProductRef=مرجع المنتج ProductLabel=وصف المنتج ProductLabelTranslated=تسمية المنتج مترجمة -ProductDescription=Product description +ProductDescription=وصف المنتج ProductDescriptionTranslated=ترجمة وصف المنتج ProductNoteTranslated=ترجمة مذكرة المنتج ProductServiceCard=منتجات / بطاقة الخدمات @@ -17,43 +17,43 @@ Create=إنشاء Reference=المرجع NewProduct=منتج جديد NewService=خدمة جديدة -ProductVatMassChange=Global VAT Update -ProductVatMassChangeDesc=This tool updates the VAT rate defined on ALL products and services! +ProductVatMassChange=تحديث شامل لضريبة القيمة المضافة +ProductVatMassChangeDesc=تقوم هذه الأداة بتحديث معدل ضريبة القيمة المضافة المحدد في ALL المنتجات والخدمات! MassBarcodeInit=الحرف الأول الباركود الشامل MassBarcodeInitDesc=هذه الصفحة يمكن استخدامها لتهيئة الباركود على الكائنات التي لا يكون الباركود تعريف. تحقق قبل أن الإعداد وحدة الباركود كاملة. ProductAccountancyBuyCode=كود المحاسبة (شراء) -ProductAccountancyBuyIntraCode=Accounting code (purchase intra-community) -ProductAccountancyBuyExportCode=Accounting code (purchase import) +ProductAccountancyBuyIntraCode=كود المحاسبة (شراء داخل المجتمع) +ProductAccountancyBuyExportCode=كود المحاسبة (شراء استيراد) ProductAccountancySellCode=كود المحاسبة (بيع) -ProductAccountancySellIntraCode=Accounting code (sale intra-Community) -ProductAccountancySellExportCode=Accounting code (sale export) +ProductAccountancySellIntraCode=كود المحاسبة (البيع داخل المجتمع) +ProductAccountancySellExportCode=كود المحاسبة (بيع تصدير) ProductOrService=المنتج أو الخدمة ProductsAndServices=المنتجات والخدمات ProductsOrServices=منتجات أو خدمات -ProductsPipeServices=Products | Services -ProductsOnSale=Products for sale -ProductsOnPurchase=Products for purchase -ProductsOnSaleOnly=Products for sale only -ProductsOnPurchaseOnly=Products for purchase only +ProductsPipeServices=المنتجات | خدمات +ProductsOnSale=منتجات للبيع +ProductsOnPurchase=منتجات للشراء +ProductsOnSaleOnly=منتجات للبيع فقط +ProductsOnPurchaseOnly=منتجات للشراء فقط ProductsNotOnSell=منتجات ليست للبيع ولا الشراء ProductsOnSellAndOnBuy=المنتجات للبيع والشراء -ServicesOnSale=Services for sale -ServicesOnPurchase=Services for purchase -ServicesOnSaleOnly=Services for sale only -ServicesOnPurchaseOnly=Services for purchase only +ServicesOnSale=خدمات للبيع +ServicesOnPurchase=خدمات للشراء +ServicesOnSaleOnly=خدمات للبيع فقط +ServicesOnPurchaseOnly=خدمات للشراء فقط ServicesNotOnSell=خدمات ليست للبيع ولا الشراء ServicesOnSellAndOnBuy=خدمات للبيع والشراء -LastModifiedProductsAndServices=Latest %s products/services which were modified -LastRecordedProducts=Latest %s recorded products -LastRecordedServices=Latest %s recorded services +LastModifiedProductsAndServices=أحدث منتجات / خدمات %s التي تم تعديلها +LastRecordedProducts=أحدث المنتجات المسجلة %s +LastRecordedServices=أحدث الخدمات المسجلة %s CardProduct0=المنتج CardProduct1=الخدمة Stock=المخزون MenuStocks=المخزون -Stocks=Stocks and location (warehouse) of products +Stocks=المخزون وموقع (المستودع) للمنتجات Movements=حركات Sell=يبيع -Buy=Purchase +Buy=شراء OnSell=متاح للبيع OnBuy=للشراء NotOnSell=ليس للبيع @@ -68,19 +68,19 @@ ProductStatusNotOnBuyShort=ليس للشراء UpdateVAT=تحديث الضريبة على القيمة المضافة UpdateDefaultPrice=تحديث السعر الافتراضي UpdateLevelPrices=أسعار التحديث لكل مستوى -AppliedPricesFrom=Applied from +AppliedPricesFrom=تطبق من SellingPrice=سعر البيع -SellingPriceHT=Selling price (excl. tax) +SellingPriceHT=سعر البيع (بدون الضريبة) SellingPriceTTC=سعر البيع (شامل الضريبية) -SellingMinPriceTTC=Minimum Selling price (inc. tax) -CostPriceDescription=This price field (excl. tax) can be used to capture the average amount this product costs to your company. It may be any price you calculate yourself, for example, from the average buying price plus average production and distribution cost. -CostPriceUsage=This value could be used for margin calculation. -ManufacturingPrice=Manufacturing price -SoldAmount=Sold amount -PurchasedAmount=Purchased amount +SellingMinPriceTTC=الحد الأدنى لسعر البيع (شامل الضريبة) +CostPriceDescription=يمكن استخدام حقل السعر هذا (باستثناء الضريبة) لتسجيل متوسط المبلغ الذي يكلفه هذا المنتج لشركتك. قد يكون أي سعر تحسبه بنفسك ، على سبيل المثال ، من متوسط سعر الشراء بالإضافة إلى متوسط تكلفة الإنتاج والتوزيع. +CostPriceUsage=يمكن استخدام هذه القيمة لحساب الهامش. +ManufacturingPrice=سعر التصنيع +SoldAmount=المبلغ المباع +PurchasedAmount=الكمية المشتراة NewPrice=السعر الجديد -MinPrice=Min. selling price -EditSellingPriceLabel=Edit selling price label +MinPrice=دقيقة. سعر البيع +EditSellingPriceLabel=تحرير تسمية سعر البيع CantBeLessThanMinPrice=سعر البيع لا يمكن أن يكون أقل من الحد الأدنى المسموح لهذا المنتج (٪ ق بدون الضرائب) ContractStatusClosed=مغلق ErrorProductAlreadyExists=المنتج ذو المرجع %sموجود بالفعل. @@ -88,7 +88,7 @@ ErrorProductBadRefOrLabel=قيمة خاطئة لـ مرجع أو ملصق. ErrorProductClone=كان هناك مشكلة أثناء محاولة استنساخ المنتج أو الخدمة. ErrorPriceCantBeLowerThanMinPrice=خطأ، سعر لا يمكن أن يكون أقل من الحد الأدنى السعر. Suppliers=الموردين -SupplierRef=Vendor SKU +SupplierRef=البائع SKU ShowProduct=عرض المنتج ShowService=عرض الخدمة ProductsAndServicesArea=منطقة المنتجات والخدمات @@ -97,7 +97,7 @@ ServicesArea=منطقة الخدمات ListOfStockMovements=قائمة الحركات المخزون BuyingPrice=سعر الشراء PriceForEachProduct=المنتجات بأسعار محددة -SupplierCard=Vendor card +SupplierCard=بطاقة البائع PriceRemoved=تمت إزالة السعر BarCode=الباركود BarcodeType=نوع الباركود @@ -105,25 +105,25 @@ SetDefaultBarcodeType=حدد نوع الباركود BarcodeValue=قيمة الباركود NoteNotVisibleOnBill=ملحوظة(غيرمرئية على الفواتير والعروض...) ServiceLimitedDuration=إذا كان المنتج هو خدمة لفترة محدودة : -FillWithLastServiceDates=Fill with last service line dates -MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment) +FillWithLastServiceDates=املأ بتاريخ آخر سطر خدمة +MultiPricesAbility=شرائح أسعار متعددة لكل منتج / خدمة (كل عميل في شريحة سعر واحدة) MultiPricesNumPrices=عدد من السعر -DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices -AssociatedProductsAbility=Enable Kits (set of several products) -VariantsAbility=Enable Variants (variations of products, for example color, size) -AssociatedProducts=Kits -AssociatedProductsNumber=Number of products composing this kit +DefaultPriceType=أساس أسعار التخلف عن السداد (مع عدم وجود ضريبة) عند إضافة أسعار بيع جديدة +AssociatedProductsAbility=مجموعات التمكين (مجموعة من عدة منتجات) +VariantsAbility=تمكين المتغيرات (أشكال المنتجات ، على سبيل المثال اللون والحجم) +AssociatedProducts=أطقم +AssociatedProductsNumber=عدد المنتجات المكونة لهذه المجموعة ParentProductsNumber=عدد منتج التعبئة الاب -ParentProducts=Parent products -IfZeroItIsNotAVirtualProduct=If 0, this product is not a kit -IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any kit +ParentProducts=المنتجات الأم +IfZeroItIsNotAVirtualProduct=إذا كانت القيمة 0 ، فهذا المنتج ليس مجموعة +IfZeroItIsNotUsedByVirtualProduct=إذا كانت القيمة 0 ، فلا تستخدم أي مجموعة هذا المنتج KeywordFilter=فلتر الكلمة المقتاحية CategoryFilter=فلتر التصنيف ProductToAddSearch= إبحث عن منتج لإضافتة NoMatchFound=لا يوجد نتائج متطابقة -ListOfProductsServices=List of products/services -ProductAssociationList=List of products/services that are component(s) of this kit -ProductParentList=List of kits with this product as a component +ListOfProductsServices=قائمة المنتجات / الخدمات +ProductAssociationList=قائمة المنتجات / الخدمات المكونة (مكونات) هذه المجموعة +ProductParentList=قائمة مجموعات مع هذا المنتج كمكون ErrorAssociationIsFatherOfThis=واحد من اختيار المنتج الأم الحالية المنتج DeleteProduct=حذف منتج / خدمة ConfirmDeleteProduct=هل أنت متأكد من حذف هذا المنتج / الخدمة؟ @@ -135,21 +135,22 @@ ImportDataset_service_1=الخدمات DeleteProductLine=حذف خط الإنتاج ConfirmDeleteProductLine=هل أنت متأكد من أنك تريد حذف خط الإنتاج؟ ProductSpecial=خاص -QtyMin=Min. purchase quantity -PriceQtyMin=Price quantity min. -PriceQtyMinCurrency=Price (currency) for this qty. (no discount) -VATRateForSupplierProduct=VAT Rate (for this vendor/product) -DiscountQtyMin=Discount for this qty. -NoPriceDefinedForThisSupplier=No price/qty defined for this vendor/product -NoSupplierPriceDefinedForThisProduct=No vendor price/qty defined for this product -PredefinedItem=Predefined item -PredefinedProductsToSell=Predefined Product -PredefinedServicesToSell=Predefined Service +QtyMin=دقيقة. كمية الشراء +PriceQtyMin=كمية السعر دقيقة. +PriceQtyMinCurrency=السعر (العملة) لهذه الكمية. +WithoutDiscount=بدون خصم +VATRateForSupplierProduct=معدل ضريبة القيمة المضافة (لهذا البائع / المنتج) +DiscountQtyMin=خصم على هذه الكمية. +NoPriceDefinedForThisSupplier=لم يتم تحديد سعر / كمية لهذا البائع / المنتج +NoSupplierPriceDefinedForThisProduct=لم يتم تحديد سعر البائع / الكمية لهذا المنتج +PredefinedItem=عنصر محدد مسبقًا +PredefinedProductsToSell=منتج محدد مسبقا +PredefinedServicesToSell=الخدمة المحددة مسبقًا PredefinedProductsAndServicesToSell=منتجات محددة مسبقا / خدمات للبيع PredefinedProductsToPurchase=المنتج مسبقا لشراء PredefinedServicesToPurchase=خدمات محددة مسبقا لشراء -PredefinedProductsAndServicesToPurchase=Predefined products/services to purchase -NotPredefinedProducts=Not predefined products/services +PredefinedProductsAndServicesToPurchase=المنتجات / الخدمات المحددة مسبقًا للشراء +NotPredefinedProducts=منتجات / خدمات غير محددة مسبقًا GenerateThumb=توليد صورة مصغرة ServiceNb=خدمة #%s ListProductServiceByPopularity=قائمة المنتجات / الخدمات حسب الشهرة @@ -158,25 +159,25 @@ ListServiceByPopularity=قائمة الخدمات بحسب الشهرة Finished=المنتجات المصنعة RowMaterial=المادة الخام ConfirmCloneProduct=هل انت متأكد انك ترغب في استنساخ المنتج/الخدمة %s؟ -CloneContentProduct=Clone all main information of the product/service -ClonePricesProduct=Clone prices -CloneCategoriesProduct=Clone linked tags/categories -CloneCompositionProduct=Clone virtual products/services -CloneCombinationsProduct=Clone the product variants +CloneContentProduct=استنساخ جميع المعلومات الرئيسية للمنتج / الخدمة +ClonePricesProduct=أسعار النسخ +CloneCategoriesProduct=استنساخ العلامات / الفئات المرتبطة +CloneCompositionProduct=استنساخ المنتجات / الخدمات الافتراضية +CloneCombinationsProduct=استنساخ متغيرات المنتج ProductIsUsed=هذا المنتج يتم استخدامة NewRefForClone=مرجع. المنتج/ الخدمة الجديدة  SellingPrices=أسعار بيع BuyingPrices=شراء أسعار CustomerPrices=أسعار العميل SuppliersPrices=أسعار المورد -SuppliersPricesOfProductsOrServices=Vendor prices (of products or services) -CustomCode=Customs|Commodity|HS code -CountryOrigin=Country of origin -RegionStateOrigin=Region of origin -StateOrigin=State|Province of origin -Nature=Nature of product (raw/manufactured) -NatureOfProductShort=Nature of product -NatureOfProductDesc=Raw material or manufactured product +SuppliersPricesOfProductsOrServices=أسعار البائعين (للمنتجات أو الخدمات) +CustomCode=الجمارك | السلع | رمز النظام المنسق +CountryOrigin=بلد المنشأ +RegionStateOrigin=منطقة المنشأ +StateOrigin=الولاية | مقاطعة المنشأ +Nature=طبيعة المنتج (خام / مصنع) +NatureOfProductShort=طبيعة المنتج +NatureOfProductDesc=المواد الخام أو المنتجات المصنعة ShortLabel=التسمية قصيرة Unit=وحدة p=ش. @@ -199,39 +200,39 @@ m2=متر مربع m3=متر مكعب liter=لتر l=L -unitP=Piece -unitSET=Set +unitP=قطعة +unitSET=تعيين unitS=الثاني unitH=ساعة unitD=يوم -unitG=Gram -unitM=Meter -unitLM=Linear meter -unitM2=Square meter -unitM3=Cubic meter -unitL=Liter -unitT=ton +unitG=غرام +unitM=متر +unitLM=متر طولي +unitM2=متر مربع +unitM3=متر مكعب +unitL=لتر +unitT=طن unitKG=كجم -unitG=Gram +unitG=غرام unitMG=مغلم unitLB=جنيه unitOZ=أوقية -unitM=Meter +unitM=متر unitDM=مارك ألماني unitCM=الطول unitMM=مم -unitFT=ft -unitIN=in -unitM2=Square meter +unitFT=قدم +unitIN=في +unitM2=متر مربع unitDM2=dm² unitCM2=سم ² unitMM2=مم ² unitFT2=قدم مربع unitIN2=in² -unitM3=Cubic meter +unitM3=متر مكعب unitDM3=dm³ -unitCM3=cm³ -unitMM3=mm³ +unitCM3=سم³ +unitMM3=مم³ unitFT3=ft³ unitIN3=في بوابة unitOZ3=أوقية @@ -242,15 +243,15 @@ CurrentProductPrice=السعر الحالي AlwaysUseNewPrice=دائما استخدم السعر الحالي للمنتج / الخدمة AlwaysUseFixedPrice=استخدم السعر الثابت PriceByQuantity=أسعار مختلفة حسب الكمية -DisablePriceByQty=Disable prices by quantity +DisablePriceByQty=تعطيل الأسعار بالكمية PriceByQuantityRange=مدى الكمية -MultipriceRules=Automatic prices for segment -UseMultipriceRules=Use price segment rules (defined into product module setup) to auto calculate prices of all other segments according to first segment +MultipriceRules=الأسعار التلقائية للقطاع +UseMultipriceRules=استخدم قواعد شريحة السعر (المحددة في إعداد وحدة المنتج) لحساب أسعار جميع الشرائح الأخرى تلقائيًا وفقًا للشريحة الأولى PercentVariationOver=٪٪ الاختلاف على الصورة٪ PercentDiscountOver=٪٪ خصم أكثر من٪ الصورة -KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products -VariantRefExample=Examples: COL, SIZE -VariantLabelExample=Examples: Color, Size +KeepEmptyForAutoCalculation=احتفظ به فارغًا ليتم حسابه تلقائيًا من وزن أو حجم المنتجات +VariantRefExample=أمثلة: COL ، SIZE +VariantLabelExample=أمثلة: اللون والحجم ### composition fabrication Build=إنتاج ProductsMultiPrice=المنتجات و الاسعار لكل شريحة @@ -261,153 +262,170 @@ Quarter1=الربع الإول Quarter2=الربع الثاني Quarter3=الربع الثالث Quarter4=الربع الرابع -BarCodePrintsheet=طباعة الباركود -PageToGenerateBarCodeSheets=With this tool, you can print sheets of barcode stickers. Choose format of your sticker page, type of barcode and value of barcode, then click on button %s. +BarCodePrintsheet=طباعة الرموز الشريطية +PageToGenerateBarCodeSheets=باستخدام هذه الأداة ، يمكنك طباعة أوراق ملصقات الباركود. اختر تنسيق صفحة الملصق ونوع الباركود وقيمة الباركود ، ثم انقر فوق الزر %s . NumberOfStickers=عدد من الملصقات للطباعة على الصفحة PrintsheetForOneBarCode=طباعة عدة ملصقات لالباركود واحد BuildPageToPrint=توليد صفحة للطباعة FillBarCodeTypeAndValueManually=ملء نوع وقيمة الباركود يدويا. FillBarCodeTypeAndValueFromProduct=ملء نوع وقيمة الباركود من باركود المنتج. FillBarCodeTypeAndValueFromThirdParty=ملء نوع وقيمة الباركود من باركود طرف ثالت. -DefinitionOfBarCodeForProductNotComplete=Definition of type or value of barcode not complete for product %s. -DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of barcode non complete for third party %s. -BarCodeDataForProduct=Barcode information of product %s: -BarCodeDataForThirdparty=Barcode information of third party %s: -ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values) -PriceByCustomer=Different prices for each customer -PriceCatalogue=A single sell price per product/service -PricingRule=Rules for selling prices +DefinitionOfBarCodeForProductNotComplete=تعريف نوع أو قيمة الباركود غير كامل للمنتج %s. +DefinitionOfBarCodeForThirdpartyNotComplete=تعريف نوع أو قيمة الباركود غير كامل بالنسبة لجهة خارجية %s. +BarCodeDataForProduct=معلومات الباركود للمنتج %s: +BarCodeDataForThirdparty=معلومات الباركود لطرف ثالث %s: +ResetBarcodeForAllRecords=تحديد قيمة الرمز الشريطي لجميع السجلات (سيؤدي هذا أيضًا إلى إعادة تعيين قيمة الرمز الشريطي المحددة بالفعل بقيم جديدة) +PriceByCustomer=أسعار مختلفة لكل عميل +PriceCatalogue=سعر بيع واحد لكل منتج / خدمة +PricingRule=قواعد أسعار البيع AddCustomerPrice=إضافة السعر من قبل العملاء -ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries +ForceUpdateChildPriceSoc=حدد نفس السعر على الشركات التابعة للعميل PriceByCustomerLog=سجل الأسعار العملاء السابقة MinimumPriceLimit=سعر الحد الأدنى لا يمكن أن يكون أقل ثم٪ الصورة -MinimumRecommendedPrice=Minimum recommended price is: %s +MinimumRecommendedPrice=أدنى سعر موصى به هو: %s PriceExpressionEditor=محرر السعر التعبير PriceExpressionSelected=اختيار التعبير السعر PriceExpressionEditorHelp1="السعر = 2 + 2" أو "2 + 2" لتحديد السعر. استخدام ؛ لفصل التعبيرات PriceExpressionEditorHelp2=يمكنك الوصول إلى ExtraFields مع المتغيرات مثل # # extrafield_myextrafieldkey والمتغيرات العالمية مع # global_mycode # -PriceExpressionEditorHelp3=In both product/service and vendor prices there are these variables available:
#tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# -PriceExpressionEditorHelp4=In product/service price only: #supplier_min_price#
In vendor prices only: #supplier_quantity# and #supplier_tva_tx# +PriceExpressionEditorHelp3=تتوفر هذه المتغيرات في أسعار المنتج / الخدمة والموردين:
# tva_tx # # localtax1_tx # # localtax2_tx # # weight # # length # # Surface # # price_min # +PriceExpressionEditorHelp4=في سعر المنتج / الخدمة فقط: # supplier_min_price #
في أسعار البائعين فقط: # supplier_quantity # and # supplier_tva_tx # a09a4b739f17 PriceExpressionEditorHelp5=القيم العالمية المتاحة: PriceMode=وضع السعر PriceNumeric=عدد DefaultPrice=سعر افتراضي -DefaultPriceLog=Log of previous default prices +DefaultPriceLog=سجل الأسعار الافتراضية السابقة ComposedProductIncDecStock=زيادة / نقصان الأسهم على التغيير الأم -ComposedProduct=Child products +ComposedProduct=منتجات الأطفال MinSupplierPrice=الحد الأدنى من سعر الشراء -MinCustomerPrice=Minimum selling price -NoDynamicPrice=No dynamic price +MinCustomerPrice=أدنى سعر بيع +NoDynamicPrice=لا يوجد سعر ديناميكي DynamicPriceConfiguration=التكوين سعر ديناميكي -DynamicPriceDesc=You may define mathematical formulae to calculate Customer or Vendor prices. Such formulas can use all mathematical operators, some constants and variables. You can define here the variables you wish to use. If the variable needs an automatic update, you may define the external URL to allow Dolibarr to update the value automatically. -AddVariable=Add Variable -AddUpdater=Add Updater +DynamicPriceDesc=يمكنك تحديد الصيغ الرياضية لحساب أسعار العميل أو البائع. يمكن أن تستخدم هذه الصيغ جميع العوامل الرياضية ، وبعض الثوابت والمتغيرات. يمكنك هنا تحديد المتغيرات التي ترغب في استخدامها. إذا كان المتغير يحتاج إلى تحديث تلقائي ، فيمكنك تحديد عنوان URL الخارجي للسماح لـ Dolibarr بتحديث القيمة تلقائيًا. +AddVariable=أضف متغير +AddUpdater=أضف المحدث GlobalVariables=المتغيرات العالمية -VariableToUpdate=Variable to update -GlobalVariableUpdaters=External updaters for variables +VariableToUpdate=متغير للتحديث +GlobalVariableUpdaters=المحدِّثات الخارجية للمتغيرات GlobalVariableUpdaterType0=البيانات JSON GlobalVariableUpdaterHelp0=يوزع البيانات JSON من URL محددة، تحدد قيمة الموقع من القيمة ذات الصلة، -GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterHelpFormat0=تنسيق الطلب {"URL": "http://example.com/urlofjson"، "VALUE": "array1، array2، targetvalue"} GlobalVariableUpdaterType1=بيانات خدمة ويب GlobalVariableUpdaterHelp1=يوزع بيانات خدمة ويب من URL المحدد، NS يحدد مساحة الاسم، تحدد قيمة الموقع من القيمة ذات الصلة، يجب أن تحتوي على بيانات البيانات لإرسال والطريقة هي الطريقة WS الدعوة -GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} +GlobalVariableUpdaterHelpFormat1=تنسيق الطلب هو {"URL": "http://example.com/urlofws" ، "VALUE": "array ، targetvalue" ، "NS": "http://example.com/urlofns" ، "METHOD" : "myWSMethod"، "DATA": {"your": "data"، "to": "send"}} UpdateInterval=تحديث الفاصل الزمني (دقائق) -LastUpdated=Latest update +LastUpdated=اخر تحديث CorrectlyUpdated=تحديثها بشكل صحيح PropalMergePdfProductActualFile=استخدام الملفات لإضافة إلى PDF دازور هي / هو PropalMergePdfProductChooseFile=اختر ملفات PDF -IncludingProductWithTag=Including products/services with the tag +IncludingProductWithTag=بما في ذلك المنتجات / الخدمات مع العلامة DefaultPriceRealPriceMayDependOnCustomer=سعر افتراضي، السعر الحقيقي قد تعتمد على العملاء WarningSelectOneDocument=يرجى تحديد وثيقة واحدة على الأقل DefaultUnitToShow=وحدة -NbOfQtyInProposals=Qty in proposals -ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view... -ProductsOrServicesTranslations=Products/Services translations -TranslatedLabel=Translated label -TranslatedDescription=Translated description -TranslatedNote=Translated notes -ProductWeight=Weight for 1 product -ProductVolume=Volume for 1 product -WeightUnits=Weight unit -VolumeUnits=Volume unit -WidthUnits=Width unit -LengthUnits=Length unit -HeightUnits=Height unit -SurfaceUnits=Surface unit -SizeUnits=Size unit -DeleteProductBuyPrice=Delete buying price -ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? -SubProduct=Sub product -ProductSheet=Product sheet -ServiceSheet=Service sheet -PossibleValues=Possible values -GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...) -UseProductFournDesc=Add a feature to define the product description defined by the vendors (for each vendor reference) in addition to the description for customers -ProductSupplierDescription=Vendor description for the product -UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents) -PackagingForThisProduct=Packaging -PackagingForThisProductDesc=On supplier order, you will automaticly order this quantity (or a multiple of this quantity). Cannot be less than minimum buying quantity -QtyRecalculatedWithPackaging=The quantity of the line were recalculated according to supplier packaging +NbOfQtyInProposals=الكمية في المقترحات +ClinkOnALinkOfColumn=انقر فوق ارتباط العمود %s للحصول على عرض تفصيلي ... +ProductsOrServicesTranslations=ترجمة المنتجات / الخدمات +TranslatedLabel=تسمية مترجمة +TranslatedDescription=وصف مترجم +TranslatedNote=ملاحظات مترجمة +ProductWeight=الوزن لمنتج واحد +ProductVolume=الحجم لمنتج واحد +WeightUnits=وحدة الوزن +VolumeUnits=وحدة الحجم +WidthUnits=وحدة العرض +LengthUnits=وحدة الطول +HeightUnits=وحدة الارتفاع +SurfaceUnits=وحدة السطح +SizeUnits=وحدة الحجم +DeleteProductBuyPrice=حذف سعر الشراء +ConfirmDeleteProductBuyPrice=هل أنت متأكد أنك تريد حذف سعر الشراء هذا؟ +SubProduct=المنتج الفرعي +ProductSheet=ورقة المنتج +ServiceSheet=ورقة الخدمة +PossibleValues=القيم الممكنة +GoOnMenuToCreateVairants=انتقل إلى القائمة %s - %s لإعداد متغيرات السمات (مثل الألوان والحجم ...) +UseProductFournDesc=أضف ميزة لتحديد وصف المنتج المحدد من قبل البائعين (لكل مرجع مورد) بالإضافة إلى وصف العملاء +ProductSupplierDescription=وصف البائع للمنتج +UseProductSupplierPackaging=Use packaging for prices rounded to multiples for purchase prices (recalculate quantities according to multiples set on purchase prices when adding/updating line in a vendor documents) +PackagingForThisProduct=التعبئة والتغليف +PackagingForThisProductDesc=سوف تشتري تلقائيًا مضاعفات هذه الكمية. +QtyRecalculatedWithPackaging=تمت إعادة حساب كمية الخط وفقًا لتعبئة المورد #Attributes -VariantAttributes=Variant attributes -ProductAttributes=Variant attributes for products -ProductAttributeName=Variant attribute %s -ProductAttribute=Variant attribute -ProductAttributeDeleteDialog=Are you sure you want to delete this attribute? All values will be deleted -ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" with reference "%s" of this attribute? -ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? -ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object -ProductCombinations=Variants -PropagateVariant=Propagate variants -HideProductCombinations=Hide products variant in the products selector -ProductCombination=Variant -NewProductCombination=New variant -EditProductCombination=Editing variant -NewProductCombinations=New variants -EditProductCombinations=Editing variants -SelectCombination=Select combination -ProductCombinationGenerator=Variants generator -Features=Features -PriceImpact=Price impact -ImpactOnPriceLevel=Impact on price level %s -ApplyToAllPriceImpactLevel= Apply to all levels -ApplyToAllPriceImpactLevelHelp=By clicking here you set the same price impact on all levels -WeightImpact=Weight impact +VariantAttributes=سمات متغيرة +ProductAttributes=سمات متغيرة للمنتجات +ProductAttributeName=سمة المتغير %s +ProductAttribute=السمة المتغيرة +ProductAttributeDeleteDialog=هل أنت متأكد أنك تريد حذف هذه السمة؟ سيتم حذف جميع القيم +ProductAttributeValueDeleteDialog=هل تريد بالتأكيد حذف القيمة "%s" بالمرجع "%s" لهذه السمة؟ +ProductCombinationDeleteDialog=هل تريد بالتأكيد حذف متغير المنتج " %s "؟ +ProductCombinationAlreadyUsed=حدث خطأ أثناء حذف المتغير. يرجى التحقق من عدم استخدامه في أي كائن +ProductCombinations=المتغيرات +PropagateVariant=نشر المتغيرات +HideProductCombinations=إخفاء متغير المنتجات في محدد المنتجات +ProductCombination=متغير +NewProductCombination=متغير جديد +EditProductCombination=تحرير المتغير +NewProductCombinations=المتغيرات الجديدة +EditProductCombinations=تحرير المتغيرات +SelectCombination=حدد مجموعة +ProductCombinationGenerator=مولد المتغيرات +Features=سمات +PriceImpact=تأثير السعر +ImpactOnPriceLevel=التأثير على مستوى السعر %s +ApplyToAllPriceImpactLevel= تنطبق على جميع المستويات +ApplyToAllPriceImpactLevelHelp=بالضغط هنا فإنك تحدد نفس تأثير السعر على جميع المستويات +WeightImpact=تأثير الوزن NewProductAttribute=جديد السمة -NewProductAttributeValue=New attribute value -ErrorCreatingProductAttributeValue=There was an error while creating the attribute value. It could be because there is already an existing value with that reference -ProductCombinationGeneratorWarning=If you continue, before generating new variants, all previous ones will be DELETED. Already existing ones will be updated with the new values -TooMuchCombinationsWarning=Generating lots of variants may result in high CPU, memory usage and Dolibarr not able to create them. Enabling the option "%s" may help reduce memory usage. -DoNotRemovePreviousCombinations=Do not remove previous variants -UsePercentageVariations=Use percentage variations -PercentageVariation=Percentage variation -ErrorDeletingGeneratedProducts=There was an error while trying to delete existing product variants -NbOfDifferentValues=No. of different values -NbProducts=Number of products -ParentProduct=Parent product -HideChildProducts=Hide variant products -ShowChildProducts=Show variant products -NoEditVariants=Go to Parent product card and edit variants price impact in the variants tab -ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? -CloneDestinationReference=Destination product reference -ErrorCopyProductCombinations=There was an error while copying the product variants -ErrorDestinationProductNotFound=Destination product not found -ErrorProductCombinationNotFound=Product variant not found -ActionAvailableOnVariantProductOnly=Action only available on the variant of product -ProductsPricePerCustomer=Product prices per customers -ProductSupplierExtraFields=Additional Attributes (Supplier Prices) -DeleteLinkedProduct=Delete the child product linked to the combination -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +NewProductAttributeValue=قيمة السمة الجديدة +ErrorCreatingProductAttributeValue=حدث خطأ أثناء إنشاء قيمة السمة. قد يكون ذلك بسبب وجود قيمة موجودة بالفعل بهذا المرجع +ProductCombinationGeneratorWarning=إذا تابعت ، قبل إنشاء متغيرات جديدة ، سيتم حذف جميع المتغيرات السابقة. سيتم تحديث القيم الموجودة بالفعل بالقيم الجديدة +TooMuchCombinationsWarning=قد يؤدي توليد الكثير من المتغيرات إلى ارتفاع استخدام وحدة المعالجة المركزية والذاكرة وعدم قدرة Dolibarr على إنشائها. قد يساعد تمكين الخيار "%s" في تقليل استخدام الذاكرة. +DoNotRemovePreviousCombinations=لا تقم بإزالة المتغيرات السابقة +UsePercentageVariations=استخدم الاختلافات المئوية +PercentageVariation=اختلاف النسبة المئوية +ErrorDeletingGeneratedProducts=حدث خطأ أثناء محاولة حذف متغيرات المنتج الحالية +NbOfDifferentValues=عدد القيم المختلفة +NbProducts=عدد من المنتجات +ParentProduct=المنتج الأصلي +HideChildProducts=إخفاء المنتجات المتنوعة +ShowChildProducts=عرض المنتجات المتنوعة +NoEditVariants=انتقل إلى بطاقة المنتج الرئيسي وقم بتعديل تأثير سعر المتغيرات في علامة تبويب المتغيرات +ConfirmCloneProductCombinations=هل ترغب في نسخ جميع متغيرات المنتج إلى المنتج الأصلي الآخر مع المرجع المحدد؟ +CloneDestinationReference=مرجع المنتج الوجهة +ErrorCopyProductCombinations=حدث خطأ أثناء نسخ متغيرات المنتج +ErrorDestinationProductNotFound=المنتج الوجهة غير موجود +ErrorProductCombinationNotFound=لم يتم العثور على صيغة المنتج +ActionAvailableOnVariantProductOnly=الإجراء متاح فقط على متغير المنتج +ProductsPricePerCustomer=أسعار المنتجات لكل عميل +ProductSupplierExtraFields=السمات الإضافية (أسعار الموردين) +DeleteLinkedProduct=احذف المنتج الفرعي المرتبط بالمجموعة +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=المتوسط المرجح لسعر PMPValueShort=الواب -mandatoryperiod=Mandatory periods -mandatoryPeriodNeedTobeSet=Note: Period (start and end date) must be defined -mandatoryPeriodNeedTobeSetMsgValidate=A service requires a start and end period -mandatoryHelper=Check this if you want a message to the user when creating / validating an invoice, commercial proposal, sales order without entering a start and end date on lines with this service.
Note that the message is a warning and not a blocking error. -DefaultBOM=Default BOM -DefaultBOMDesc=The default BOM recommended to use to manufacture this product. This field can be set only if nature of product is '%s'. -Rank=Rank -SwitchOnSaleStatus=Switch on sale status -SwitchOnPurchaseStatus=Switch on purchase status -StockMouvementExtraFields= Extra Fields (stock mouvement) +mandatoryperiod=فترات إلزامية +mandatoryPeriodNeedTobeSet=ملاحظة: يجب تحديد الفترة (تاريخ البدء والانتهاء) +mandatoryPeriodNeedTobeSetMsgValidate=تتطلب الخدمة فترة بداية ونهاية +mandatoryHelper=حدد هذا إذا كنت تريد رسالة إلى المستخدم عند إنشاء / التحقق من صحة فاتورة ، أو عرض تجاري ، أو أمر مبيعات دون إدخال تاريخ بدء وانتهاء في سطور هذه الخدمة.
لاحظ أن الرسالة تحذير وليست خطأ حظر. +DefaultBOM=الافتراضي BOM +DefaultBOMDesc=يوصى باستخدام قائمة مكونات الصنف الافتراضية لتصنيع هذا المنتج. يمكن تعيين هذا الحقل فقط إذا كانت طبيعة المنتج "%s". +Rank=مرتبة +MergeOriginProduct=منتج مكرر (المنتج الذي تريد حذفه) +MergeProducts=دمج المنتجات +ConfirmMergeProducts=هل أنت متأكد أنك تريد دمج المنتج المختار مع المنتج الحالي؟ سيتم نقل جميع العناصر المرتبطة (الفواتير ، الطلبات ، ...) إلى المنتج الحالي ، وبعد ذلك سيتم حذف المنتج المختار. +ProductsMergeSuccess=تم دمج المنتجات +ErrorsProductsMerge=دمج الأخطاء في المنتجات +SwitchOnSaleStatus=قم بتشغيل حالة البيع +SwitchOnPurchaseStatus=قم بتشغيل حالة الشراء +UpdatePrice=Increase/decrease customer price +StockMouvementExtraFields= الحقول الإضافية (حركة الأسهم) +InventoryExtraFields= الحقول الإضافية (المخزون) +ScanOrTypeOrCopyPasteYourBarCodes=امسح أو اكتب أو انسخ / الصق الرموز الشريطية +PuttingPricesUpToDate=تحديث الأسعار بالأسعار الحالية المعروفة +PMPExpected=يتوقع PMP +ExpectedValuation=التقييم المتوقع +PMPReal=حقيقي PMP +RealValuation=التقييم الحقيقي +ConfirmEditExtrafield = حدد المجال الإضافي الذي تريد تعديله +ConfirmEditExtrafieldQuestion = هل أنت متأكد أنك تريد تعديل هذا المجال الإضافي؟ +ModifyValueExtrafields = تعديل قيمة اكسترافيلد +OrProductsWithCategories=Or products with tags/categories diff --git a/htdocs/langs/ar_SA/projects.lang b/htdocs/langs/ar_SA/projects.lang index 21a8c799261..cc5c43d57ad 100644 --- a/htdocs/langs/ar_SA/projects.lang +++ b/htdocs/langs/ar_SA/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=هذا الرأي يعرض جميع المشاريع والمه TasksDesc=هذا الرأي يعرض جميع المشاريع والمهام (أذونات المستخدم الخاص أعطى الصلاحية لعرض كل شيء). AllTaskVisibleButEditIfYouAreAssigned=تظهر جميع المهام للمشاريع المؤهلة ، ولكن يمكنك إدخال الوقت فقط للمهمة المعينة للمستخدم المحدد. قم بتعيين مهمة إذا كنت بحاجة إلى إدخال الوقت فيها. OnlyYourTaskAreVisible=تظهر فقط المهام المعينة لك. إذا كنت بحاجة إلى إدخال الوقت في مهمة وإذا كانت المهمة غير مرئية هنا ، فأنت بحاجة إلى تعيين المهمة لنفسك. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=مهام المشاريع ProjectCategories=علامات / فئات المشروع NewProject=مشروع جديد @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=يقود كمية من المشاريع ا OpportunitiesStatusForProjects=يقود كمية من المشاريع حسب الحالة ShowProject=وتبين للمشروع ShowTask=وتظهر هذه المهمة +SetThirdParty=Set third party SetProject=وضع المشروع +OutOfProject=Out of project NoProject=لا يعرف أو المملوكة للمشروع NbOfProjects=عدد المشاريع NbOfTasks=عدد المهام @@ -122,7 +125,8 @@ ValidateProject=تحقق من مشروع غابة ConfirmValidateProject=هل أنت متأكد أنك تريد التحقق من صحة هذا المشروع؟ CloseAProject=وثيقة المشروع ConfirmCloseAProject=هل أنت متأكد أنك تريد إغلاق هذا المشروع؟ -AlsoCloseAProject=أغلق المشروع أيضًا (اتركه مفتوحًا إذا كنت لا تزال بحاجة إلى متابعة مهام الإنتاج عليه) +AlsoCloseAProject=Also close project +AlsoCloseAProjectTooltip=Keep it open if you still need to follow production tasks on it ReOpenAProject=فتح مشروع ConfirmReOpenAProject=هل أنت متأكد أنك تريد إعادة فتح هذا المشروع؟ ProjectContact=اتصالات من المشروع @@ -165,7 +169,7 @@ OpportunityProbability=احتمال الرصاص OpportunityProbabilityShort=بروباب الرصاص. OpportunityAmount=كمية الرصاص OpportunityAmountShort=كمية الرصاص -OpportunityWeightedAmount=المقدار المرجح للفرصة +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=مقابل. الكمية المرجحة OpportunityAmountAverageShort=متوسط مبلغ الرصاص OpportunityAmountWeigthedShort=مبلغ الرصاص المرجح @@ -238,7 +242,7 @@ OppStatusPENDING=بانتظار OppStatusWON=فاز OppStatusLOST=ضائع Budget=ميزانية -AllowToLinkFromOtherCompany=السماح بربط مشروع من شركة أخرى

القيم المدعومة:
- احتفظ به فارغًا: يمكنك ربط أي مشروع من مشاريع الشركة (افتراضي) a0342fccfda019b34 معرفات الجهات الخارجية مفصولة بفواصل: يمكن ربط جميع مشاريع هذه الأطراف الثالثة (مثال: 123،4795،53)
+AllowToLinkFromOtherCompany=Allow to link an element with a project of other company

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

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

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

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

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

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

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

لتضمين صورة مخزنة في مسار المستندات إستخدم المغلف viewimage.php:
على سبيل المثال لتضمين صورة موجودة في المسار documents/medias (مسار مفتوح الوصول للعامة)، إستخدم تركيب الجملة التالي:
<img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
#YouCanEditHtmlSource2=
To include a image shared publicaly, use the viewimage.php wrapper:
Example with a shared key 123456789, syntax is:
<img src="/viewimage.php?hashp=12345679012...">
YouCanEditHtmlSource2=لتضمين صورة مشاركة عن طريق رابط المشاركة (وصول عام باستخدام رمز دالة الملف) إستخدم تركيب الجملة التالي:
<img src="/viewimage.php?hashp=12345679012...">
-YouCanEditHtmlSourceMore=
امثلة اكثر للغة ترميز النصوص التشعبية متاحة على مدونة التوثيق
+YouCanEditHtmlSourceMore=
يتوفر المزيد من أمثلة HTML أو التعليمات البرمجية الديناميكية على وثائق wiki
. ClonePage=نسخ الصفحة\\الحاوية CloneSite=نسخ الموقع SiteAdded=تم إضافة الموقع الإلكتروني @@ -137,7 +140,7 @@ PagesRegenerated=تم توليد %s صفحة\\حاوية RegenerateWebsiteContent=إعادة توليد ملفات الموقع الإلكترونية المؤقتة AllowedInFrames=مسموح بها في الإطارات DefineListOfAltLanguagesInWebsiteProperties=عرف قائمة بكل اللغات المتاحة في خصائص الموقع -GenerateSitemaps=توليد ملف خريطة الموقع +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=إذا اكدت ، ستقوم بحذف ملف خرطة الموقع الحالي... ConfirmSitemapsCreation=تأكيد توليد خريطة الموقع SitemapGenerated=تم توليد ملف خريطة الموقع %s @@ -145,3 +148,10 @@ ImportFavicon=الايقونة ErrorFaviconType=الأيقونة لابد ان تكون بي ان جي ErrorFaviconSize=لابد ان يكون حجم الأيقونة 16x16 ، 32x32 او 64x64 FaviconTooltip=رفع صورة بي ان جي (16x16،32x32 او 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/ar_SA/withdrawals.lang b/htdocs/langs/ar_SA/withdrawals.lang index 4b9a548c683..c19c1738bee 100644 --- a/htdocs/langs/ar_SA/withdrawals.lang +++ b/htdocs/langs/ar_SA/withdrawals.lang @@ -31,8 +31,9 @@ SupplierInvoiceWaitingWithdraw=فاتورة المورد بانتظار الدف InvoiceWaitingWithdraw=فاتورة بانتظار الخصم المباشر InvoiceWaitingPaymentByBankTransfer=فاتورة بانتظار تحويل الرصيد AmountToWithdraw=سحب المبلغ +AmountToTransfer=المبلغ لنقل NoInvoiceToWithdraw=لا توجد فاتورة مفتوحة لـ "%s" في الانتظار. انتقل إلى علامة التبويب "%s" في بطاقة الفاتورة لتقديم طلب. -NoSupplierInvoiceToWithdraw=لا توجد فاتورة مورد مع "طلبات ائتمان مباشرة" مفتوحة في انتظارك. انتقل إلى علامة التبويب "%s" في بطاقة الفاتورة لتقديم طلب. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=المستخدم المسؤول WithdrawalsSetup=إعداد دفع الخصم المباشر CreditTransferSetup=إعداد تحويل الرصيد @@ -41,6 +42,7 @@ CreditTransferStatistics=إحصاءات تحويل الائتمان Rejects=ترفض LastWithdrawalReceipt=أحدث %s إيصالات الخصم المباشر MakeWithdrawRequest=تقديم طلب دفع الخصم المباشر +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=قدم طلب تحويل رصيد WithdrawRequestsDone=%s تم تسجيل طلبات الدفع بالخصم المباشر BankTransferRequestsDone=%s تم تسجيل طلبات تحويل الرصيد @@ -48,7 +50,7 @@ ThirdPartyBankCode=كود بنك الطرف الثالث NoInvoiceCouldBeWithdrawed=لم يتم الخصم من فاتورة بنجاح. تحقق من أن الفواتير موجودة في الشركات التي لديها رقم IBAN صالح وأن IBAN يحتوي على UMR (مرجع تفويض فريد) بالوضع %s . WithdrawalCantBeCreditedTwice=تم بالفعل تمييز إيصال السحب هذا على أنه مدين ؛ لا يمكن القيام بذلك مرتين ، حيث من المحتمل أن يؤدي ذلك إلى إنشاء مدفوعات وإدخالات بنكية مكررة. ClassCredited=تصنيف حساب -ClassDebited=Classify debited +ClassDebited=تصنيف الخصم ClassCreditedConfirm=هل أنت متأكد من أنك تريد تصنيف إيصال السحب هذا على أنه مقيد في حسابك المصرفي؟ TransData=تاريخ الإرسال TransMetod=طريقة الإرسال @@ -99,8 +101,11 @@ CreditDate=الائتمان على WithdrawalFileNotCapable=تعذر إنشاء ملف إيصال السحب لبلدك %s (بلدك غير مدعوم) ShowWithdraw=عرض أمر الخصم المباشر IfInvoiceNeedOnWithdrawPaymentWontBeClosed=ومع ذلك ، إذا كانت الفاتورة تحتوي على أمر دفع خصم مباشر واحد على الأقل لم تتم معالجته بعد ، فلن يتم تعيينها على أنها مدفوعة للسماح بإدارة السحب المسبق. -DoStandingOrdersBeforePayments=تتيح لك علامة التبويب هذه طلب أمر دفع الخصم المباشر. بمجرد الانتهاء من ذلك ، انتقل إلى القائمة بنك-> الدفع عن طريق الخصم المباشر لإنشاء أمر الخصم المباشر وإدارته. عند إغلاق أمر الخصم المباشر ، سيتم تسجيل الدفع على الفواتير تلقائيًا ، وإغلاق الفواتير إذا كان الباقي للدفع فارغًا. -DoCreditTransferBeforePayments=تتيح لك علامة التبويب هذه طلب أمر تحويل رصيد. بمجرد الانتهاء من ذلك ، انتقل إلى القائمة بنك-> الدفع عن طريق تحويل الرصيد لإنشاء أمر تحويل الرصيد وإدارته. عند إغلاق أمر تحويل الرصيد ، سيتم تسجيل الدفع على الفواتير تلقائيًا ، وإغلاق الفواتير إذا كان الباقي للدفع فارغًا. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=ملف أمر الخصم CreditTransferFile=ملف تحويل رصيد SetToStatusSent=تعيين إلى الحالة "ملف مرسل" @@ -117,7 +122,7 @@ WithdrawRequestErrorNilAmount=تعذر إنشاء طلب الخصم المباش SepaMandate=تفويض الخصم المباشر لمنطقة الدفعات الأوروبية الموحدة (SEPA) SepaMandateShort=تفويض SEPA PleaseReturnMandate=يرجى إعادة نموذج التفويض هذا بالبريد الإلكتروني إلى %s أو بالبريد إلى -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=معرف الدائن CreditorName=اسم الدائن SEPAFillForm=(ب) الرجاء استكمال جميع الحقول المعلمة * @@ -135,7 +140,8 @@ SEPARCUR=SEPA CUR SEPAFRST=SEPA FRST ExecutionDate=تاريخ التنفيذ CreateForSepa=إنشاء ملف الخصم المباشر -ICS=Creditor Identifier - ICS +ICS=معرف الدائن - ICS +IDS=معرف المدين END_TO_END=علامة "EndToEndId" SEPA XML - معرف فريد يتم تعيينه لكل معاملة USTRD="Unstructured" SEPA XML tag ADDDAYS=أضف أيام إلى تاريخ التنفيذ @@ -152,5 +158,6 @@ ModeWarning=لم يتم تعيين خيار الوضع الحقيقي ، نتو ErrorCompanyHasDuplicateDefaultBAN=تمتلك الشركة ذات المعرف %s أكثر من حساب مصرفي افتراضي. لا توجد طريقة لمعرفة أي واحد يستخدم. ErrorICSmissing=ICS مفقود في الحساب المصرفي %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=يختلف المبلغ الإجمالي لأمر الخصم المباشر عن مجموع البنود -WarningSomeDirectDebitOrdersAlreadyExists=Warning: There is already some pending Direct Debit orders (%s) requested for an amount of %s -WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +WarningSomeDirectDebitOrdersAlreadyExists=تحذير: هناك بالفعل بعض أوامر الخصم المباشر المعلقة (%s) المطلوبة لمبلغ %s +WarningSomeCreditTransferAlreadyExists=تحذير: هناك بالفعل بعض عمليات تحويل الرصيد المعلقة (%s) المطلوبة لمبلغ %s +UsedFor=تستخدم ل %s diff --git a/htdocs/langs/ar_SA/workflow.lang b/htdocs/langs/ar_SA/workflow.lang index b20685899d3..a0a44bde14b 100644 --- a/htdocs/langs/ar_SA/workflow.lang +++ b/htdocs/langs/ar_SA/workflow.lang @@ -3,24 +3,34 @@ WorkflowSetup=إعداد وحدة تدفق العمل WorkflowDesc=هذه الوحدة توفر بعض الاجراءات التلقائية . في البداية يكون تدفق العمل مفتوحاً (يمكنك ان تعمل بالترتيب الذي تريد) لكن هنا يمكنك تفعيل بعض الجراءات التلقائية ThereIsNoWorkflowToModify=لا توجد تعديلات على سير العمل متوفرة مع الوحدات النشطة. # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a sales order after a commercial proposal is signed (the new order will have same amount as the proposal) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (the new invoice will have same amount as the proposal) +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=إنشاء أمر مبيعات تلقائيًا بعد توقيع اقتراح تجاري (سيكون للأمر الجديد نفس مبلغ الاقتراح) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيًا بعد التوقيع على عرض تجاري (الفاتورة الجديدة سيكون لها نفس مبلغ الاقتراح) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيا بعد التحقق من صحة العقد -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a sales order is closed (the new invoice will have same amount as the order) +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيًا بعد إغلاق أمر المبيعات (الفاتورة الجديدة سيكون لها نفس مبلغ الأمر) +descWORKFLOW_TICKET_CREATE_INTERVENTION=عند إنشاء التذكرة ، قم بإنشاء تدخل تلقائيًا. # Autoclassify customer proposal or order -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when sales order is set to billed (and if the amount of the order is the same as the total amount of the signed linked proposal) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the signed linked proposal) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is set to paid (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source sales order as shipped when a shipment is validated (and if the quantity shipped by all shipments is the same as in the order to update) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classify linked source sales order as shipped when a shipment is closed (and if the quantity shipped by all shipments is the same as in the order to update) +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=تصنيف اقتراح المصدر المرتبط على أنه تمت فوترته عند تعيين أمر المبيعات على الفاتورة (وإذا كان مبلغ الأمر هو نفس المبلغ الإجمالي للعرض المرتبط الموقع) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=تصنيف مقترح المصدر المرتبط على أنه فاتورة عند التحقق من صحة فاتورة العميل (وإذا كان مبلغ الفاتورة هو نفس المبلغ الإجمالي للمقترح المرتبط الموقع) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=تصنيف أمر مبيعات المصدر المرتبط على أنه تمت فوترته عند التحقق من صحة فاتورة العميل (وإذا كان مبلغ الفاتورة هو نفسه المبلغ الإجمالي للأمر المرتبط) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=تصنيف أمر مبيعات المصدر المرتبط على أنه فاتورة عند تعيين فاتورة العميل على مدفوعة (وإذا كان مبلغ الفاتورة هو نفسه المبلغ الإجمالي للأمر المرتبط) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=تصنيف أمر مبيعات المصدر المرتبط على أنه مشحون عند التحقق من صحة الشحنة (وإذا كانت الكمية المشحونة بواسطة جميع الشحنات هي نفسها الموجودة في أمر التحديث) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=تصنيف أمر مبيعات المصدر المرتبط على أنه مشحون عند إغلاق الشحنة (وإذا كانت الكمية المشحونة بواسطة جميع الشحنات هي نفسها الموجودة في أمر التحديث) +# Autoclassify purchase proposal +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=تصنيف مقترح مورد المصدر المرتبط كما هو مفوتر عند التحقق من صحة فاتورة المورد (وإذا كان مبلغ الفاتورة هو نفسه المبلغ الإجمالي للعرض المرتبط) # Autoclassify purchase order -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked proposal) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=تصنيف أمر شراء المصدر المرتبط كما هو مفوتر عند التحقق من صحة فاتورة المورد (وإذا كان مبلغ الفاتورة هو نفسه المبلغ الإجمالي للأمر المرتبط) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=تصنيف أمر شراء المصدر المرتبط على أنه تم استلامه عند التحقق من صحة الاستلام (وإذا كانت الكمية المستلمة من قبل جميع الاستقبالات هي نفسها الموجودة في أمر الشراء للتحديث) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=تصنيف أمر شراء المصدر المرتبط كما تم استلامه عند إغلاق الاستلام (وإذا كانت الكمية المستلمة من قبل جميع الاستدعاءات هي نفسها الموجودة في أمر الشراء للتحديث) +# Autoclassify purchase invoice +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=عند إنشاء تذكرة ، قم بربط العقود المتاحة لمطابقة الطرف الثالث +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=عند ربط العقود ، ابحث بين تلك الخاصة بالشركات الأم # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +descWORKFLOW_TICKET_CLOSE_INTERVENTION=إغلاق جميع المداخلات المرتبطة بالتذكرة عند إغلاق التذكرة AutomaticCreation=إنشاء تلقائي AutomaticClassification=التصنيف التلقائي # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) +AutomaticClosing=إغلاق تلقائي +AutomaticLinking=ربط تلقائي diff --git a/htdocs/langs/ar_SY/datapolicy.lang b/htdocs/langs/ar_SY/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/ar_SY/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/az_AZ/datapolicy.lang b/htdocs/langs/az_AZ/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/az_AZ/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/bg_BG/accountancy.lang b/htdocs/langs/bg_BG/accountancy.lang index aea81c1d3a5..7baa0711571 100644 --- a/htdocs/langs/bg_BG/accountancy.lang +++ b/htdocs/langs/bg_BG/accountancy.lang @@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Изберете типа пренасяне на но ACCOUNTING_EXPORT_PREFIX_SPEC=Посочете префикса в името на файла ThisService=Тази услуга ThisProduct=Този продукт -DefaultForService=По подразбиране за услуга -DefaultForProduct=По подразбиране за продукт +DefaultForService=Default for services +DefaultForProduct=Default for products ProductForThisThirdparty=Product for this thirdparty ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Не може да се предложи @@ -48,8 +48,9 @@ CountriesNotInEEC=Държави извън ЕИО CountriesInEECExceptMe=Държави в ЕИО, с изключение на %s CountriesExceptMe=Всички държави с изключение на %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Основна счетоводна сметк MainAccountForUsersNotDefined=Основна счетоводна сметка за потребители, която не е дефинирана в настройката MainAccountForVatPaymentNotDefined=Основна счетоводна сметка за плащане на ДДС, която не е дефинирана в настройката MainAccountForSubscriptionPaymentNotDefined=Основна счетоводна сметка за плащане на абонамент, която не е дефинирана в настройката +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Секция за счетоводство AccountancyAreaDescIntro=Използването на счетоводния модул се извършва на няколко стъпки: @@ -99,7 +101,8 @@ ShowAccountingAccount=Показване на счетоводна сметка ShowAccountingJournal=Показване на счетоводен журнал ShowAccountingAccountInLedger=Show accounting account in ledger ShowAccountingAccountInJournals=Show accounting account in journals -AccountAccountingSuggest=Предложена счетоводна сметка +DataUsedToSuggestAccount=Data used to suggest account +AccountAccountingSuggest=Account suggested MenuDefaultAccounts=Сметки по подразбиране MenuBankAccounts=Банкови сметки MenuVatAccounts=Сметки за ДДС @@ -124,6 +127,7 @@ WriteBookKeeping=Record transactions in accounting Bookkeeping=Главна счетоводна книга BookkeepingSubAccount=Subledger AccountBalance=Салдо по сметка +AccountBalanceSubAccount=Sub-accounts balance ObjectsRef=Обект № CAHTF=Обща покупка от доставчик преди ДДС TotalExpenseReport=Общ разходен отчет @@ -161,42 +165,47 @@ BANK_DISABLE_DIRECT_INPUT=Деактивиране на директно доб ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Активиране на експортиране на журнали в състояние на чернова ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Журнал за продажби -ACCOUNTING_PURCHASE_JOURNAL=Журнал за покупки -ACCOUNTING_MISCELLANEOUS_JOURNAL=Общ журнал +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Журнал за разходни отчети -ACCOUNTING_SOCIAL_JOURNAL=Журнал за данъци +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Има нов журнал +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Журнал за данъци ACCOUNTING_RESULT_PROFIT=Счетоводна сметка за резултат (печалба) ACCOUNTING_RESULT_LOSS=Счетоводна сметка за резултат (загуба) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Журнал за приключване -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Счетоводна сметка на преходен банков превод +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Преходна сметка за банков превод -ACCOUNTING_ACCOUNT_SUSPENSE=Счетоводна сметка за изчакване -DONATION_ACCOUNTINGACCOUNT=Счетоводна сметка за регистриране на дарения -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Счетоводен акаунт за регистриране на членски внос +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Счетоводна сметка по подразбиране за закупени продукти (използва се, ако не е определена в продуктовата карта) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Счетоводна сметка по подразбиране за закупени продукти в ЕИО (използва се, ако не е дефинирана в картата на продукта) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Счетоводна сметка по подразбиране за закупени продукти и внесени отвън ЕИО (използва се, ако не е дефинирана в картата на продукта) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Счетоводна сметка по подразбиране за продадени продукти (използва се, ако не е дефинирана в продуктовата карта) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Счетоводна сметка по подразбиране за продадени продукти в ЕИО (използва се, ако не е определена в продуктовата карта) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Счетоводна сметка по подразбиране за продадени и експортирани продукти извън ЕИО (използва се, ако не е определена в продуктовата карта) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Счетоводна сметка по подразбиране за закупени услуги (използва се, ако не е дефинирана в картата на услугата) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Счетоводна сметка по подразбиране за закупени услуги в ЕИО (използва се, ако не е дефинирана в картата на услугата) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Счетоводна сметка по подразбиране за закупени услуги и внесени отвън ЕИО (използва се, ако не е дефинирана в картата на услугата) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Счетоводна сметка по подразбиране за продадени услуги (използва се, ако не е дефинирана в картата на услугата) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Счетоводна сметка по подразбиране за продадени услуги в ЕИО (използва се, ако не е определена в картата на услугата) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Счетоводна сметка по подразбиране за продадени и експортирани услуги извън ЕИО (използва се, ако не е определена в картата на услугата) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Вид документ Docdate=Дата @@ -211,7 +220,8 @@ Codejournal=Журнал JournalLabel=Име на журнал NumPiece=Пореден номер TransactionNumShort=Транзакция № -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts +AccountingCategories=Custom groups of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=Тук може да определите някои групи счетоводни сметки. Те ще бъдат използвани за персонализирани счетоводни отчети. @@ -259,19 +269,20 @@ ShowSubtotalByGroup=Show subtotal by level Pcgtype=Група от сметки PcgtypeDesc=Групата от сметки се използва като предварително зададен критерий за филтриране и групиране за някои счетоводни отчети. Например 'Приход' или 'Разход' се използват като групи за счетоводни сметки на продукти за съставяне на отчет за разходи / приходи. +AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports. Reconcilable=Съвместим TotalVente=Общ оборот преди ДДС TotalMarge=Общ марж на продажби -DescVentilCustomer=Преглед на списъка с редове на фактури за продажба, свързани (или не) със счетоводна сметка на продукт -DescVentilMore=В повечето случаи, ако използвате предварително дефинирани продукти или услуги и зададете номер на сметка в картата на продукта / услугата, то системата ще може да извърши всички свързвания между вашите редове на фактури и счетоводната сметка във вашия сметкоплан, просто с едно щракване с бутона "%s". Ако сметката не е зададена в картата на продукта / услугата или ако все още имате някои редове, които не са свързани към сметка, то ще трябва да направите ръчно свързване от менюто "%s". -DescVentilDoneCustomer=Преглед на списъка с редове на фактури за продажба и тяхната счетоводна сметка за продукти -DescVentilTodoCustomer=Свързване на редове на фактури, които все още не са свързани със счетоводна сметка за продукт -ChangeAccount=Променете счетоводната сметка на продукта / услугата за избрани редове със следната счетоводна сметка: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Преглед на списъка с редове във фактури за доставка, обвързани или все още не обвързани със счетоводна сметка на продукт (виждат се само записи, които все още не са прехвърлени към счетоводството) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Преглед на списъка с редове на фактури за доставка и тяхната счетоводна сметка DescVentilTodoExpenseReport=Свържете редове на разходни отчети, които все още не са свързани със счетоводна сметка за такса DescVentilExpenseReport=Преглед на списъка с редове на разходни отчети, свързани (или не) със счетоводна сметка за такса @@ -279,24 +290,25 @@ DescVentilExpenseReportMore=Ако настроите счетоводна см DescVentilDoneExpenseReport=Преглед на списъка с редове на разходни отчети и тяхната счетоводна сметка за такса Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Всякакви промени или изтриване на написаното ще бъдат забранени. Всички записи за изпълнение трябва да бъдат валидирани, в противен случай приключването няма да е възможно. ValidateHistory=Автоматично свързване AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically. -ErrorAccountancyCodeIsAlreadyUse=Грешка, не може да изтриете тази счетоводна сметка, защото се използва. +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Балансиране FicheVentilation=Свързваща карта GeneralLedgerIsWritten=Транзакциите са записани в главната счетоводна книга GeneralLedgerSomeRecordWasNotRecorded=Някои от транзакциите не бяха осчетоводени. Ако няма друго съобщение за грешка, то това вероятно е, защото те вече са били осчетоводени. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Списък на продукти, които не са свързани с нито една счетоводна сметка +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Промяна на свързване Accounted=Осчетоводено в книгата NotYetAccounted=Not yet transferred to accounting @@ -322,6 +334,7 @@ AccountingJournalType4=Банка AccountingJournalType5=Разходни отчети AccountingJournalType8=Инвентар AccountingJournalType9=Има нови +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Този журнал вече се използва AccountingAccountForSalesTaxAreDefinedInto=Бележка: Счетоводната сметка за данък върху продажбите е дефинирана в меню %s - %s NumberOfAccountancyEntries=Брой записи @@ -329,10 +342,14 @@ NumberOfAccountancyMovements=Брой движения ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting +ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedExportFull=Export documents ? DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Експортиране на журнал в чернова @@ -389,7 +406,7 @@ SaleLocal=Локална продажба SaleExport=Експортна продажба SaleEEC=Вътреобщностна продажба SaleEECWithVAT=Продажба в ЕИО с ДДС различен от нула, за която се предполага, че НЕ е вътреобщностна продажба, поради тази причина се препоръчва стандартната сметка за продукти. -SaleEECWithoutVATNumber=Продажба в ЕИО без ДДС, но идентификационният номер по ДДС на контрагента не е определен. Ще се използва стандартната сметка за продажба на продукти. Може да въведете идентификационен номер по ДДС на контрагента или сметка на продукта, ако е необходимо. +SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed. ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. ## Dictionary @@ -398,7 +415,11 @@ Calculated=Изчислено Formula=Формула ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +428,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Потвърждение за масово изтриване ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +449,8 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists +ErrorArchiveAddFile=Can't put "%s" file in archive ## Import ImportAccountingEntries=Счетоводни записи @@ -453,6 +477,7 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Дата на експортиране WarningReportNotReliable=Внимание, тази справка не се основава на главната счетоводна книга, така че не съдържа транзакция, ръчно променена в книгата. Ако осчетоводяването ви е актуално, то прегледът на счетоводството е по-точен. ExpenseReportJournal=Журнал за разходни отчети -InventoryJournal=Журнал за инвентар +DocsAlreadyExportedAreExcluded=Docs already exported are excluded +ClickToHideAlreadyExportedLines=Click to hide already exported lines NAccounts=%s accounts diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang index f5b3ddc3cbc..dc3aa7d8fd7 100644 --- a/htdocs/langs/bg_BG/admin.lang +++ b/htdocs/langs/bg_BG/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Съпоставяне от страна на клиент WarningModuleNotActive=Модул %s е необходимо да бъде включен WarningOnlyPermissionOfActivatedModules=Само разрешения, свързани с активните модули са показани тук. Може да активирате други модули в страницата Начало -> Настройки -> Модули / Приложения DolibarrSetup=Dolibarr инсталиране / обновяване -InternalUser=Вътрешен потребител -ExternalUser=Външен потребител InternalUsers=Вътрешни потребители ExternalUsers=Външни потребители UserInterface=User interface @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS хост (стойност по подраз MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS порт (не е дефиниран в PHP за Unix-подобни системи) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS хост (не е дефиниран в PHP за Unix-подобни системи) MAIN_MAIL_EMAIL_FROM=Имейл адрес за изпращане на автоматични имейли (стойност по подразбиране в php.ini: %s ) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=Имейл адрес за получаване на грешки (за полето 'Грешки-към' в изпратените имейли) MAIN_MAIL_AUTOCOPY_TO= Имейл адрес за получаване на скрито копие (Bcc) на всички изпратени имейли MAIN_DISABLE_ALL_MAILS=Деактивиране на изпращането на всички имейли (за тестови цели или демонстрации) @@ -439,8 +438,10 @@ Unique=Уникален Boolean=Булева (едно квадратче за отметка) ExtrafieldPhone = Телефон ExtrafieldPrice = Цена +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = Имейл ExtrafieldUrl = URL +ExtrafieldIP = IP ExtrafieldSelect = Изберете списък ExtrafieldSelectList = Изберете от таблицата ExtrafieldSeparator=Разделител (не е поле) @@ -501,7 +502,8 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Ако вашият SMTP доставчик трябва да ограничи имейл клиента до някои IP адреси (много рядко), това е IP адресът на потребителския агент за поща (MUA) за вашето ERP CRM приложение: %s . WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
Пример:
За да създадете PageUrlForDefaultValuesList=
Пример:
За страницата, която изброява контрагентите, той е %s.
За URL на външни модули, инсталирани в /custom/ директорията използвайте следния път mymodule/mypagelist.phpи не включвайте custom/mymodule/mypagelist.php.
Ако искате само стойността по подразбиране, в случай че URL има някакъв параметър, може да използвате %s AlsoDefaultValuesAreEffectiveForActionCreate=Също така имайте предвид, че презаписването на стойностите по подразбиране за създаване на формуляри работи само за страници, които са били правилно разработени (с параметър action=create или presend...) EnableDefaultValues=Персонализиране на стойности по подразбиране -EnableOverwriteTranslation=Използване на презаписан превод +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Намерен е превод за ключа с този код. За да промените тази стойност, трябва да я редактирате като отидете в Начало - Настройки - Превод WarningSettingSortOrder=Внимание, задаването на ред за сортиране по подразбиране може да доведе до техническа грешка при влизане в страницата на списъка, ако полето е неизвестно. Ако възникне такава грешка, се върнете на тази страница, за да премахнете редът за сортиране по подразбиране и да възстановите първоначалното състояние. Field=Поле @@ -645,9 +647,9 @@ Module2400Name=Събития / Календар Module2400Desc=Проследяване на събития. Регистриране на автоматични събития с цел проследяване или записване на ръчни събития и срещи. Това е основният модул за добро управление на взаимоотношенията с клиенти и доставчици. Module2500Name=Документи / Съдържание Module2500Desc=Система за управление на документи / Управление на електронно съдържание. Автоматична организация на вашите генерирани или съхранени документи. Споделяне на документи. -Module2600Name=API / Web услуги (SOAP сървър) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Активиране на Dolibarr SOAP сървър, предоставящ API услуги -Module2610Name=API / Web услуги (REST сървър) +Module2610Name=API / Web services (REST server) Module2610Desc=Активиране на Dolibarr REST сървър, предоставящ API услуги Module2660Name=Извикване на WebServices (SOAP клиент) Module2660Desc=Активиране на Dollibarr клиент за уеб услуги (Може да се използва за препращане на данни / заявки към външни сървъри. Понастоящем се поддържат само поръчки за покупка.) @@ -698,6 +700,7 @@ Module62000Name=Условия на доставка Module62000Desc=Добавяне на функции за управление на Инкотермс (условия на доставка) Module63000Name=Ресурси Module63000Desc=Управление на ресурси (принтери, коли, стаи, ...) с цел разпределяне по събития +Module94160Name=Стокови разписки Permission11=Преглед на фактури за продажба Permission12=Създаване / променяне на фактури на продажба Permission13=Invalidate customer invoices @@ -842,9 +845,9 @@ Permission286=Експортиране на контакти Permission291=Преглед на тарифи Permission292=Задаване на права за тарифи Permission293=Променяне на клиентски тарифи -Permission300=Преглед на баркодове -Permission301=Създаване / променяне на баркодове -Permission302=Изтриване на баркодове +Permission301=Generate PDF sheets of barcodes +Permission304=Create/modify barcodes +Permission305=Изтриване на баркодове Permission311=Преглед на услуги Permission312=Възлагане на услуга / абонамент към договор Permission331=Преглед на отметки @@ -971,13 +974,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Преглед на съдържание в уебсайт Permission10002=Създаване / променяне на съдържание в уебсайт (html и javascript) Permission10003=Създаване / променяне на съдържание в уебсайт (динамичен php код). Опасно, трябва да бъде използвано само за ограничен кръг разработчици. @@ -1081,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Настройката е запазена SetupNotSaved=Настройката не е запазена +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Назад към списъка с модули BackToDictionaryList=Назад към списъка с речници TypeOfRevenueStamp=Вид на данъчния печат (бандерол) @@ -1244,6 +1252,7 @@ AreaForAdminOnly=Параметрите за настройка могат да SystemInfoDesc=Системната информация е различна техническа информация, която получавате в режим само за четене и е видима само за администратори. SystemAreaForAdminOnly=Тази секция е достъпна само за администратори. Потребителските права в Dolibarr не могат да променят това ограничение. CompanyFundationDesc=Редактирайте информацията за вашата фирма / организация. Кликнете върху бутона '%s' в долната част на страницата, когато сте готови. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Ако имате външен счетоводител, тук може да редактирате неговата информация. AccountantFileNumber=Счетоводен код DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1294,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Трябва да изпълн YourPHPDoesNotHaveSSLSupport=SSL функциите не са налични във вашия PHP DownloadMoreSkins=Изтегляне на повече теми SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1380,7 +1391,7 @@ GetBarCode=Получаване на баркод NumberingModules=Модели за номериране DocumentModules=Document models ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Да не се предлага генерирана парола. Паролата трябва да бъде въведена ръчно. PasswordGenerationPerso=Връщане на парола според вашата лично дефинирана конфигурация SetupPerso=Според вашата конфигурация @@ -1434,6 +1445,10 @@ SuppliersPayment=Плащания към доставчици SupplierPaymentSetup=Настройка на плащания към доставчици InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
- Category of operations: Delivery of goods
- Category of operations: Provision of services
- Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Настройка на модула за търговски предложения ProposalsNumberingModules=Модели за номериране на търговски предложения @@ -1476,11 +1491,12 @@ WatermarkOnDraftContractCards=Воден знак върху чернови до ##### Members ##### MembersSetup=Настройка на модула за членове MemberMainOptions=Основни параметри +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Управление на входни данни за всеки член AdherentMailRequired=Необходим е имейл при създаване на нов член MemberSendInformationByMailByDefault=По подразбиране е активирано изпращането на потвърждение, чрез имейл до членове (валидиране или нов абонамент) MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Посетителят може да избира от наличните начини на плащане +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Активиране на автоматично напомняне, чрез имейл за изтекли абонаменти. Забележка: Модул %s трябва да е активиран и правилно настроен за изпращане на напомняния. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1742,8 +1758,8 @@ ActivateFCKeditor=Активиране на разширен редактор з FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG създаване / промяна на масови имейли (Инструменти -> Масови имейли) FCKeditorForUserSignature=WYSIWIG създаване / промяна на подпис на потребители FCKeditorForMail=WYSIWIG създаване / променяне на цялата поща (с изключение на Настройка -> Имейли) @@ -1766,7 +1782,7 @@ DetailMenuHandler=Манипулатор на меню, в който да се DetailMenuModule=Име на модула, ако входните данни на менюто идват от модул DetailType=Тип меню (горно или ляво) DetailTitre=Име на меню или име на код за превод -DetailUrl=URL адрес, където менюто ви изпратя (Absolute на URL линк или външна връзка с http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Условие за показване или не на вписване DetailRight=Условие за показване на неоторизирани (сиви) менюта DetailLangs=Име на .lang файл с име на код на превод @@ -1837,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Намаляването на нал CashDeskYouDidNotDisableStockDecease=Не сте деактивирали намаляването на запасите при продажбата от точка за продажби, поради тази причина се изисква наличие на склад. CashDeskForceDecreaseStockLabel=Намаляването на наличности за партидни продукти е принудително. CashDeskForceDecreaseStockDesc=Намаляване първо от най-ранната дата на годност и дата на продажба -CashDeskReaderKeyCodeForEnter=Ключов код за 'Enter', дефиниран в четеца на баркодове (Пример: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Настройка на модула на отметки BookmarkDesc=Този модул позволява да се управляват отметки. Може също да добавяте преки пътища към всички страници на Dolibarr или външни уеб сайтове в лявото меню. @@ -1875,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Модели за номериране на фа IfSetToYesDontForgetPermission=Ако е настроена различна от нула стойност, не забравяйте да предоставите права на групите или потребителите за второ одобрение ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Настройка на модула GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Път към файл, съдържащ Maxmind ip to country translation.
Примери:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Обърнете внимание, че вашият IP файл с данни за държавата трябва да е в директория, която може да се чете от PHP (проверете настройките на вашата PHP open_basedir и правата на файловата система). YouCanDownloadFreeDatFileTo=Може да изтеглите безплатна демо версия на Maxmind GeoIP файла за държавата от %s. YouCanDownloadAdvancedDatFileTo=Може също така да изтеглите по-пълна версия, с актуализации на Maxmind GeoIP файла за държавата от %s. @@ -1926,6 +1942,7 @@ BackupDumpWizard=Асистент за създаване на dump файл н BackupZipWizard=Асистент за създаване на архив на директорията "documents" SomethingMakeInstallFromWebNotPossible=Инсталирането на външен модул не е възможно от уеб интерфейса, поради следната причина: SomethingMakeInstallFromWebNotPossible2=Поради тази причина описаният тук процес за актуализация е ръчен процес, който може да се изпълнява само от потребител със съответните права. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Инсталирането на външен модул в приложението е деактивирано от администратора на системата. Трябва да го помолите да премахне файла %s, за да разреши тази функция. ConfFileMustContainCustom=Инсталирането или създаването на външен модул в приложението е необходимо да съхрани файловете на модула в директорията %s. За да се обработва тази директория от Dolibarr, трябва да настроите вашият conf/conf.php файл да съдържа двете директивни линии:
$dolibarr_main_url_root_alt = '/custom';
$dolibarr_main_document_root_alt = '%s/custom'; HighlightLinesOnMouseHover=Маркиране на редове в таблица, когато мишката преминава отгоре @@ -2053,6 +2070,8 @@ RemoveSpecialChars=Премахване на специални символи COMPANY_AQUARIUM_CLEAN_REGEX=Regex филтър за изчистване на стойността (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex филтър за чиста стойност (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Дублирането не е позволено +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Длъжностно лице по защита на данните (DPO, защита на лични данни или GDPR контакт) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Подсказка @@ -2080,6 +2099,7 @@ MailboxTargetDirectory=Директория / Цел в пощенската к EmailcollectorOperations=Операции за извършване от колекционера EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Максимален брой събрани имейли при колекциониране +TestCollectNow=Test collect CollectNow=Колекциониране ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try @@ -2183,6 +2203,7 @@ ShowProjectLabel=Project Label PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Ако искате да имате някои текстове във вашия PDF файл, дублирани на 2 различни езика в един и същ генериран PDF файл, трябва да посочите тук този втори език, така че генерираният PDF файл да съдържа 2 различни езика на една и съща страница, избраният при генериране на PDF и този (само няколко PDF шаблона поддържат това). Запазете празно за един език в PDF файла. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Въведете тук кода за FontAwesome икона. Ако не знаете какво е FontAwesome, може да използвате стандартната стойност fa-address book. @@ -2211,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Препоръчителна NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2264,7 +2285,7 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Настройка на инвентаризация ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. ModuleWebhookName = Webhook ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL @@ -2288,6 +2309,8 @@ IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. IfThisCategoryIsChildOfAnother=If this category is a child of another one DarkThemeMode=Dark theme mode @@ -2307,3 +2330,28 @@ UsePassword=Use a password UseOauth=Use a OAUTH token Images=Images MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/bg_BG/categories.lang b/htdocs/langs/bg_BG/categories.lang index 54b1c2e7f70..0346e451330 100644 --- a/htdocs/langs/bg_BG/categories.lang +++ b/htdocs/langs/bg_BG/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Този член не е свързан с нито еди ContactHasNoCategory=Този контакт не е свързан с нито един таг / категория ProjectHasNoCategory=Този проект не е свързан с нито един таг / категория ClassifyInCategory=Добавяне към таг / категория +RemoveCategory=Remove category NotCategorized=Без таг / категория CategoryExistsAtSameLevel=Тази категория вече съществува ContentsVisibleByAllShort=Съдържанието е видимо от всички @@ -67,6 +68,7 @@ StockCategoriesShort=Тагове / Категории ThisCategoryHasNoItems=Тази категория не съдържа никакви елементи CategId=Идентификатор на таг / категория ParentCategory=Parent tag/category +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label of parent tag/category CatSupList=List of vendors tags/categories CatCusList=List of customers/prospects tags/categories @@ -86,15 +88,18 @@ DeleteFromCat=Изтриване от таг / категория ExtraFieldsCategories=Допълнителни атрибути CategoriesSetup=Настройка на тагове / категории CategorieRecursiv=Автоматично свързване с главния таг / категория -CategorieRecursivHelp=Ако опцията е включена, когато добавите продукт в подкатегория, продуктът ще бъде добавен също и в главната категория. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Добавяне на следния продукт / услуга AddCustomerIntoCategory=Assign category to customer AddSupplierIntoCategory=Assign category to supplier +AssignCategoryTo=Assign category to ShowCategory=Показване на таг / категория ByDefaultInList=По подразбиране в списъка ChooseCategory=Избиране на категория StocksCategoriesArea=Warehouse Categories +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Event Categories WebsitePagesCategoriesArea=Page-Container Categories KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Use 'OR' operator for categories +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/bg_BG/commercial.lang b/htdocs/langs/bg_BG/commercial.lang index fff70536142..4846ef349c3 100644 --- a/htdocs/langs/bg_BG/commercial.lang +++ b/htdocs/langs/bg_BG/commercial.lang @@ -37,7 +37,7 @@ ToDoActions=Незавършени събития SendPropalRef=Изпращане на търговско предложение %s SendOrderRef=Изпращане на поръчка %s StatusNotApplicable=Не се прилага -StatusActionToDo=Да се направи +StatusActionToDo=За извършване StatusActionDone=Завършено StatusActionInProcess=В процес TasksHistoryForThisContact=Събития за този контакт @@ -64,17 +64,26 @@ ActionAC_SHIP=Изпращане на пратка по пощата ActionAC_SUP_ORD=Изпращане на поръчка за покупка по пощата ActionAC_SUP_INV=Изпращане на фактура за доставка по пощата ActionAC_OTH=Друго -ActionAC_OTH_AUTO=Автоматично добавени +ActionAC_OTH_AUTO=Other auto ActionAC_MANUAL=Ръчно добавени ActionAC_AUTO=Автоматично добавени -ActionAC_OTH_AUTOShort=Автоматично +ActionAC_OTH_AUTOShort=Други +ActionAC_EVENTORGANIZATION=Event organization events Stats=Статистика от продажби StatusProsp=Статус на потенциален клиент DraftPropals=Чернови търговски предложения NoLimit=Няма лимит ToOfferALinkForOnlineSignature=Връзка за онлайн подпис -WelcomeOnOnlineSignaturePage=Добре дошли на страницата за приемане на търговски предложения от %s -ThisScreenAllowsYouToSignDocFrom=Този екран позволява да приемете и подпишете или да отхвърлите оферта / търговско предложение -ThisIsInformationOnDocumentToSign=Това е информация за документа, който да приемете или отхвърлите. +WelcomeOnOnlineSignaturePageProposal=Добре дошли на страницата за приемане на търговски предложения от %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Този екран позволява да приемете и подпишете или да отхвърлите оферта / търговско предложение +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Това е информация за документа, който да приемете или отхвърлите. +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Подписване на оферта / търговско предложение %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Функцията за онлайн подписване е деактивирана или документът е генериран преди активирането на функцията diff --git a/htdocs/langs/bg_BG/compta.lang b/htdocs/langs/bg_BG/compta.lang index e781fa76474..5e537394d3f 100644 --- a/htdocs/langs/bg_BG/compta.lang +++ b/htdocs/langs/bg_BG/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Баланс (преди) Balance=Баланс Debit=Дебит Credit=Кредит +AccountingDebit=Дебит +AccountingCredit=Кредит Piece=Счетоводен документ AmountHTVATRealReceived=Получен (нето) AmountHTVATRealPaid=Платен (нето) @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Изтриване на плащане за социален или фискален данък DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Социални / фискални данъци и плащания CalcModeVATDebt=Режим %sДДС върху осчетоводени задължения%s CalcModeVATEngagement=Режим %sДДС върху приходи - разходи%s @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Отчетът за обор TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Отчетът за оборот, натрупан от данък върху продажбите, не е наличен. Този отчет е наличен само за фактуриран оборот. CalculationMode=Режим на изчисление AccountancyJournal=Счетоводен код на журнал -ACCOUNTING_VAT_SOLD_ACCOUNT=Счетоводна сметка по подразбиране за ДДС при продажби (използва се, ако не е определена при настройка на речника за ДДС) -ACCOUNTING_VAT_BUY_ACCOUNT=Счетоводна сметка по подразбиране за ДДС при покупки (използва се, ако не е определена при настройка на речника за ДДС) -ACCOUNTING_VAT_PAY_ACCOUNT=Счетоводна сметка по подразбиране за плащане на ДДС -ACCOUNTING_ACCOUNT_CUSTOMER=Счетоводна сметка, използвана за контрагенти, които са клиенти +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Специализираната счетоводна сметка, определена в картата на контрагента, ще се използва само за счетоводно отчитане на подсметка. Този ще бъде използван за главната книга и като стойност по подразбиране на подсметката за счетоводното отчитане, ако не е дефинирана специализирана счетоводна сметка за клиента. -ACCOUNTING_ACCOUNT_SUPPLIER=Счетоводна сметка, използвана за контрагенти, които са доставчици +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Специализираната счетоводна сметка, определена в картата на контрагента, ще се използва само за счетоводно отчитане на подсметка. Този ще бъде използван за главната книга и като стойност по подразбиране на подсметката за счетоводното отчитане, ако не е дефинирана специализирана счетоводна сметка за доставчика. ConfirmCloneTax=Потвърдете клонирането на социален/фискален данък ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/bg_BG/contracts.lang b/htdocs/langs/bg_BG/contracts.lang index d8a88714009..d7d2e316617 100644 --- a/htdocs/langs/bg_BG/contracts.lang +++ b/htdocs/langs/bg_BG/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Договори / Абонаменти ContractsAndLine=Договори и договорни линии Contract=Договор ContractLine=Договорна линия +ContractLines=Contract lines Closing=Прекратяване NoContracts=Няма договори MenuServices=Услуги @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Сигурни ли сте, че искате да и MoveToAnotherContract=Преместване на услуга в друг договор. ConfirmMoveToAnotherContract=Избрах нов целеви договор и потвърждавам, че искам да преместя тази услуга в този договор. ConfirmMoveToAnotherContractQuestion=Изберете в кой съществуващ договор (на същия контрагент) искате да преместите тази услуга? -PaymentRenewContractId=Подновяване на договорна линия (№ %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Дата на изтичане NoExpiredServices=Няма изтекли активни услуги ListOfServicesToExpireWithDuration=Списък на услуги изтичащи в следващите %s дни @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Контакт на клиента (п HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/bg_BG/cron.lang b/htdocs/langs/bg_BG/cron.lang index 797d98b0ff3..0a21382679a 100644 --- a/htdocs/langs/bg_BG/cron.lang +++ b/htdocs/langs/bg_BG/cron.lang @@ -26,7 +26,7 @@ CronCommand=Команда CronList=Планирани задачи CronDelete=Изтриване на планирани задачи CronConfirmDelete=Сигурни ли сте, че искате да изтриете тези планирани задачи? -CronExecute=Стартиране на планирана задача +CronExecute=Launch now CronConfirmExecute=Сигурни ли сте, че искате да изпълните тези планирани задачи сега? CronInfo=Модулът за планирани задачи позволява да планирате задача и да я изпълните автоматично. Задачата може да се стартира и ръчно. CronTask=Задача @@ -58,7 +58,7 @@ CronNote=Коментар CronFieldMandatory=Полета %s са задължителни CronErrEndDateStartDt=Крайната дата не може да бъде преди началната дата StatusAtInstall=Състояние при инсталиране на модула -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Деактивиране CronTaskInactive=This job is disabled (not scheduled) CronId=Идентификатор @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Отидете в меню 'Нач JobDisabled=Задачата е деактивирана MakeLocalDatabaseDumpShort=Архивиране на локална база данни MakeLocalDatabaseDump=Създаване на локална база данни. Параметрите са: компресия ('gz' or 'bz' or 'none'), вид архивиране ('mysql', 'pgsql', 'auto'), 1, 'auto' или име на файла за съхранение, брой резервни файлове, които да се запазят +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Внимание, за целите на изпълнението, каквато и да е следващата дата на изпълнение на активирани задачи, вашите задачи могат да бъдат забавени до максимум %s часа, преди да бъдат стартирани. DATAPOLICYJob=Почистване на данни и анонимност JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/bg_BG/datapolicy.lang b/htdocs/langs/bg_BG/datapolicy.lang new file mode 100644 index 00000000000..1cb2ab6c200 --- /dev/null +++ b/htdocs/langs/bg_BG/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Клиент +DATAPOLICY_TIERS_PROSPECT = Потенциален клиент +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Доставчик +DATAPOLICY_CONTACT_CLIENT = Клиент +DATAPOLICY_CONTACT_PROSPECT = Потенциален клиент +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Доставчик +DATAPOLICY_ADHERENT = Член +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/bg_BG/dict.lang b/htdocs/langs/bg_BG/dict.lang index 2c3a9ecbe8e..ebd661a5685 100644 --- a/htdocs/langs/bg_BG/dict.lang +++ b/htdocs/langs/bg_BG/dict.lang @@ -21,7 +21,7 @@ CountryNL=Холандия CountryHU=Унгария CountryRU=Русия CountrySE=Швеция -CountryCI=Кот д'Ивоар +CountryCI=Ivory Coast CountrySN=Сенегал CountryAR=Аржентина CountryCM=Камерун @@ -250,7 +250,9 @@ CountryMF=Свети Мартин ##### Civilities ##### CivilityMME=г-жа +CivilityMMEShort=г-жа CivilityMR=г-н +CivilityMRShort=г-н CivilityMLE=г-ца CivilityMTRE=м-р CivilityDR=д-р diff --git a/htdocs/langs/bg_BG/ecm.lang b/htdocs/langs/bg_BG/ecm.lang index 3744f31660a..a8cb3ebaed8 100644 --- a/htdocs/langs/bg_BG/ecm.lang +++ b/htdocs/langs/bg_BG/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Ръчно създадена директория ECMSectionAuto=Автоматично създадена директория ECMSectionsManual=Ръчно създадено дърво ECMSectionsAuto=Автоматично създадено дърво +ECMSectionsMedias=Medias tree ECMSections=Директории ECMRoot=Основна директория ECMNewSection=Нова директория @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Брой файлове в поддиректориите ECMCreationUser=Създател ECMArea=Документи ECMAreaDesc=Секцията DMS / ECM (Система за управление на документи / Електронно управление на съдържание) позволява да съхранявате, споделяте и бързо да откривате всички видове документи в системата. -ECMAreaDesc2=* Автоматично създадените директории се попълват автоматично при добавяне на документи в картата на даден елемент.
* Ръчно създадените директории могат да бъдат използвани, за да съхранявате документи, които не са свързани с определен елемент. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Директорията %s е изтрита. ECMSectionWasCreated=Директорията %s е създадена. ECMSearchByKeywords=Търсене по ключови думи diff --git a/htdocs/langs/bg_BG/holiday.lang b/htdocs/langs/bg_BG/holiday.lang index 1262acd3b8a..038c21f5310 100644 --- a/htdocs/langs/bg_BG/holiday.lang +++ b/htdocs/langs/bg_BG/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=ЧР -Holidays=Отпуски +Holidays=Leaves +Holiday=Leave CPTitreMenu=Отпуски MenuReportMonth=Месечно извлечение MenuAddCP=Нова молба за отпуск +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Необходимо е да активирате модула 'Отпуски', за да видите тази страница. AddCP=Кандидатстване за отпуск DateDebCP=Начална дата @@ -56,6 +58,7 @@ ConfirmDeleteCP=Сигурни ли сте, че искате да изтрие ErrorCantDeleteCP=Грешка: нямате необходимите права, за да изтриете тази молба за отпуск. CantCreateCP=Нямате право да създавате молби за отпуск. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Необходимо е да изберете начална дата. NoDateFin=Необходимо е да изберете крайна дата. ErrorDureeCP=Вашата молба за отпуск не съдържа работен ден. @@ -79,6 +82,8 @@ MotifCP=Причина UserCP=Потребител ErrorAddEventToUserCP=Възникна грешка при добавяне на извънреден отпуск. AddEventToUserOkCP=Добавянето на извънредния отпуск е завършено. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=История на промените LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Предишен баланс NewSoldeCP=Нов баланс alreadyCPexist=Вече е създадена молба за отпуск в този период. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Групи +users=Потребители +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Молби за отпуск: %s последно променени @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/bg_BG/loan.lang b/htdocs/langs/bg_BG/loan.lang index ddd96a3d613..e5f041c254b 100644 --- a/htdocs/langs/bg_BG/loan.lang +++ b/htdocs/langs/bg_BG/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Финансово задължение InterestAmount=Лихва CapitalRemain=Оставащ капитал TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule # Admin ConfigLoan=Конфигуриране на модула кредити -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Счетоводна сметка за капитал по подразбиране -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Счетоводна сметка за лихва по подразбиране -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Счетоводна сметка за застраховка по подразбиране +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Променяне на финансово задължение diff --git a/htdocs/langs/bg_BG/mailmanspip.lang b/htdocs/langs/bg_BG/mailmanspip.lang index 956b011214e..c3fb569ba5d 100644 --- a/htdocs/langs/bg_BG/mailmanspip.lang +++ b/htdocs/langs/bg_BG/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip MailmanSpipSetup=Настройки на модула Mailman и SPIP MailmanTitle=Mailman система за пощенски списък -TestSubscribe=За тестване на абонамента за Mailman списъци -TestUnSubscribe=За тестване на отписването Mailman списъци -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully +TestSubscribe=За да тествате абонирането за Mailman списъци +TestUnSubscribe=За да тествате отписването от Mailman списъци +MailmanCreationSuccess=Тестът за абониране е изпълнен успешно +MailmanDeletionSuccess=Тестът за отписване е изпълнен успешно SynchroMailManEnabled=Ще се извърши актуализация на Mailman -SynchroSpipEnabled=Ще се извърши актуализация на Spip -DescADHERENT_MAILMAN_ADMINPW=Mailman администраторска парола -DescADHERENT_MAILMAN_URL=URL за Mailman абонамент -DescADHERENT_MAILMAN_UNSUB_URL=URL за Mailman прекратяване на абонамент -DescADHERENT_MAILMAN_LISTS=Списък (а) за автоматично надпис на нови членове (разделени със запетая) -SPIPTitle=SPIP система за управление на съдържанието -DescADHERENT_SPIP_SERVEUR=SPIP Сървър -DescADHERENT_SPIP_DB=SPIP име на базата данни -DescADHERENT_SPIP_USER=SPIP база данни потребител -DescADHERENT_SPIP_PASS=SPIP парола за базата данни +SynchroSpipEnabled=Ще се извърши актуализация на SPIP +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman администраторска парола +DescADHERENT_MAILMAN_URL=URL адрес за абониране в Mailman +DescADHERENT_MAILMAN_UNSUB_URL=URL адрес за отписване в Mailman +DescADHERENT_MAILMAN_LISTS=Списък за автоматично вписване на нови членове (разделени със запетая) +SPIPTitle=SPIP система за управление на съдържание +DescADHERENT_SPIP_SERVEUR=SPIP сървър +DescADHERENT_SPIP_DB=SPIP име на база данни +DescADHERENT_SPIP_USER=SPIP потребител на база данни +DescADHERENT_SPIP_PASS=SPIP парола за база данни AddIntoSpip=Добавяне в SPIP AddIntoSpipConfirmation=Сигурни ли сте, че желаете да добавите този член в SPIP? AddIntoSpipError=Неуспешно добавяне на член в SPIP DeleteIntoSpip=Премахване от SPIP DeleteIntoSpipConfirmation=Сигурни ли сте, че желаете да премахнете този член от SPIP? -DeleteIntoSpipError=Неуспешно за подтискане на потребителя от СПИП -SPIPConnectionFailed=Не можете да се свържите с SPIP -SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database -SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database +DeleteIntoSpipError=Неуспешно изтриване на потребител от SPIP +SPIPConnectionFailed=Неуспешно свързване към SPIP +SuccessToAddToMailmanList=%s е успешно добавен към Mailman списъка %s или SPIP базата данни +SuccessToRemoveToMailmanList=%s е успешно премахнат от Mailman списъка %s или SPIP базата данни diff --git a/htdocs/langs/bg_BG/mails.lang b/htdocs/langs/bg_BG/mails.lang index 67941619c02..ff74df6975f 100644 --- a/htdocs/langs/bg_BG/mails.lang +++ b/htdocs/langs/bg_BG/mails.lang @@ -7,10 +7,10 @@ MailCard=Карта MailRecipients=Получатели MailRecipient=Получател MailTitle=Описание -MailFrom=Подател +MailFrom=От MailErrorsTo=Грешки до MailReply=Отговор до -MailTo=Получател (и) +MailTo=За MailToUsers=До потребител (и) MailCC=Копие до MailToCCUsers=Копие до потребител (и) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/bg_BG/main.lang b/htdocs/langs/bg_BG/main.lang index 78822836149..46f43ddf58b 100644 --- a/htdocs/langs/bg_BG/main.lang +++ b/htdocs/langs/bg_BG/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Няма наличен шаблон за този тип им AvailableVariables=Налични променливи за заместване NoTranslation=Няма превод Translation=Превод +Translations=Translations CurrentTimeZone=Времева зона на PHP (сървър) EmptySearchString=Въведете критерии за търсене EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Валидиран Approve=Одобряване Disapprove=Отхвърляне ReOpen=Повторно отваряне +OpenVerb=Активна Upload=Прикачи ToLink=Свържи Select=Изберете @@ -216,8 +224,9 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Няма дефинирана потребителска група Password=Парола -PasswordRetype=Повторете паролата +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Имайте предвид, че много функции / модули са деактивирани в тази демонстрация. +YourUserFile=Your user file Name=Име NameSlashCompany=Име / Фирма Person=Лице @@ -481,6 +490,7 @@ ActionsOnContact=Събития за този контакт / адрес ActionsOnContract=Свързани събития ActionsOnMember=Събития за този член ActionsOnProduct=Събития за този продукт +ActionsOnAsset=Events for this fixed asset NActionsLate=%s закъснели ToDo=За извършване Completed=Завършено @@ -888,6 +898,9 @@ MassFilesArea=Секция с файлове, създадени от масов ShowTempMassFilesArea=Показване на секцията с файлове, създадени от масови действия ConfirmMassDeletion=Потвърждение за масово изтриване ConfirmMassDeletionQuestion=Сигурни ли сте, че искате да изтриете избраните %s записа? +ConfirmMassClone=Bulk clone confirmation +ConfirmMassCloneQuestion=Select project to clone to +ConfirmMassCloneToOneProject=Clone to project %s RelatedObjects=Свързани обекти ClassifyBilled=Класифициране като фактурирано ClassifyUnbilled=Класифициране като нетаксувано @@ -903,8 +916,8 @@ ExportFilteredList=Експортиране на филтрирания спис ExportList=Списък за експортиране ExportOptions=Настройки за експортиране IncludeDocsAlreadyExported=Включените документи са вече експортирани -ExportOfPiecesAlreadyExportedIsEnable=Експортът на вече експортирани части е разрешен -ExportOfPiecesAlreadyExportedIsDisable=Експортът на вече експортирани части е забранен +ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported +ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported AllExportedMovementsWereRecordedAsExported=Всички експортирани движения бяха записани като експортирани NotAllExportedMovementsCouldBeRecordedAsExported=Не всички експортирани движения могат да бъдат записани като експортирани Miscellaneous=Разни @@ -921,6 +934,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Изтегляне DownloadDocument=Изтегляне на документ +DownloadSignedDocument=Download signed document ActualizeCurrency=Актуализиране на валутния курс Fiscalyear=Фискална година ModuleBuilder=Дизайнер за модули и приложения @@ -1046,6 +1060,7 @@ SearchIntoContracts=Договори SearchIntoCustomerShipments=Клиентски пратки SearchIntoExpenseReports=Разходни отчети SearchIntoLeaves=Отпуск +SearchIntoKM=Knowledge base SearchIntoTickets=Тикети SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Плащания към доставчици @@ -1117,6 +1132,7 @@ DeleteFileText=Сигурни ли сте, че искате да изтриет ShowOtherLanguages=Показване на други езици SwitchInEditModeToAddTranslation=Превключете в режим на редактиране, за да добавите преводи за този език. NotUsedForThisCustomer=Не се използва за този клиент +NotUsedForThisVendor=Not used for this vendor AmountMustBePositive=Amount must be positive ByStatus=By status InformationMessage=Информация @@ -1137,15 +1153,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=На изчакване Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign a Tag +AffectUser=Assign a User +SetSupervisor=Set the supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project/opportunity +TasksRole=Role assigned on each task (if used) +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Курс +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1174,9 +1204,21 @@ Terminated=Деактивиран AddLineOnPosition=Add line on position (at the end if empty) ConfirmAllocateCommercial=Assign sales representative confirmation ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? -CommercialsAffected=Sales representatives affected -CommercialAffected=Sales representative affected +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned YourMessage=Your message YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. UrlToCheck=Url to check Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Вътрешен потребител +ExternalUser=Външен потребител +NoSpecificContactAddress=No specific contact or address +NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate. +HideOnVCard=Hide %s +AddToContacts=Add address to my contacts +LastAccess=Last access +UploadAnImageToSeeAPhotoHere=Upload an image from the tab %s to see a photo here +LastPasswordChangeDate=Last password change date diff --git a/htdocs/langs/bg_BG/members.lang b/htdocs/langs/bg_BG/members.lang index 64e685b7522..ed0153e1479 100644 --- a/htdocs/langs/bg_BG/members.lang +++ b/htdocs/langs/bg_BG/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Друг член (име: %s, ErrorUserPermissionAllowsToLinksToItselfOnly=От съображения за сигурност трябва да имате права за променяне на всички потребители, за да може да свържете член с потребител, който не сте вие. SetLinkToUser=Свързване към Dolibarr потребител SetLinkToThirdParty=Свързване към Dolibarr контрагент +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Списък на членове MembersListToValid=Списък на чернови членове (за валидиране) @@ -34,7 +35,8 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution +WithoutSubscription=Without membership +WaitingSubscription=Membership pending MemberId=Member Id MemberRef=Member Ref NewMember=Нов член @@ -72,6 +74,12 @@ MemberTypeCanNotBeDeleted=Типът член не може да бъде изт NewSubscription=Нова вноска NewSubscriptionDesc=Този формуляр позволява да регистрирате вашия абонамент като за нов член на организацията. Ако искате да подновите вашият абонамент (ако вече сте член), моля свържете се вместо това с ръководството на организация, чрез имейл %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Продължителност +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Закъснял SubscriptionNotReceived=Contribution never received @@ -136,7 +144,7 @@ CardContent=Съдържание на вашата членска карта # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Искаме да ви уведомим, че вашата молба за членство е получена.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Supported values:
- Keep empty: Can link elements with any projects in the same company (default)
- "all": Can link elements with any projects, even projects of other companies
- A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
LatestProjects=Проекти: %s последни LatestModifiedProjects=Проекти: %s последно променени OtherFilteredTasks=Други филтрирани задачи @@ -259,7 +263,7 @@ TimeSpentInvoiced=Фактурирано отделено време TimeSpentForIntervention=Отделено време TimeSpentForInvoice=Отделено време OneLinePerUser=Един ред на потребител -ServiceToUseOnLines=Услуга за използване по редовете +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Фактура %s е генерирана въз основа на отделеното време по проекта InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Маркирайте, ако въвеждате график на задачите в проекта и планирате да генерирате фактура(и) за клиента от графика на задачите в проекта (не маркирайте, ако планирате да създадете фактура, която не се основава на въведеният график на задачите). Забележка: За да генерирате фактура, отидете в раздела "Отделено време" на проекта и изберете редовете, които да включите. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Profit is calculated using AddPersonToTask=Add also to tasks UsageOrganizeEvent=Usage: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/bg_BG/propal.lang b/htdocs/langs/bg_BG/propal.lang index 97509397a2a..84d70a14eb0 100644 --- a/htdocs/langs/bg_BG/propal.lang +++ b/htdocs/langs/bg_BG/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Няма чернови на предложения CopyPropalFrom=Създаване на търговско предложение, чрез копиране на съществуващо предложение CreateEmptyPropal=Създаване на празно търговско предложение или списък с продукти / услуги DefaultProposalDurationValidity=Срок на валидност по подразбиране за търговско предложение (в дни) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Използване тип на контакт / адрес 'Представител проследяващ предложението', ако е определен, вместо адрес на контрагента като адрес на получателя на предложението ConfirmClonePropal=Сигурни ли сте, че искате да клонирате това търговско предложение с № %s? ConfirmReOpenProp=Сигурни ли сте, че искате да отворите отново търговско предложение с № %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Забавяне на наличността SetAvailability=Определете забавяне на наличност AfterOrder=след поръчка OtherProposals=Други предложения + ##### Availability ##### AvailabilityTypeAV_NOW=Незабавно AvailabilityTypeAV_1W=1 седмица AvailabilityTypeAV_2W=2 седмици AvailabilityTypeAV_3W=3 седмици AvailabilityTypeAV_1M=1 месец -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Изготвил предложение TypeContact_propal_external_BILLING=Получател на фактура TypeContact_propal_external_CUSTOMER=Получател на предложение TypeContact_propal_external_SHIPPING=Получател на доставка + # Document models -DocModelAzurDescription=Пълен шаблон на предложение (стара реализация на шаблон Cyan) -DocModelCyanDescription=Пълен модел на предложение +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Случай, проследяван от +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Шаблон по подразбиране, когато се приключва търговско предложение (не таксувано) DefaultModelPropalCreate=Създаване на шаблон по подразбиране DefaultModelPropalToBill=Шаблон по подразбиране, когато се приключва търговско предложение (за да бъде фактурирано) -DefaultModelPropalClosed=Шаблон по подразбиране, когато се приключва търговско предложение (не таксувано) +DocModelAzurDescription=Пълен шаблон на предложение (стара реализация на шаблон Cyan) +DocModelCyanDescription=Пълен модел на предложение +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Отхвърляне +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Име, фамилия, фирмен печат, дата и подпис ProposalsStatisticsSuppliers=Статистика на запитвания към доставчици -CaseFollowedBy=Случай, проследяван от -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/bg_BG/recruitment.lang b/htdocs/langs/bg_BG/recruitment.lang index 8ae43b3daff..69e568eac35 100644 --- a/htdocs/langs/bg_BG/recruitment.lang +++ b/htdocs/langs/bg_BG/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Заплата +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/bg_BG/salaries.lang b/htdocs/langs/bg_BG/salaries.lang index 8fba65c3c03..2a75ac11806 100644 --- a/htdocs/langs/bg_BG/salaries.lang +++ b/htdocs/langs/bg_BG/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Счетоводна сметка, използвана за служители на контрагенти -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Специализираната счетоводна сметка, дефинирана в картата на потребителя, ще се използва само за вторично счетоводно отчитане. Тя ще бъде използвана в регистъра на главната счетоводна книга и като стойност по подразбиране за вторично счетоводно отчитане, ако не е дефинирана специализирана потребителска счетоводна сметка за потребителя. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Счетоводна сметка по подразбиране за плащане на заплати CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary Salary=Заплата @@ -24,3 +24,4 @@ SalariesStatistics=Статистика на заплати SalariesAndPayments=Заплати и плащания ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/bg_BG/stripe.lang b/htdocs/langs/bg_BG/stripe.lang index c3902716951..00f338b7ed7 100644 --- a/htdocs/langs/bg_BG/stripe.lang +++ b/htdocs/langs/bg_BG/stripe.lang @@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Работен Webhook ключ ONLINE_PAYMENT_WAREHOUSE=Склад, който да се използва за намаляване на наличности, когато се извършва онлайн плащане
(Да се направи, когато възможността за намаляване на наличности се извършва при действие върху фактура и онлайн плащането генерира фактурата?) StripeLiveEnabled=Активиран е работен режим на Stripe (в противен случай тестов режим / пясъчник) StripeImportPayment=Импортиране на Stripe плащания -ExampleOfTestCreditCard=Пример с кредитна карта за тест: %s => валидна, %s => грешка в CVC, %s => изтекла, %s => неуспешно таксуване +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +ExampleOfTestBankAcountForSEPA=Example of bank account BAN for direct debit test: %s StripeGateways=Stripe шлюзове OAUTH_STRIPE_TEST_ID=Тестов Stripe Connect Client ID (ca_...) OAUTH_STRIPE_LIVE_ID=Реален Stripe Connect Client ID (ca_...) @@ -61,6 +62,7 @@ DeleteACard=Изтриване на карта ConfirmDeleteCard=Сигурни ли сте, че искате да изтриете тази кредитна или дебитна карта? CreateCustomerOnStripe=Създаване на клиент в Stripe CreateCardOnStripe=Създаване на карта в Stripe +CreateBANOnStripe=Create bank on Stripe ShowInStripe=Показване в Stripe StripeUserAccountForActions=Потребителски акаунт, който да се използва за известяване по имейл при някои Stripe събития (Stripe изплащания) StripePayoutList=Списък със Stripe изплащания @@ -69,3 +71,8 @@ ToOfferALinkForLiveWebhook=Връзка към настройка на Stripe We PaymentWillBeRecordedForNextPeriod=Плащането ще бъде регистрирано за следващия период. ClickHereToTryAgain=Кликнете тук, за да опитате отново ... 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 +STRIPE_CARD_PRESENT=Card Present for Stripe Terminals +TERMINAL_LOCATION=Location (address) for Stripe Terminals +RequestDirectDebitWithStripe=Request Direct Debit with Stripe +STRIPE_SEPA_DIRECT_DEBIT=Enable the Direct Debit payments through Stripe + diff --git a/htdocs/langs/bg_BG/ticket.lang b/htdocs/langs/bg_BG/ticket.lang index b3e2d54fa24..be19f01c898 100644 --- a/htdocs/langs/bg_BG/ticket.lang +++ b/htdocs/langs/bg_BG/ticket.lang @@ -26,7 +26,9 @@ Permission56002=Промяна на тикети Permission56003=Изтриване на тикети Permission56004=Управление на тикети Permission56005=Преглед на тикети от всички контрагенти (не е приложимо за външни потребители, винаги ще бъдат ограничени до контрагента от който зависят) +Permission56006=Export tickets +Tickets=Тикети TicketDictType=Тикет - Видове TicketDictCategory=Тикет - Групи TicketDictSeverity=Тикет - Приоритети @@ -60,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Сътрудник от страна н OriginEmail=Reporter Email Notify_TICKET_SENTBYMAIL=Изпращане на тикет съобщението по имейл +ExportDataset_ticket_1=Тикети + # Status Read=Прочетен Assigned=Възложен @@ -90,8 +94,8 @@ TicketPublicAccess=Публичен интерфейс, който не изис TicketSetupDictionaries=Видът на тикета, приоритетът и категорията се конфигурират от речници TicketParamModule=Настройка на променливите в модула TicketParamMail=Настройка за имейл известяване -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Текстово съобщение, изпратено след създаване на тикет @@ -99,6 +103,8 @@ TicketNewEmailBodyHelp=Текстът, посочен тук, ще бъде вк TicketParamPublicInterface=Настройка на публичен интерфейс TicketsEmailMustExist=Изисква съществуващ имейл адрес, за да се създаде тикет TicketsEmailMustExistHelp=За да се създаде нов тикет през публичния интерфейс имейл адресът трябва да съществува в базата данни +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Публичен интерфейс TicketUrlPublicInterfaceLabelAdmin=Алтернативен URL адрес за публичния интерфейс TicketUrlPublicInterfaceHelpAdmin=Възможно е да се дефинира псевдоним на уеб сървъра и по този начин да се предостави достъп до публичния интерфейс от друг URL адрес (сървърът трябва да действа като прокси сървър за този нов URL адрес) @@ -147,6 +153,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +198,7 @@ TicketAssigned=Тикетът е възложен TicketChangeType=Променяне на вида TicketChangeCategory=Променяне на категория TicketChangeSeverity=Променяне на приоритет -TicketAddMessage=Добавяне на съобщение -AddMessage=Добавяне на съобщение +TicketAddMessage=Add private message MessageSuccessfullyAdded=Тикетът е добавен TicketMessageSuccessfullyAdded=Съобщението е успешно добавено TicketMessagesList=Списък със съобщения @@ -202,8 +209,8 @@ TicketSeverity=Приоритет ShowTicket=Преглед на тикет RelatedTickets=Свързани тикети TicketAddIntervention=Създаване на интервенция -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Потвърдете приключването на тикета ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +224,17 @@ SendMessageByEmail=Изпращане на съобщение по имейл TicketNewMessage=Ново съобщение ErrorMailRecipientIsEmptyForSendTicketMessage=Полето за получател е празно, не беше изпратен имейл. TicketGoIntoContactTab=Моля отидете в раздел "Контакти" откъдето може да изберете -TicketMessageMailIntro=Въведение +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Този текст се добавя само в началото на имейла и няма да бъде запазен. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
A new answer has been added to a ticket that you follow. Here is the message:
TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Подпис -TicketMessageMailSignatureHelp=Този текст се добавя само в края на имейла и няма да бъде запазен. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Подпис в отговора към имейла -TicketMessageMailSignatureHelpAdmin=Този текст ще бъде вмъкнат след съобщението за отговор. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Този текст ще бъде вмъкнат след съобщението за отговор. TicketMessageHelp=Само този текст ще бъде запазен в списъка със съобщения към тикета. TicketMessageSubstitutionReplacedByGenericValues=Заместващите променливи се заменят с общи стойности. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Изминало време TicketTimeToRead=Изминало време преди прочитане TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -239,6 +245,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Ново съобщение беше TicketAssignedToYou=Тикетът ви е възложен TicketAssignedEmailBody=Беше ви възложен тикет с проследяващ код %s от %s MarkMessageAsPrivate=Маркиране на съобщението като лично +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Това съобщение няма да се показва на външни потребители TicketEmailOriginIssuer=Контакт на контрагента проследяващ тикета InitialMessage=Първоначално съобщение @@ -294,7 +301,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Може да следите напре TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Моля, не отговаряйте директно на този имейл! Използвайте връзката, за да отговорите, чрез интерфейса. TicketPublicInfoCreateTicket=Тази форма позволява да регистрирате тикет в системата за управление и обслужване на запитвания. -TicketPublicPleaseBeAccuratelyDescribe=Моля, опишете подробно проблема. Посочете възможно най-много информация, за да ни позволите да идентифицираме правилно това запитване. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Моля, въведете проследяващ код и имейл адрес TicketTrackId=Код за проследяване OneOfTicketTrackId=Код за проследяване diff --git a/htdocs/langs/bg_BG/users.lang b/htdocs/langs/bg_BG/users.lang index 908b2062568..df1a93675a5 100644 --- a/htdocs/langs/bg_BG/users.lang +++ b/htdocs/langs/bg_BG/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Премахване от групата PasswordChangedAndSentTo=Паролата е сменена и изпратена на %s. PasswordChangeRequest=Заявка за промяна на парола на %s PasswordChangeRequestSent=Заявка за промяна на парола на %s е изпратена на %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Потвърдете възстановяване на парола MenuUsersAndGroups=Потребители и групи @@ -66,9 +66,9 @@ LinkedToDolibarrUser=Link to user LinkedToDolibarrThirdParty=Link to third party CreateDolibarrLogin=Създаване на потребител CreateDolibarrThirdParty=Създаване на контрагент -LoginAccountDisableInDolibarr=Профилът е деактивиран в системата. +LoginAccountDisableInDolibarr=Account disabled in Dolibarr +PASSWORDInDolibarr=Password modified in Dolibarr UsePersonalValue=Използване на лична стойност -InternalUser=Вътрешен потребител ExportDataset_user_1=Потребители и техните реквизити DomainUser=Домейн потребител %s Reactivate=Възстановяване @@ -128,3 +128,8 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows +UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book. +EnablePublicVirtualCard=Enable the public virtual user card +PublicVirtualCardUrl=Public virtual user card diff --git a/htdocs/langs/bg_BG/website.lang b/htdocs/langs/bg_BG/website.lang index 63fc67e371d..afb0a474e42 100644 --- a/htdocs/langs/bg_BG/website.lang +++ b/htdocs/langs/bg_BG/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Код +WebsiteName=Name of the website WebsiteSetupDesc=Регистрирайте тук уебсайтовете, които искате да използвате, след това отидете в менюто Уебсайтове, за да ги редактирате. DeleteWebsite=Изтриване на уебсайт ConfirmDeleteWebsite=Сигурни ли сте, че искате да изтриете този уебсайт? Всички страници и съдържание им ще бъдат премахнати. Качените файлове (в директорията /medias/, чрез ECM модула, ...) ще останат. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Добавка в долната част на HTML загл WEBSITE_ROBOT=Съдържание на robots файл (robots.txt) WEBSITE_HTACCESS=Съдържание на .htaccess файл WEBSITE_MANIFEST_JSON=Съдържание на manifest.json файл -WEBSITE_README=Съдържание на readme.md файл WEBSITE_KEYWORDSDesc=Use a comma to separate values -EnterHereLicenseInformation=Въведете тук мета данни или информация за лиценз, за да попълните README.md файла. Ако разпространявате уебсайта си като шаблон, файлът ще бъде включен в пакета на шаблона. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=HTML заглавие (само за тази страница) PageNameAliasHelp=Име или псевдоним на страницата.
Този псевдоним се използва и за измисляне на SEO URL адрес, когато уебсайтът се управлява от виртуален хост на уеб сървър (като Apacke, Nginx, ...). Използвайте бутона "%s", за да редактирате този псевдоним. EditTheWebSiteForACommonHeader=Забележка: Ако искате да дефинирате персонализирано заглавие за всички страници, редактирайте заглавието на ниво сайт, вместо на ниво страница / контейнер. @@ -42,10 +43,12 @@ ViewPageInNewTab=Преглед на страницата в нов раздел SetAsHomePage=Задаване като начална страница RealURL=Реален URL адрес ViewWebsiteInProduction=Преглед на уебсайт, чрез начални URL адреси +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Използвайте с Apache / Nginx / ...
Създайте на вашият уеб сървър (Apache, Nginx, ...) специален виртуален хост с PHP поддръжка и основна директория в
%s ExampleToUseInApacheVirtualHostConfig=Пример за използване при настройка на виртуалния хост в Apache: YouCanAlsoTestWithPHPS=Използване, чрез вграден PHP сървър
В среда за разработка може да предпочетете да тествате сайта с вградения PHP уеб сървър (изисква се PHP 5.5) като стартирате
php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Стартирайте уебсайта си на друг Dolibarr хостинг доставчик
Ако нямате уеб сървър като Apache или NGinx в интернет може да експортирате и импортирате уебсайта си в друга Dolibarr инстанция, предоставена от друг Dolibarr хостинг доставчик, който осигурява пълна интеграция с модула на уебсайта. Може да намерите списък с някои доставчици на Dolibarr хостинг услуги на https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
%s ReadPerm=Четене WritePerm=Писане @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Може да редактирате изходни YouCanEditHtmlSource=
You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

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

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

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

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

To include an image stored into the documents directory, use the viewimage.php wrapper:
Example, for an image into documents/medias (open directory for public access), syntax is:
<img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
#YouCanEditHtmlSource2=
To include a image shared publicaly, use the viewimage.php wrapper:
Example with a shared key 123456789, syntax is:
<img src="/viewimage.php?hashp=12345679012...">
YouCanEditHtmlSource2=For an image shared with a share link (open access using the sharing hash key of file), syntax is:
<img src="/viewimage.php?hashp=12345679012...">
-YouCanEditHtmlSourceMore=
More examples of HTML or dynamic code available on the wiki documentation
. +YouCanEditHtmlSourceMore=
More examples of HTML or dynamic code available on the wiki documentation
. ClonePage=Клониране на страница / контейнер CloneSite=Клониране на сайт SiteAdded=Уебсайтът е добавен @@ -137,7 +140,7 @@ PagesRegenerated=%s page(s)/container(s) regenerated RegenerateWebsiteContent=Regenerate web site cache files AllowedInFrames=Allowed in Frames DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. -GenerateSitemaps=Generate website sitemap file +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... ConfirmSitemapsCreation=Confirm sitemap generation SitemapGenerated=Sitemap file %s generated @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon must be png ErrorFaviconSize=Favicon must be sized 16x16, 32x32 or 64x64 FaviconTooltip=Upload an image which needs to be a png (16x16, 32x32 or 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/bn_BD/accountancy.lang b/htdocs/langs/bn_BD/accountancy.lang index 8bc4b54a090..7158d53896a 100644 --- a/htdocs/langs/bn_BD/accountancy.lang +++ b/htdocs/langs/bn_BD/accountancy.lang @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -112,7 +114,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,7 +122,7 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance @@ -161,41 +163,46 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Social journal ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +217,7 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +226,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=By year NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -264,13 +271,13 @@ Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +285,31 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +325,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Expense reports AccountingJournalType8=Inventory AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +336,13 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model of export @@ -394,6 +406,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +438,10 @@ Binded=Lines bound ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +AccountancyErrorMismatchLetterCode=Mismatch in reconcile code +AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 +AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +468,5 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal NAccounts=%s accounts diff --git a/htdocs/langs/bn_BD/datapolicy.lang b/htdocs/langs/bn_BD/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/bn_BD/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/bn_BD/dict.lang b/htdocs/langs/bn_BD/dict.lang index ec315d97142..00ab5a05f24 100644 --- a/htdocs/langs/bn_BD/dict.lang +++ b/htdocs/langs/bn_BD/dict.lang @@ -21,7 +21,7 @@ CountryNL=Netherlands CountryHU=Hungary CountryRU=Russia CountrySE=Sweden -CountryCI=Ivoiry Coast +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Cameroon @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Mrs. +CivilityMMEShort=Mrs. CivilityMR=Mr. +CivilityMRShort=Mr. CivilityMLE=Ms. CivilityMTRE=Master CivilityDR=Doctor diff --git a/htdocs/langs/bn_BD/ecm.lang b/htdocs/langs/bn_BD/ecm.lang index 494a6c55164..5ced4ec5617 100644 --- a/htdocs/langs/bn_BD/ecm.lang +++ b/htdocs/langs/bn_BD/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manual directory ECMSectionAuto=Automatic directory ECMSectionsManual=Manual tree ECMSectionsAuto=Automatic tree +ECMSectionsMedias=Medias tree ECMSections=Directories ECMRoot=ECM Root ECMNewSection=New directory @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Number of files in sub-directories ECMCreationUser=Creator ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automatic directories are filled automatically when adding documents from card of an element.
* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Directory %s has been deleted. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Search by keywords diff --git a/htdocs/langs/bn_BD/loan.lang b/htdocs/langs/bn_BD/loan.lang index d271ed0c140..3bbb0e455d5 100644 --- a/htdocs/langs/bn_BD/loan.lang +++ b/htdocs/langs/bn_BD/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Financial commitment InterestAmount=Interest CapitalRemain=Capital remain TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule # Admin ConfigLoan=Configuration of the module loan -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Edit financial commitment diff --git a/htdocs/langs/bn_BD/mailmanspip.lang b/htdocs/langs/bn_BD/mailmanspip.lang index bab4b3576b4..6ff3ac9f770 100644 --- a/htdocs/langs/bn_BD/mailmanspip.lang +++ b/htdocs/langs/bn_BD/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Subscription test was executed successfully MailmanDeletionSuccess=Unsubscription test was executed successfully SynchroMailManEnabled=A Mailman update will be performed SynchroSpipEnabled=A Spip update will be performed -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) diff --git a/htdocs/langs/bn_BD/mails.lang b/htdocs/langs/bn_BD/mails.lang index 52c4d4dbf69..bd80b576c5a 100644 --- a/htdocs/langs/bn_BD/mails.lang +++ b/htdocs/langs/bn_BD/mails.lang @@ -7,10 +7,10 @@ MailCard=EMailing card MailRecipients=Recipients MailRecipient=Recipient MailTitle=Description -MailFrom=Sender +MailFrom=From MailErrorsTo=Errors to MailReply=Reply to -MailTo=Receiver(s) +MailTo=To MailToUsers=To user(s) MailCC=Copy to MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/bn_BD/main.lang b/htdocs/langs/bn_BD/main.lang index 3bb0a52d6b3..0502c2c9bfe 100644 --- a/htdocs/langs/bn_BD/main.lang +++ b/htdocs/langs/bn_BD/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=No template available for this email type AvailableVariables=Available substitution variables NoTranslation=No translation Translation=Translation +Translations=Translations CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Valid Approve=Approve Disapprove=Disapprove ReOpen=Re-Open +OpenVerb=Opened Upload=Upload ToLink=Link Select=Select @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=No user group defined Password=Password -PasswordRetype=Retype your password +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. Name=Name NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Description DescriptionOfLine=Description of line DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Doc template DefaultModel=Default doc template Action=Event @@ -344,7 +353,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product +ActionsOnAsset=Events for this fixed asset NActionsLate=%s late ToDo=To do Completed=Completed @@ -517,6 +527,7 @@ or=or Other=Other Others=Others OtherInformations=Other information +Workflow=Workflow Quantity=Quantity Qty=Qty ChangedBy=Changed by @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Attached files and documents JoinMainDoc=Join main document +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Feature disabled MoveBox=Move widget Offered=Offered NotEnoughPermissions=You don't have permission for this action +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Session name Method=Method Receive=Receive @@ -798,6 +811,7 @@ URLPhoto=URL of photo/logo SetLinkToAnotherThirdParty=Link to another third party LinkTo=Link to LinkToProposal=Link to proposal +LinkToExpedition= Link to expedition LinkToOrder=Link to order LinkToInvoice=Link to invoice LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Download DownloadDocument=Download document +DownloadSignedDocument=Download signed document ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Rate +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user diff --git a/htdocs/langs/bn_BD/other.lang b/htdocs/langs/bn_BD/other.lang index 49ff93dd589..b7344157bf3 100644 --- a/htdocs/langs/bn_BD/other.lang +++ b/htdocs/langs/bn_BD/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Customer proposal validated Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail Notify_WITHDRAW_TRANSMIT=Transmission withdrawal Notify_WITHDRAW_CREDIT=Credit withdrawal @@ -110,7 +112,7 @@ ChooseYourDemoProfilMore=...or build your own profile
(manual module selectio DemoFundation=Manage members of a foundation DemoFundation2=Manage members and bank account of a foundation DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Manage a shop with a cash desk +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Shop selling products with Point Of Sales DemoCompanyManufacturing=Company manufacturing products DemoCompanyAll=Company with multiple activities (all main modules) @@ -181,6 +183,7 @@ SizeUnitfoot=foot SizeUnitpoint=point BugTracker=Bug tracker SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
Change will become effective once you click on the confirmation link in the email.
Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Back to login page AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
In this mode, Dolibarr can't know nor change your password.
Contact your system administrator if you want to change your password. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -303,3 +309,31 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Close +Autofill = Autofill + +# externalsite +ExternalSiteSetup=Setup link to external website +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Failed to remove file %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Passive mode +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/bn_IN/datapolicy.lang b/htdocs/langs/bn_IN/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/bn_IN/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/bs_BA/accountancy.lang b/htdocs/langs/bs_BA/accountancy.lang index 3980b533703..a15b6a0d8b7 100644 --- a/htdocs/langs/bs_BA/accountancy.lang +++ b/htdocs/langs/bs_BA/accountancy.lang @@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type ACCOUNTING_EXPORT_PREFIX_SPEC=Odredi prefiks za naziv datoteke ThisService=This service ThisProduct=Ovaj proizvod -DefaultForService=Default for service -DefaultForProduct=Pretpostavljeno za proizvod +DefaultForService=Default for services +DefaultForProduct=Default for products ProductForThisThirdparty=Product for this thirdparty ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest @@ -48,8 +48,9 @@ CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,28 +59,29 @@ MainAccountForSuppliersNotDefined=Main accounting account for vendors not define MainAccountForUsersNotDefined=Main accounting account for users not defined in setup MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Accounting area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you automaticaly the correct default accounting account when transferring data in accounting AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. @@ -99,7 +101,8 @@ ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal ShowAccountingAccountInLedger=Show accounting account in ledger ShowAccountingAccountInJournals=Show accounting account in journals -AccountAccountingSuggest=Predloženi računovodstveni račun +DataUsedToSuggestAccount=Data used to suggest account +AccountAccountingSuggest=Account suggested MenuDefaultAccounts=Default accounts MenuBankAccounts=Žiro računi MenuVatAccounts=Vat accounts @@ -112,7 +115,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Vendor invoice binding @@ -120,10 +123,11 @@ ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modifikacija transakcije ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance +AccountBalanceSubAccount=Sub-accounts balance ObjectsRef=Source object ref CAHTF=Total purchase vendor before tax TotalExpenseReport=Total expense report @@ -161,41 +165,47 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Dnevnik prodaje -ACCOUNTING_PURCHASE_JOURNAL=Dnevnik nabavki -ACCOUNTING_MISCELLANEOUS_JOURNAL=Dnevnik raznih stavki +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Dnevnik troškova -ACCOUNTING_SOCIAL_JOURNAL=Dnevnik doprinosa +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Dnevnik doprinosa ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -210,7 +220,8 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts +AccountingCategories=Custom groups of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -219,12 +230,12 @@ ByPredefinedAccountGroups=By predefined groups ByPersonalizedAccountGroups=By personalized groups ByYear=Po godini NotMatch=Not Set -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all operation lines of the accounting for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. -ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all operation lines related to the same transaction will be deleted) +ConfirmDeleteMvt=This will delete all lines in accountancy for the year/month and/or for a specific journal (At least one criterion is required). You will have to reuse the feature '%s' to have the deleted record back in the ledger. +ConfirmDeleteMvtPartial=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -258,19 +269,20 @@ ShowSubtotalByGroup=Show subtotal by level Pcgtype=Group of account PcgtypeDesc=Group of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report. +AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports. Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -278,30 +290,32 @@ DescVentilExpenseReportMore=If you setup accounting account on type of expense r DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open -OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Validate movements +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Overview of movements not validated and locked +AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked +NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked +ValidateMovements=Validate and lock movements... DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically. -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +NoNewRecordSaved=No more record to transfer +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=Nije izmireno -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts ## Admin BindingOptions=Binding options @@ -317,9 +331,10 @@ AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Banka -AccountingJournalType5=Expenses report +AccountingJournalType5=Izvještaj o troškovima AccountingJournalType8=Inventar AccountingJournalType9=Has-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s NumberOfAccountancyEntries=Number of entries @@ -327,10 +342,15 @@ NumberOfAccountancyMovements=Number of movements ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting +ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting ## Export -NotifiedExportDate=Flag exported lines as exported (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +NotExportLettering=Do not export the lettering when generating the file +NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedExportFull=Export documents ? +DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal Modelcsv=Model izvoza @@ -386,7 +406,7 @@ 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. +SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed. ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. ## Dictionary @@ -394,6 +414,26 @@ Range=Range of accounting account Calculated=Calculated Formula=Formula +## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual +Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual +AccountancyNoLetteringModified=No reconcile modified +AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified +AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified +AccountancyNoUnletteringModified=No unreconcile modified +AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modified +AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified + +## Confirm box +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? +ConfirmMassDeleteBookkeepingWriting=Bulk Delete confirmation +ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +446,11 @@ 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 +ErrorArchiveAddFile=Can't put "%s" file in archive ## Import ImportAccountingEntries=Accounting entries @@ -432,6 +477,7 @@ 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 +DocsAlreadyExportedAreExcluded=Docs already exported are excluded +ClickToHideAlreadyExportedLines=Click to hide already exported lines NAccounts=%s accounts diff --git a/htdocs/langs/bs_BA/compta.lang b/htdocs/langs/bs_BA/compta.lang index b15eb833c59..4246c45ffe0 100644 --- a/htdocs/langs/bs_BA/compta.lang +++ b/htdocs/langs/bs_BA/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Stanje (prije) Balance=Stanje Debit=Duguje Credit=Potražuje +AccountingDebit=Duguje +AccountingCredit=Potražuje Piece=Računovodstvena dok. AmountHTVATRealReceived=Neto prikupljeno AmountHTVATRealPaid=Neto plaćeno @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Delete a social or fiscal tax payment DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Social and fiscal taxes and payments CalcModeVATDebt=Mode %sVAT on commitment accounting%s. CalcModeVATEngagement=Mode %sVAT on incomes-expenses%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Calculation mode AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Purchase turnover invoiced ReportPurchaseTurnoverCollected=Purchase turnover collected IncludeVarpaysInResults = Include various payments in reports IncludeLoansInResults = Include loans in reports -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/bs_BA/contracts.lang b/htdocs/langs/bs_BA/contracts.lang index 013e35d14b5..7207e405ac1 100644 --- a/htdocs/langs/bs_BA/contracts.lang +++ b/htdocs/langs/bs_BA/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contracts/Subscriptions ContractsAndLine=Contracts and line of contracts Contract=Ugovor ContractLine=Contract line +ContractLines=Contract lines Closing=Closing NoContracts=Nema ugovora MenuServices=Usluge @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Pomjeri uslugu u drugi ugovor. ConfirmMoveToAnotherContract=Izabrao sam novi ugovor i potvrđujem da želim premjestiti ovu uslugu u odabrani ugovor. ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Obnovi stavku ugovora (broj %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Datum isticanja NoExpiredServices=Nema istekle aktivne usluge ListOfServicesToExpireWithDuration=Lista usluga pred isticanje za %s dana @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Kontakt kupca za potpisivanje ugovora HideClosedServiceByDefault=Hide closed services by default ShowClosedServices=Show Closed Services HideClosedServices=Hide Closed Services +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/bs_BA/cron.lang b/htdocs/langs/bs_BA/cron.lang index 9d02c089388..230fdb79da2 100644 --- a/htdocs/langs/bs_BA/cron.lang +++ b/htdocs/langs/bs_BA/cron.lang @@ -26,7 +26,7 @@ CronCommand=Komanda CronList=Scheduled jobs CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job +CronExecute=Launch now CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job @@ -58,7 +58,7 @@ CronNote=Komentar CronFieldMandatory=Polja %s su obavezna CronErrEndDateStartDt=Datum završetka ne može biti prije datuma početka StatusAtInstall=Status at module installation -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Iskljući CronTaskInactive=This job is disabled (not scheduled) CronId=ID @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. DATAPOLICYJob=Data cleaner and anonymizer JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/bs_BA/datapolicy.lang b/htdocs/langs/bs_BA/datapolicy.lang new file mode 100644 index 00000000000..6ca7b85b6be --- /dev/null +++ b/htdocs/langs/bs_BA/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Kupac +DATAPOLICY_TIERS_PROSPECT = Mogući klijent +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Dobavljač +DATAPOLICY_CONTACT_CLIENT = Kupac +DATAPOLICY_CONTACT_PROSPECT = Mogući klijent +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Dobavljač +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/bs_BA/dict.lang b/htdocs/langs/bs_BA/dict.lang index d99dd8d4a81..3fba8165d1b 100644 --- a/htdocs/langs/bs_BA/dict.lang +++ b/htdocs/langs/bs_BA/dict.lang @@ -21,7 +21,7 @@ CountryNL=Holandija CountryHU=Mađarska CountryRU=Rusija CountrySE=Švedska -CountryCI=Obala Slonovače +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Kamerun @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Gospođa +CivilityMMEShort=Gospođa CivilityMR=Gospodin +CivilityMRShort=Gospodin CivilityMLE=Gospođica CivilityMTRE=Master CivilityDR=Doktor diff --git a/htdocs/langs/bs_BA/ecm.lang b/htdocs/langs/bs_BA/ecm.lang index ae5d1288de0..e91a29eb4ff 100644 --- a/htdocs/langs/bs_BA/ecm.lang +++ b/htdocs/langs/bs_BA/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Ručni direktorij ECMSectionAuto=Automatski direktorij ECMSectionsManual=Ručna struktura ECMSectionsAuto=Automatska struktura +ECMSectionsMedias=Medias tree ECMSections=Direktoriji ECMRoot=ECM Root ECMNewSection=Novi direktorij @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Broj fajlova u poddirektoriju ECMCreationUser=Kreator ECMArea=DMS/ECM area ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automatski direktoriji se popunjavaju automatski nakon dodavanja dokumenata sa kartice elementa.
* Manuelni direktoriji se mogu koristit za snimanje dokumenata koji nisu povezani za određeni element. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Direktorij %s je obrisan. ECMSectionWasCreated=Directory %s has been created. ECMSearchByKeywords=Traži po ključnim riječima diff --git a/htdocs/langs/bs_BA/holiday.lang b/htdocs/langs/bs_BA/holiday.lang index 76dc1b6154c..e6823a7116c 100644 --- a/htdocs/langs/bs_BA/holiday.lang +++ b/htdocs/langs/bs_BA/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Kadrovska služba -Holidays=Leave +Holidays=Leaves +Holiday=Leave CPTitreMenu=Leave MenuReportMonth=Mjesečni izvještaj MenuAddCP=New leave request +MenuCollectiveAddCP=New collective leave request NotActiveModCP=You must enable the module Leave to view this page. AddCP=Make a leave request DateDebCP=Datum početka @@ -56,6 +58,7 @@ ConfirmDeleteCP=Confirm the deletion of this leave request? ErrorCantDeleteCP=Error you don't have the right to delete this leave request. CantCreateCP=You don't have the right to make leave requests. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Morate odabrati datum početka. NoDateFin=Morate odabrati datum završetka. ErrorDureeCP=Your leave request does not contain working day. @@ -79,6 +82,8 @@ MotifCP=Razlog UserCP=Korisnik ErrorAddEventToUserCP=Došlo je do greške prilikom dodavanja izuzetnog odsustva. AddEventToUserOkCP=Dodavanje izuzetno odsustva je kopmletirano. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=View change logs LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Prethodno stanje NewSoldeCP=Novo stanje alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Grupe +users=Korisnici +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Latest %s modified leave requests @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/bs_BA/loan.lang b/htdocs/langs/bs_BA/loan.lang index ac858f1094f..13bb2ee9644 100644 --- a/htdocs/langs/bs_BA/loan.lang +++ b/htdocs/langs/bs_BA/loan.lang @@ -24,11 +24,11 @@ FinancialCommitment=Financial commitment InterestAmount=Interest CapitalRemain=Capital remain TermPaidAllreadyPaid = This term is allready paid -CantUseScheduleWithLoanStartedToPaid = Can't use scheduler for a loan with payment started +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = You can't modify interest if you use schedule # Admin ConfigLoan=Configuration of the module loan -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Edit financial commitment diff --git a/htdocs/langs/bs_BA/mailmanspip.lang b/htdocs/langs/bs_BA/mailmanspip.lang index bab4b3576b4..6ff3ac9f770 100644 --- a/htdocs/langs/bs_BA/mailmanspip.lang +++ b/htdocs/langs/bs_BA/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Subscription test was executed successfully MailmanDeletionSuccess=Unsubscription test was executed successfully SynchroMailManEnabled=A Mailman update will be performed SynchroSpipEnabled=A Spip update will be performed -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) diff --git a/htdocs/langs/bs_BA/mails.lang b/htdocs/langs/bs_BA/mails.lang index 1c39ee93317..4247f427a42 100644 --- a/htdocs/langs/bs_BA/mails.lang +++ b/htdocs/langs/bs_BA/mails.lang @@ -7,10 +7,10 @@ MailCard=Kartica e-pošte MailRecipients=Primaoci MailRecipient=Primalac MailTitle=Opis -MailFrom=Pošiljalac +MailFrom=Od MailErrorsTo=Greške prema MailReply=Odgovori na -MailTo=Primalac(oci) +MailTo=Račun za MailToUsers=To user(s) MailCC=Kopiraj na MailToCCUsers=Copy to users(s) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/bs_BA/main.lang b/htdocs/langs/bs_BA/main.lang index 6bbe061ed7e..8ee6fac4cb2 100644 --- a/htdocs/langs/bs_BA/main.lang +++ b/htdocs/langs/bs_BA/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=DejaVuSans FONTSIZEFORPDF=8 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Šablon za ovu vrstu emaila nije dostupan AvailableVariables=Dostupne zamjenske varijable NoTranslation=Nema prevoda Translation=Prevod +Translations=Translations CurrentTimeZone=Vremenska zona PHP (servera) EmptySearchString=Enter non empty search criterias EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Valjan Approve=Odobriti Disapprove=Odbij ReOpen=Opet otvori +OpenVerb=Otvoren Upload=Upload ToLink=Link Select=Odaberi @@ -216,7 +224,7 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Nije definirana korisnička grupa Password=Šifra -PasswordRetype=Ponovno upišite šifru +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Mnoge osobine/moduli su onemogućeni pri ovoj demostraciji. Name=Naziv NameSlashCompany=Name / Company @@ -244,6 +252,7 @@ Designation=Opis DescriptionOfLine=Description of line DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=Šablon dokumenta DefaultModel=Defaultni šablon dokumenta Action=Događaj @@ -344,7 +353,7 @@ KiloBytes=kilobajta MegaBytes=megabajta GigaBytes=gigabajta TeraBytes=terabajta -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -480,6 +489,7 @@ ActionsOnContact=Events for this contact/address ActionsOnContract=Events for this contract ActionsOnMember=Događaji o ovom članu ActionsOnProduct=Događaji o ovom proizvodu +ActionsOnAsset=Events for this fixed asset NActionsLate=%s kasne ToDo=To do Completed=Završeno @@ -517,6 +527,7 @@ or=ili Other=Ostalo Others=Drugi OtherInformations=Other information +Workflow=Workflow - Tok rada Quantity=Količina Qty=Kol ChangedBy=Izmijenio @@ -619,6 +630,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Priložene datoteke i dokumenti JoinMainDoc=Spoji glavni dokument +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=MM-YYYY DateFormatYYYYMMDD=DD-MM-YYYY DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS @@ -709,6 +721,7 @@ FeatureDisabled=Osobina onemogućena MoveBox=Pomjeri prikaz Offered=Ponuđeno NotEnoughPermissions=Nemate dozvolu za ovu akciju +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Naziv sesije Method=Metoda Receive=Primiti @@ -798,6 +811,7 @@ URLPhoto=URL fotografije/logotipa SetLinkToAnotherThirdParty=Link prema drugom subjektu LinkTo=Link ka LinkToProposal=Link ka prijedlogu +LinkToExpedition= Link to expedition LinkToOrder=Link ka narudžbi LinkToInvoice=Link na fakturu LinkToTemplateInvoice=Link to template invoice @@ -916,6 +930,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Skidanje DownloadDocument=Skidanje dokumenta +DownloadSignedDocument=Download signed document ActualizeCurrency=Ažuriraj kurs valute Fiscalyear=Fiskalna godina ModuleBuilder=Module and Application Builder @@ -1041,6 +1056,7 @@ SearchIntoContracts=Ugovori SearchIntoCustomerShipments=Slanje kupcu SearchIntoExpenseReports=Izvještaj o troškovima SearchIntoLeaves=Leave +SearchIntoKM=Knowledge base SearchIntoTickets=Tickets SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Vendor payments @@ -1132,15 +1148,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign Tag +AffectUser=Assign User +SetSupervisor=Set Supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project +TasksRole=Role assigned on each task of each project +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Stopa +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1164,3 +1194,19 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Deaktiviraj +Terminated=Terminated +AddLineOnPosition=Add line on position (at the end if empty) +ConfirmAllocateCommercial=Assign sales representative confirmation +ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned +YourMessage=Your message +YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. +UrlToCheck=Url to check +Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Interni korisnik +ExternalUser=Vanjski korisnik diff --git a/htdocs/langs/bs_BA/other.lang b/htdocs/langs/bs_BA/other.lang index 4ef2a28837a..dd9a1a47906 100644 --- a/htdocs/langs/bs_BA/other.lang +++ b/htdocs/langs/bs_BA/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused Notify_PROPAL_VALIDATE=Customer proposal validated Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed +Notify_PROPAL_CLOSE_SIGNED_WEB=Customer proposal closed signed on portal page Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_PROPAL_CLOSE_REFUSED_WEB=Customer proposal closed refused on portal page Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail Notify_WITHDRAW_TRANSMIT=Transmission withdrawal Notify_WITHDRAW_CREDIT=Credit withdrawal @@ -110,7 +112,7 @@ ChooseYourDemoProfilMore=...or build your own profile
(manual module selectio DemoFundation=Manage members of a foundation DemoFundation2=Manage members and bank account of a foundation DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Manage a shop with a cash desk +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Shop selling products with Point Of Sales DemoCompanyManufacturing=Company manufacturing products DemoCompanyAll=Company with multiple activities (all main modules) @@ -181,6 +183,7 @@ SizeUnitfoot=foot SizeUnitpoint=point BugTracker=Bug tracker SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
Change will become effective once you click on the confirmation link in the email.
Check your inbox. +EnterNewPasswordHere=Enter your new password here BackToLoginPage=Back to login page AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
In this mode, Dolibarr can't know nor change your password.
Contact your system administrator if you want to change your password. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Invoice %s has been validated. EMailTextInvoicePayed=Invoice %s has been paid. EMailTextProposalValidated=Proposal %s has been validated. EMailTextProposalClosedSigned=Proposal %s has been closed signed. +EMailTextProposalClosedSignedWeb=Proposal %s has been closed signed on portal page. +EMailTextProposalClosedRefused=Proposal %s has been closed refused. +EMailTextProposalClosedRefusedWeb=Proposal %s has been closed refuse on portal page. EMailTextOrderValidated=Order %s has been validated. EMailTextOrderApproved=Order %s has been approved. EMailTextOrderValidatedBy=Order %s has been recorded by %s. @@ -303,3 +309,31 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Close +Autofill = Autofill + +# externalsite +ExternalSiteSetup=Podesi link za eksterni web sajt +ExternalSiteURL=External Site URL of HTML iframe content +ExternalSiteModuleNotComplete=Modul ExternalSite nije konfigurisan kako treba. +ExampleMyMenuEntry=My menu entry + +# ftp +FTPClientSetup=FTP or SFTP Client module setup +NewFTPClient=New FTP/SFTP connection setup +FTPArea=FTP/SFTP Area +FTPAreaDesc=This screen shows a view of an FTP et SFTP server. +SetupOfFTPClientModuleNotComplete=The setup of the FTP or SFTP client module seems to be incomplete +FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP or SFTP functions +FailedToConnectToFTPServer=Failed to connect to server (server %s, port %s) +FailedToConnectToFTPServerWithCredentials=Failed to login to server with defined login/password +FTPFailedToRemoveFile=Neuspjelo uklanjanje fajla %s. +FTPFailedToRemoveDir=Failed to remove directory %s: check permissions and that the directory is empty. +FTPPassiveMode=Pasivni način +ChooseAFTPEntryIntoMenu=Choose a FTP/SFTP site from the menu... +FailedToGetFile=Failed to get files %s +ErrorFTPNodisconnect=Error to disconnect FTP/SFTP server +FileWasUpload=File %s was uploaded +FTPFailedToUploadFile=Failed to upload the file %s. +AddFolder=Create folder +FileWasCreateFolder=Folder %s has been created +FTPFailedToCreateFolder=Failed to create folder %s. diff --git a/htdocs/langs/bs_BA/propal.lang b/htdocs/langs/bs_BA/propal.lang index af3d9ae24cd..ed684c3e570 100644 --- a/htdocs/langs/bs_BA/propal.lang +++ b/htdocs/langs/bs_BA/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=No draft proposals CopyPropalFrom=Kreiraj poslovni prijedlog kopiranje postojećeg prijedloga CreateEmptyPropal=Create empty commercial proposal or from list of products/services DefaultProposalDurationValidity=Default commercial proposal validity duration (in days) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? @@ -64,36 +65,54 @@ AvailabilityPeriod=Availability delay SetAvailability=Set availability delay AfterOrder=after order OtherProposals=Other proposals + ##### Availability ##### AvailabilityTypeAV_NOW=Odmah AvailabilityTypeAV_1W=1 week AvailabilityTypeAV_2W=2 weeks AvailabilityTypeAV_3W=3 weeks AvailabilityTypeAV_1M=1 month -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Representative following-up proposal TypeContact_propal_external_BILLING=Kontakt za fakturu kupca TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal TypeContact_propal_external_SHIPPING=Customer contact for delivery + # Document models -DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) -DocModelCyanDescription=A complete proposal model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Case followed by +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) DefaultModelPropalCreate=Default model creation DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) -DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) +DocModelAzurDescription=A complete proposal model (old implementation of Cyan template) +DocModelCyanDescription=A complete proposal model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Odbij +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Written acceptance, company stamp, date and signature ProposalsStatisticsSuppliers=Vendor proposals statistics -CaseFollowedBy=Case followed by -SignedOnly=Signed only -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Signed only diff --git a/htdocs/langs/bs_BA/ticket.lang b/htdocs/langs/bs_BA/ticket.lang index c92ba7c169c..d8f61a4a267 100644 --- a/htdocs/langs/bs_BA/ticket.lang +++ b/htdocs/langs/bs_BA/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Delete tickets Permission56004=Manage tickets Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +Tickets=Tickets TicketDictType=Ticket - Types TicketDictCategory=Ticket - Groupes TicketDictSeverity=Ticket - Severities @@ -90,15 +91,17 @@ TicketPublicAccess=A public interface requiring no identification is available a TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=Module variable setup TicketParamMail=Email setup -TicketEmailNotificationFrom=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Send email notifications to this address. +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com +TicketEmailNotificationTo=Notify ticket creation to this e-mail address +TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=The text specified here will be inserted into the email confirming the creation of a new ticket from the public interface. Information on the consultation of the ticket are automatically added. TicketParamPublicInterface=Public interface setup TicketsEmailMustExist=Require an existing email address to create a ticket TicketsEmailMustExistHelp=In the public interface, the email address should already be filled in the database to create a new ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Public interface TicketUrlPublicInterfaceLabelAdmin=Alternative URL for public interface TicketUrlPublicInterfaceHelpAdmin=It is possible to define an alias to the web server and thus make available the public interface with another URL (the server must act as a proxy on this new URL) @@ -136,6 +139,20 @@ TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to) TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update) TicketPublicNotificationNewMessageDefaultEmailHelp=Send an email to this address for each new message notifications if the ticket doesn't have a user assigned to it or if the user doesn't have any known email. +TicketsAutoReadTicket=Automatically mark the ticket as read (when created from backoffice) +TicketsAutoReadTicketHelp=Automatically mark the ticket as read when created from backoffice. When ticket is create from the public interface, ticket remains with the status "Not Read". +TicketsDelayBeforeFirstAnswer=A new ticket should receive a first answer before (hours): +TicketsDelayBeforeFirstAnswerHelp=If a new ticket has not received an answer after this time period (in hours), an important warning icon will be displayed in the list view. +TicketsDelayBetweenAnswers=An unresolved ticket should not be unactive during (hours): +TicketsDelayBetweenAnswersHelp=If an unresolved ticket that has already received an answer has not had further interaction after this time period (in hours), a warning icon will be displayed in the list view. +TicketsAutoNotifyClose=Automatically notify thirdparty when closing a ticket +TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a message to one of thirdparty's contacts. On mass closing, a message will be sent to one contact of the thirdparty linked to the ticket. +TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. +TicketChooseProductCategory=Product category for ticket support +TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. + # # Index & list page # @@ -151,6 +168,8 @@ OrderByDateAsc=Sort by ascending date OrderByDateDesc=Sort by descending date ShowAsConversation=Show as conversation list MessageListViewType=Show as table list +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -176,8 +195,7 @@ TicketAssigned=Ticket is now assigned TicketChangeType=Change type TicketChangeCategory=Change analytic code TicketChangeSeverity=Change severity -TicketAddMessage=Add a message -AddMessage=Add a message +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ticket added TicketMessageSuccessfullyAdded=Message successfully added TicketMessagesList=Message list @@ -188,8 +206,8 @@ TicketSeverity=Severity ShowTicket=See ticket RelatedTickets=Related tickets TicketAddIntervention=Create intervention -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Confirm ticket closing ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -203,18 +221,17 @@ SendMessageByEmail=Send message by email TicketNewMessage=New message ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them -TicketMessageMailIntro=Introduction +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Hello,
A new response was sent on a ticket that you contact. Here is the message:
-TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. -TicketMessageMailSignature=Potpis -TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved. -TicketMessageMailSignatureText=

Sincerely,

--

-TicketMessageMailSignatureLabelAdmin=Signature of response email -TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message. +TicketMessageMailIntroText=Hello,
A new answer has been added to a ticket that you follow. Here is the message:
+TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Only this text will be saved in the message list on ticket card. TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Time elapsed since TicketTimeToRead=Time elapsed before read TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -225,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticke TicketAssignedToYou=Ticket assigned TicketAssignedEmailBody=You have been assigned the ticket #%s by %s MarkMessageAsPrivate=Mark message as private +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=This message will not display to external users TicketEmailOriginIssuer=Issuer at origin of the tickets InitialMessage=Initial Message @@ -238,9 +256,16 @@ TicketChangeStatus=Change status TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Unread TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required +TicketsDelayForFirstResponseTooLong=Too much time elapsed since ticket opening without any answer. +TicketsDelayFromLastResponseTooLong=Too much time elapsed since last answer on this ticket. +TicketNoContractFoundToLink=No contract was found to be automatically linked to this ticket. Please link a contract manually. +TicketManyContractsLinked=Many contracts have been automatically linked to this ticket. Make sure to verify which should be chosen. # # Logs @@ -268,11 +293,12 @@ TicketNewEmailBody=This is an automatic email to confirm you have registered a n TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account. TicketNewEmailBodyInfosTicket=Information for monitoring the ticket TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface. TicketPublicInfoCreateTicket=This form allows you to record a support ticket in our management system. -TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. Provide the most information possible to allow us to correctly identify your request. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Please enter ticket tracking ID TicketTrackId=Public Tracking ID OneOfTicketTrackId=One of your tracking ID @@ -291,6 +317,10 @@ NewUser=Novi korisnik NumberOfTicketsByMonth=Number of tickets per month NbOfTickets=Number of tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket closed +TicketCloseEmailBodyCustomer=This is an automatic message to notify you that ticket %s has just been closed. +TicketCloseEmailSubjectAdmin=Ticket closed - Réf %s (public ticket ID %s) +TicketCloseEmailBodyAdmin=A ticket with ID #%s has just been closed, see information: TicketNotificationEmailSubject=Ticket %s updated TicketNotificationEmailBody=This is an automatic message to notify you that ticket %s has just been updated TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/bs_BA/users.lang b/htdocs/langs/bs_BA/users.lang index 69b5907a403..5266d7c1bd3 100644 --- a/htdocs/langs/bs_BA/users.lang +++ b/htdocs/langs/bs_BA/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Ukloni iz grupe PasswordChangedAndSentTo=Šifra promijenjena i poslana korisniku %s. PasswordChangeRequest=Request to change password for %s PasswordChangeRequestSent=Zahtjev za promjenu šifre za %s poslana na %s. -IfLoginExistPasswordRequestSent=If this login is a valid account, an email to reset password has been sent. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. ConfirmPasswordReset=Confirm password reset MenuUsersAndGroups=Korisnici i grupe @@ -66,9 +66,9 @@ LinkedToDolibarrUser=Link to user LinkedToDolibarrThirdParty=Link to third party CreateDolibarrLogin=Kreiraj korisnika CreateDolibarrThirdParty=Napravi subjekat -LoginAccountDisableInDolibarr=Račun isključen u Dolibarru. +LoginAccountDisableInDolibarr=Account disabled in Dolibarr +PASSWORDInDolibarr=Password modified in Dolibarr UsePersonalValue=Koristite lične vrijednosti -InternalUser=Interni korisnik ExportDataset_user_1=Users and their properties DomainUser=Korisnik domene %s Reactivate=Reaktivirati @@ -114,7 +114,7 @@ UserLogoff=Odjava korisnika UserLogged=Korisnik prijavljen DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Employment End Date RangeOfLoginValidity=Access validity date range CantDisableYourself=You can't disable your own user record @@ -124,3 +124,12 @@ ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of th UserPersonalEmail=Personal email UserPersonalMobile=Personal mobile phone WarningNotLangOfInterface=Warning, this is the main language the user speak, not the language of the interface he choosed to see. To change the interface language visible by this user, go on tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows +UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book. +EnablePublicVirtualCard=Enable the public virtual user card +PublicVirtualCardUrl=Public virtual user card diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang index e640d6fe233..4a42cad58e8 100644 --- a/htdocs/langs/ca_ES/accountancy.lang +++ b/htdocs/langs/ca_ES/accountancy.lang @@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Seleccioneu el tipus de retorn ACCOUNTING_EXPORT_PREFIX_SPEC=Especifica el prefix del nom del fitxer ThisService=Aquest servei ThisProduct=Aquest producte -DefaultForService=Defecte per al servei -DefaultForProduct=Defecte per al producte +DefaultForService=Default for services +DefaultForProduct=Default for products ProductForThisThirdparty=Producte per a aquest tercer ServiceForThisThirdparty=Servei per a aquest tercer CantSuggest=No es pot suggerir @@ -30,7 +30,7 @@ ChartOfSubaccounts=Pla de comptes individuals ChartOfIndividualAccountsOfSubsidiaryLedger=Pla de comptes individuals del llibre major CurrentDedicatedAccountingAccount=Compte dedicat actual AssignDedicatedAccountingAccount=Compte nou per a assignar -InvoiceLabel=Etiqueta de factura +InvoiceLabel=Nom de la factura OverviewOfAmountOfLinesNotBound=Vista general de la quantitat de línies no comptabilitzades en un compte comptable OverviewOfAmountOfLinesBound=Vista general de la quantitat de línies ja comptabilitzades en un compte comptable OtherInfo=Una altra informació @@ -59,6 +59,7 @@ MainAccountForSuppliersNotDefined=Compte comptable principal per a proveïdors n MainAccountForUsersNotDefined=Compte comptable per a usuaris no de definit en la configuració MainAccountForVatPaymentNotDefined=Compte comptable per a IVA no definida en la configuració MainAccountForSubscriptionPaymentNotDefined=Compte comptable per a IVA no definida en la configuració del mòdul +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Àrea de comptabilitat AccountancyAreaDescIntro=L'ús del mòdul de comptabilitat es realitza en diverses etapes: @@ -95,12 +96,13 @@ Addanaccount=Afegir un compte comptable AccountAccounting=Compte comptable AccountAccountingShort=Compte SubledgerAccount=Subcompte comptable -SubledgerAccountLabel=Títol del subcompte comptable +SubledgerAccountLabel=Nom del compte del llibre major ShowAccountingAccount=Mostrar diari de comptes ShowAccountingJournal=Mostrar diari comptable ShowAccountingAccountInLedger=Mostra el compte comptable al Llibre major ShowAccountingAccountInJournals=Mostra el compte comptable als diaris -AccountAccountingSuggest=Compte comptable suggerit +DataUsedToSuggestAccount=Data used to suggest account +AccountAccountingSuggest=Account suggested MenuDefaultAccounts=Comptes per defecte MenuBankAccounts=Comptes bancaris MenuVatAccounts=Comptes d'IVA @@ -125,6 +127,7 @@ WriteBookKeeping=Registrar transaccions en comptabilitat Bookkeeping=Llibre major BookkeepingSubAccount=Subcompte AccountBalance=Compte saldo +AccountBalanceSubAccount=Sub-accounts balance ObjectsRef=Referència de l'objecte origen CAHTF=Total de compra a Proveïdor abans d'impostos TotalExpenseReport=Informe de despeses totals @@ -164,57 +167,61 @@ ACCOUNTANCY_COMBO_FOR_AUX=Activa la llista combinada per a un compte subsidiari 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 la transferència comptable, quin és el període seleccionat per defecte -ACCOUNTING_SELL_JOURNAL=Diari de venda -ACCOUNTING_PURCHASE_JOURNAL=Diari de compra -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diaris varis +ACCOUNTING_SELL_JOURNAL=Diari de vendes (vendes i devolucions) +ACCOUNTING_PURCHASE_JOURNAL=Diari de compres (compres i devolucions) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Diari de l'informe de despeses -ACCOUNTING_SOCIAL_JOURNAL=Diari social +ACCOUNTING_MISCELLANEOUS_JOURNAL=Diari general ACCOUNTING_HAS_NEW_JOURNAL=Té un nou Diari +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Diari social ACCOUNTING_RESULT_PROFIT=Compte de comptes de resultats (benefici) ACCOUNTING_RESULT_LOSS=Compte de resultats comptable (pèrdua) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Revista de tancament -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Compte de comptabilitat de la transferència bancària de transició +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Compte de transferència bancària transitòria -ACCOUNTING_ACCOUNT_SUSPENSE=Compte comptable d'espera -DONATION_ACCOUNTINGACCOUNT=Compte comptable per a registrar les donacions -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Compte comptable per a registrar les donacions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Compte comptable per defecte per a registrar el dipòsit del client +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit UseAuxiliaryAccountOnCustomerDeposit=Emmagatzema el compte del client com a compte individual al llibre major subsidiari per a les línies de pagament inicial (si està desactivat, el compte individual per a les línies de pagament inicial romandrà buit) -ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Compte comptable per defecte per a registrar el dipòsit del proveïdor +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default UseAuxiliaryAccountOnSupplierDeposit=Emmagatzema el compte del proveïdor com a compte individual al llibre major subsidiari per a les línies de pagament inicial (si està desactivat, el compte individual de les línies de pagament inicial romandrà buit) +ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Compte comptable per defecte per als productes comprats (utilitzat si no es defineix en el producte) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Compte de comptabilitat per defecte dels productes comprats a la CEE (utilitzat si no està definit a la taula de productes) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Compte de comptabilitat per defecte dels productes comprats i importats fora de la CEE (utilitzat si no està definit a la taula de productes) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Compte comptable per defecte pels productes venuts (s'utilitza si no es defineix en el full de producte) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Compte comptable per defecte per als productes venuts a la CEE (utilitzat si no es defineix en el producte) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Compte comptable per defecte per als productes venuts d'exportació (utilitzat si no es defineix en el producte) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Compte comptable per defecte per als serveis adquirits (s'utilitza si no es defineix en el full de servei) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Compte de comptabilitat per defecte dels serveis comprats a la CEE (utilitzat si no està definit a la taula de serveis) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Compte de comptabilitat per defecte dels serveis comprats i importats fora de la CEE (utilitzat si no està definit a la taula de serveis) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Compte comptable per defecte per als serveis venuts (s'utilitza si no es defineix en el full de servei) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Compte comptable per defecte per als serveis venuts a la CEE (utilitzat si no es defineix en el servei) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Compte comptable per defecte per als serveis venuts i exportats fora de la CEE (utilitzat si no es defineix en el servei) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Tipus de document Docdate=Data Docref=Referència -LabelAccount=Etiqueta de compte -LabelOperation=Etiqueta de l'operació +LabelAccount=Nom del compte +LabelOperation=Nom de l'operació Sens=Direcció AccountingDirectionHelp=Per a un compte comptable d'un client, utilitzeu Crèdit per a registrar un pagament que heu rebut
Per a un compte comptable d'un proveïdor, utilitzeu Dèbit per a registrar el pagament que heu fet LetteringCode=Codi de retolació Lettering=Lletres Codejournal=Diari -JournalLabel=Títol de Diari +JournalLabel=Nom del diari NumPiece=Número de peça TransactionNumShort=Número de transacció -AccountingCategory=Grup personalitzat +AccountingCategory=Grup de comptes personalitzat +AccountingCategories=Custom groups of accounts GroupByAccountAccounting=Agrupa per compte major GroupBySubAccountAccounting=Agrupa per subcompte comptable AccountingAccountGroupsDesc=Podeu definir aquí alguns grups de comptes comptables. S'utilitzaran per a informes comptables personalitzats. @@ -262,19 +269,20 @@ ShowSubtotalByGroup=Mostra el subtotal per nivell Pcgtype=Grup de comptes PcgtypeDesc=S'utilitzen grups de comptes com a criteris predefinits de «filtre» i «agrupació» per a alguns informes de comptabilitat. Per exemple, «INGRESSOS» o «DESPESES» s'utilitzen com a grups per a comptes comptables de productes per a crear l'informe de despeses/ingressos. +AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports. Reconcilable=Reconciliable TotalVente=Total turnover before tax TotalMarge=Marge total de vendes -DescVentilCustomer=Consulti aquí la llista de línies de factures de client vinculades (o no) a comptes comptables de producte -DescVentilMore=En la majoria dels casos, si utilitzeu productes o serveis predefinits i poses el número de compte a la fitxa de producte/servei, l'aplicació serà capaç de fer tots els vincles entre les línies de factura i els comptes comptables del vostre pla comptable, només amb un clic mitjançant el botó «%s». Si el compte no està col·locat a la fitxa del producte/servei o si encara hi ha alguna línia no vinculada a cap compte, haureu de fer una vinculació manual a partir del menú «%s». -DescVentilDoneCustomer=Consulta aquí la llista de línies de factures a clients i els seus comptes comptables de producte -DescVentilTodoCustomer=Comptabilitza les línies de factura encara no comptabilitzades amb un compte comptable de producte -ChangeAccount=Canvia el compte comptable de producte/servei per les línies seleccionades amb el següent compte comptable: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consulteu aquí la llista de les línies de facturació dels proveïdors vinculades o encara no lligades a un compte comptable de producte (només es poden veure els registres no transferits a comptabilitat) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consulteu aquí la llista de les línies de venedors de factures i el seu compte comptable DescVentilTodoExpenseReport=Línies d'informes de despeses comptabilitzades encara no comptabilitzades amb un compte comptable de tarifa DescVentilExpenseReport=Consulteu aquí la llista de les línies d'informe de despeses vinculada (o no) a un compte comptable corresponent a tarifa @@ -286,20 +294,21 @@ DescClosure=Consulta aquí el nombre de moviments per mes encara no validats i b 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... +ValidateMovements=Validate and lock movements... DescValidateMovements=Queda prohibida qualsevol modificació o supressió de registres. Totes les entrades d’un exercici s’han de validar, en cas contrari, el tancament no serà possible ValidateHistory=Comptabilitza automàticament AutomaticBindingDone=Enllaços automàtics fets (%s): l'enllaç automàtic no és possible per a alguns registres (%s) +DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically. -ErrorAccountancyCodeIsAlreadyUse=Error, no pots eliminar aquest compte comptable perquè està en ús +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Moviment no equilibrat correctament. Dèbit = %s i crèdit = %s Balancing=Saldo FicheVentilation=Fitxa de comptabilització GeneralLedgerIsWritten=Els assentaments s'han escrit al Llibre Major GeneralLedgerSomeRecordWasNotRecorded=Alguns dels assentaments no van poder ser registrats al diari. Si no hi ha cap altre missatge d'error, probablement és perquè ja es van registrar al diari. NoNewRecordSaved=No hi ha més registres per a transferir -ListOfProductsWithoutAccountingAccount=Llista de productes no comptabilitzats en cap compte comptable +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Canvia la comptabilització Accounted=Comptabilitzat en el llibre major NotYetAccounted=Encara no s'ha traslladat a la comptabilitat @@ -322,9 +331,10 @@ AccountingJournalType1=Operacions diverses AccountingJournalType2=Vendes AccountingJournalType3=Compres AccountingJournalType4=Banc -AccountingJournalType5=Informe de despeses +AccountingJournalType5=Informes de despeses AccountingJournalType8=Inventari AccountingJournalType9=Haver +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Aquest diari ja està en ús AccountingAccountForSalesTaxAreDefinedInto=Nota: el compte de comptes de l'impost de vendes es defineix al menú %s - %s NumberOfAccountancyEntries=Nombre d'entrades @@ -332,10 +342,14 @@ NumberOfAccountancyMovements=Nombre de moviments ACCOUNTING_DISABLE_BINDING_ON_SALES=Desactiva la vinculació i transferència de comptabilitat en vendes (les factures dels clients no es tindran en compte a la comptabilitat) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Desactiva la vinculació i transferència a la comptabilitat de les compres (les factures de proveïdors no es tindran en compte a la comptabilitat) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Desactiva la vinculació i transferència de comptes en els informes de despeses (els informes de despeses no es tindran en compte a la comptabilitat) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting +ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Marca les línies exportades com a Exportades (per a modificar una línia, hauràs de suprimir tota la transacció i tornar-la a transferir a la comptabilitat) -NotifiedValidationDate=Validar i bloquejar les entrades exportades (mateix efecte que la característica "%s", la modificació i la supressió de les línies DEFINITIVAMENT no seran possibles) +NotifiedValidationDate=Validar i bloquejar les entrades exportades (mateix efecte que la característica "%s", la modificació i la supressió de les línies DEFINITIVAMENT no seran possibles) +NotifiedExportFull=Export documents ? DateValidationAndLock=Validació de data i bloqueig ConfirmExportFile=Confirmació de la generació del fitxer d'exportació comptable? ExportDraftJournal=Exporta els esborranys del llibre @@ -392,7 +406,7 @@ SaleLocal=Venda local SaleExport=Venda d’exportació SaleEEC=Venda en CEE SaleEECWithVAT=Venda a la CEE amb un IVA que no és nul, per la qual cosa suposem que NO es tracta d’una venda intracomunitària i el compte suggerit és el compte estàndard del producte. -SaleEECWithoutVATNumber=Venda a la CEE sense IVA, però l’identificador d’IVA del tercer no està definit. S'ha emprat el compte del producte per a vendes estàndard. Podeu corregir l’identificador d’IVA del tercer o el compte del producte si cal. +SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed. ForbiddenTransactionAlreadyExported=Prohibit: la transacció ha estat validada i/o exportada. ForbiddenTransactionAlreadyValidated=Prohibit: la transacció s'ha validat. ## Dictionary @@ -401,7 +415,11 @@ Calculated=Calculat Formula=Fórmula ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=No reconciliar +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=Cap conciliació modificada AccountancyOneLetteringModifiedSuccessfully=Una conciliació modificada amb èxit AccountancyLetteringModifiedSuccessfully=La reconciliació %s s'ha modificat correctament @@ -410,37 +428,39 @@ AccountancyOneUnletteringModifiedSuccessfully=S'ha desfet correctament una conci 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? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Confirmació d'esborrament massiu ConfirmMassDeleteBookkeepingWritingQuestion=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) -ErrorInvoiceContainsLinesNotYetBounded=Intenta actualitzar algunes línies de la factura %s , però algunes altres encara no estan vinculades al compte de comptabilitat. Es rebutja el registre comptable de totes les línies d'aquesta factura. +ErrorInvoiceContainsLinesNotYetBounded=Intenteu registrar algunes línies de la factura %s, però algunes altres línies encara no estan vinculades al compte comptable. Es denega el registre al diari de totes les línies d'aquesta factura. ErrorInvoiceContainsLinesNotYetBoundedShort=Algunes línies a la factura no estan vinculades al compte de comptabilitat. ExportNotSupported=El format d'exportació configurat no està suportat en aquesta pàgina BookeppingLineAlreayExists=Les línies ja existeixen en la comptabilitat NoJournalDefined=Cap diari definit 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 +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 +ErrorArchiveAddFile=Can't put "%s" file in archive ## Import ImportAccountingEntries=Entrades de comptabilitat ImportAccountingEntriesFECFormat=Entrades comptables: format FEC FECFormatJournalCode=Diari de codis (JournalCode) -FECFormatJournalLabel=Etiqueta de diari (JournalLib) +FECFormatJournalLabel=Nom de diari (JournalLib) FECFormatEntryNum=Número de peça (EcritureNum) FECFormatEntryDate=Data de la peça (EcritureDate) FECFormatGeneralAccountNumber=Número de compte general (CompteNum) -FECFormatGeneralAccountLabel=Etiqueta de compte general (CompteLib) +FECFormatGeneralAccountLabel=Nom de compte general (CompteLib) FECFormatSubledgerAccountNumber=Número de compte de Subledger (CompAuxNum) FECFormatSubledgerAccountLabel=Número de compte de Subledger (CompAuxLib) FECFormatPieceRef=Peça ref. (PieceRef) @@ -457,6 +477,7 @@ FECFormatMulticurrencyCode=Codi multidivisa (Idevise) DateExport=Data d'exportació WarningReportNotReliable=Avís, aquest informe no està basat en el Llibre Major, de manera que no conté assentaments modificats manualment en el Llibre Major. Si el registre diari està actualitzat, la vista de comptes és més precisa. ExpenseReportJournal=Diari d'informe de despeses -InventoryJournal=Diari d'inventari +DocsAlreadyExportedAreExcluded=Docs already exported are excluded +ClickToHideAlreadyExportedLines=Click to hide already exported lines NAccounts=comptes %s diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index 133b33e1d24..78fd6572a90 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - admin BoldRefAndPeriodOnPDF=Imprimeix la referència i el període de la línia del producte en PDF -BoldLabelOnPDF=Imprimeix l'etiqueta del producte en negreta en PDF +BoldLabelOnPDF=Imprimeix el nom del producte en negreta en PDF Foundation=Entitat Version=Versió Publisher=Publicador @@ -31,7 +31,7 @@ SessionId=ID de sessió SessionSaveHandler=Modalitat de desar sessions SessionSavePath=Desa la ubicació de la sessió PurgeSessions=Purga de sessions -ConfirmPurgeSessions=Estàs segur de voler purgar totes les sessions? Es desconnectaran tots els usuaris (excepte tu mateix) +ConfirmPurgeSessions=Estàs segur de voler purgar totes les sessions? Això desconnectarà tots els usuaris (excepte tu mateix). NoSessionListWithThisHandler=El gestor de sessions configurat al vostre PHP no permet llistar totes les sessions en execució. LockNewSessions=Bloquejar connexions noves ConfirmLockNewSessions=Esteu segur que voleu restringir qualsevol nova connexió a Dolibarr només a vosaltres mateixos? Només l'usuari %s podrà connectar-se després d'això. @@ -51,8 +51,6 @@ ClientSortingCharset="Collation" del client WarningModuleNotActive=Mòdul %s no actiu WarningOnlyPermissionOfActivatedModules=Aquí només es mostren els permisos relacionats amb els mòduls activats. Pots activar altres mòduls en la pàgina Inici->Configuració->Mòduls. DolibarrSetup=Instal·lació/Actualització de Dolibarr -InternalUser=Usuari intern -ExternalUser=Usuari extern InternalUsers=Usuaris interns ExternalUsers=Usuaris externs UserInterface=Interfície d'usuari @@ -74,14 +72,14 @@ ErrorModuleRequireDolibarrVersion=Error, aquest mòdul requereix una versió %s ErrorDecimalLargerThanAreForbidden=Error, les precisions superiors a %s no estan suportades. DictionarySetup=Configuració de Diccionari Dictionary=Diccionaris -ErrorReservedTypeSystemSystemAuto=Els valors "sistema" i "systemauto" per al tipus estan reservats. Podeu utilitzar "user" com a valor per a afegir el vostre propi registre +ErrorReservedTypeSystemSystemAuto=El valor «system» i «systemauto» per al tipus està reservat. Podeu utilitzar «user» com a valor per a afegir el vostre propi registre ErrorCodeCantContainZero=El codi no pot contenir el valor 0 DisableJavascript=Desactivar les funcions Javascript DisableJavascriptNote=Nota: només amb finalitats de prova o depuració. Per a l'optimització de navegadors de text o de persones cegues, és possible que preferiu utilitzar la configuració al perfil de l'usuari UseSearchToSelectCompanyTooltip=A més, si teniu un gran nombre de tercers (> 100.000), podeu augmentar la velocitat establint la constant COMPANY_DONOTSEARCH_ANYWHERE a 1 a Configuració->Altres. La cerca es limitarà a l'inici de la cadena. UseSearchToSelectContactTooltip=A més, si teniu un gran nombre de tercers (> 100.000), podeu augmentar la velocitat establint la constant CONTACT_DONOTSEARCH_ANYWHERE a 1 a Configuració->Altres. La cerca es limitarà a l'inici de la cadena. -DelaiedFullListToSelectCompany=Esperar fins que es prem una tecla abans de carregar el contingut de la llista combinada de Tercers.
Això pot augmentar el rendiment si teniu un gran nombre de tercers, però és menys convenient. -DelaiedFullListToSelectContact=Espereu fins que es prem una tecla abans de carregar el contingut de la llista combinada de contactes.
Això pot augmentar el rendiment si teniu un gran nombre de contactes, però és menys convenient. +DelaiedFullListToSelectCompany=Espereu fins que es prem una tecla abans de carregar el contingut de la llista combinada de tercers.
Això pot augmentar el rendiment si teniu un gran nombre de tercers, però és menys pràctic. +DelaiedFullListToSelectContact=Espereu fins que es prem una tecla abans de carregar el contingut de la llista combinada de contactes.
Això pot augmentar el rendiment si teniu un gran nombre de contactes, però és menys pràctic. NumberOfKeyToSearch=Nombre de caràcters per a activar la cerca: %s NumberOfBytes=Nombre de bytes SearchString=Cerca cadena @@ -106,11 +104,11 @@ NextValueForInvoices=Pròxim valor (factures) NextValueForCreditNotes=Pròxim valor (abonaments) NextValueForDeposit=Següent valor (bestreta) NextValueForReplacements=Pròxim valor (rectificatives) -MustBeLowerThanPHPLimit=Nota: actualment la vostra configuració PHP limita la mida màxima de fitxers per a la pujada a %s %s, independentment del valor d'aquest paràmetre. +MustBeLowerThanPHPLimit=Nota: actualment la vostra configuració de PHP limita la mida màxima dels fitxers per a pujar a %s %s, independentment del valor d'aquest paràmetre NoMaxSizeByPHPLimit=Cap limitació interna en el seu servidor PHP MaxSizeForUploadedFiles=Mida màxima per als fitxers a pujar (0 per a no permetre cap pujada) UseCaptchaCode=Utilitzeu el codi gràfic (CAPTCHA) a la pàgina d'inici de sessió i en algunes pàgines públiques -AntiVirusCommand=Ruta completa cap al comandament antivirus +AntiVirusCommand=Camí complet a l'ordre antivirus AntiVirusCommandExample=Exemple per al dimoni ClamAv (requereix clamav-daemon): /usr/bin/clamdscan
Exemple per a ClamWin (molt molt lent): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Més paràmetres a la línia d'ordres AntiVirusParamExample=Exemple per al dimoni de ClamAv: --fdpass
Exemple per a ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" @@ -161,7 +159,7 @@ SystemToolsAreaDesc=Aquesta àrea proporciona funcions d'administració. Utilitz 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, l'ús d'aquesta funció no és necessari. Es proporciona com a solució alternativa als usuaris que allotgen Dolibarr amb un proveïdor que no ofereix permisos per a eliminar fitxers generats pel servidor web. PurgeDeleteLogFile=Suprimeix els fitxers de registre, inclosos %s definits per al mòdul Syslog (sense risc de perdre dades) -PurgeDeleteTemporaryFiles=Suprimeix tots els fitxers de registre i temporals (no hi ha risc de perdre dades). El paràmetre pot ser 'tempfilesold', 'logfiles' o tots dos 'tempfilesold+logfiles'. Nota: la supressió de fitxers temporals només es fa si el directori temporal es va crear fa més de 24 hores. +PurgeDeleteTemporaryFiles=Suprimeix tots els fitxers de registre i temporals (sense risc de perdre dades). El paràmetre pot ser «tempfilesold», «logfiles» o tots dos «tempfilesold+logfiles». Nota: L'eliminació dels fitxers temporals només es fa si el directori temporal es va crear fa més de 24 hores. PurgeDeleteTemporaryFilesShort=Suprimeix els fitxers de registre i temporals (sense risc de perdre dades) PurgeDeleteAllFilesInDocumentsDir=Suprimiu tots els fitxers del directori: %s.
Això suprimirà tots els documents generats relacionats amb elements (tercers, factures, etc.), fitxers penjats al mòdul GED, còpies de seguretat de la base de dades i fitxers temporals. PurgeRunNow=Purgar @@ -177,11 +175,11 @@ RunCommandSummary=La còpia serà realitzada per la comanda següent BackupResult=Resultat de la còpia BackupFileSuccessfullyCreated=Arxiu de còpia generat correctament YouCanDownloadBackupFile=Ara es pot descarregar el fitxer generat -NoBackupFileAvailable=Cap còpia disponible +NoBackupFileAvailable=No hi ha fitxers de còpia de seguretat disponibles. ExportMethod=Mètode d'exportació ImportMethod=Mètode d'importació ToBuildBackupFileClickHere=Per a crear un fitxer de còpia de seguretat, feu clic aquí. -ImportMySqlDesc=Per a importar un fitxer de còpia de seguretat MySQL, podeu utilitzar phpMyAdmin mitjançant el vostre allotjament o utilitzar l’ordre mysql de la línia d’ordres.
Per exemple: +ImportMySqlDesc=Per a importar un fitxer de còpia de seguretat de MySQL, podeu utilitzar phpMyAdmin mitjançant el vostre allotjament o utilitzar l'ordre mysql des de la línia d'ordres.
Per exemple: ImportPostgreSqlDesc=Per a importar un fitxer de còpia de seguretat, heu d'utilitzar l'ordre pg_restore des de la línia d'ordres: ImportMySqlCommand=%s %s < elmeuarxiubackup.sql ImportPostgreSqlCommand=%s %s elmeuarxiubackup.sql @@ -195,8 +193,8 @@ ExportUseMySQLQuickParameterHelp=El paràmetre '--quick' ajuda a limitar el cons MySqlExportParameters=Paràmetres de l'exportació MySql PostgreSqlExportParameters= Paràmetres de l'exportació PostgreSQL UseTransactionnalMode=Utilitzar el mode transaccional -FullPathToMysqldumpCommand=Ruta completa de la comanda mysqldump -FullPathToPostgreSQLdumpCommand=ruta completa cap al comandament pg_dump +FullPathToMysqldumpCommand=Camí complet a l'ordre mysqldump +FullPathToPostgreSQLdumpCommand=Camí complet a l'ordre pg_dump AddDropDatabase=Afegir ordres DROP DATABASE AddDropTable=Afegir ordres DROP TABLE ExportStructure=Estructura @@ -210,7 +208,7 @@ AutoDetectLang=Autodetecta (idioma del navegador) FeatureDisabledInDemo=Opció deshabilitada en demo FeatureAvailableOnlyOnStable=Funcionalitat disponible únicament en versions estables oficials BoxesDesc=Els panells són components que mostren algunes dades que poden afegir-se per a personalitzar algunes pàgines. Pots triar entre mostrar el panell o no seleccionant la pàgina de destí i fent clic a 'Activar', o fent clic en la paperera per a desactivar. -OnlyActiveElementsAreShown=Només els elements de mòduls activats són mostrats +OnlyActiveElementsAreShown=Només es mostren els elements dels mòduls habilitats. ModulesDesc=Els mòduls/aplicacions determinen quines funcions estan disponibles al programari. Alguns mòduls requereixen que es concedeixin permisos als usuaris després d'activar-lo. Feu clic al botó d'encesa/apagada %s de cada mòdul per a habilitar o desactivar un mòdul/aplicació. ModulesDesc2=Feu clic al botó de la roda %s per a configurar el mòdul/aplicació. ModulesMarketPlaceDesc=A internet podeu trobar més mòduls per a descarregar en pàgines web externes... @@ -247,8 +245,8 @@ Required=Requerit UsedOnlyWithTypeOption=Utilitzat només per alguna opció de l'agenda Security=Seguretat Passwords=Contrasenyes -DoNotStoreClearPassword=Encripta les contrasenyes emmagatzemades a la base de dades (NO com a text sense format). Es recomana activar aquesta opció. -MainDbPasswordFileConfEncrypted=Encriptar la contrasenya de la base de dades emmagatzemada a conf.php. Es recomana activar aquesta opció. +DoNotStoreClearPassword=Xifra les contrasenyes emmagatzemades a la base de dades (NO com a text sense format). És molt recomanable activar aquesta opció. +MainDbPasswordFileConfEncrypted=Xifra la contrasenya de la base de dades emmagatzemada a conf.php. És molt recomanable activar aquesta opció. InstrucToEncodePass=Per a tenir la contrasenya codificada al fitxer conf.php, substituïu la línia
$ dolibarr_main_db_pass="...";
per
$dolibarr_main_db_pass = "crypted:%s"; InstrucToClearPass=Per a tenir la contrasenya descodificada en el fitxer de configuració conf.php, reemplaça en aquest fitxer la línia
$dolibarr_main_db_pass="crypted:...";
per
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protegiu els fitxers PDF generats. Això NO es recomana perquè trenca la generació massiva de PDF. @@ -279,7 +277,7 @@ PaperSize=Tipus de paper Orientation=Orientació SpaceX=Àrea X SpaceY=Àrea Y -FontSize=Mida de la font +FontSize=Mida del tipus de lletra Content=Contingut ContentForLines=Contingut per a mostrar a cada producte o servei (de la variable __LINES__ de Contingut) NoticePeriod=Preavís @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=Nom host o ip del servidor SMTP (Per defecte en php.ini: < MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Port del servidor SMTP (No definit en PHP en sistemes de tipus Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nom servidor o ip del servidor SMTP (No definit en PHP en sistemes de tipus Unix) MAIN_MAIL_EMAIL_FROM=E-mail del remitent per e-mails automàtics (valor predeterminat a php.ini: %s) +EMailHelpMsgSPFDKIM=Per a evitar que els correus electrònics de Dolibarr siguin classificats com a correu brossa, assegureu-vos que el servidor estigui autoritzat a enviar correus electrònics des d'aquesta adreça mitjançant la configuració SPF i DKIM. MAIN_MAIL_ERRORS_TO=E-mail a utilitzar per als e-mails de missatges d'error (camp 'Errors-To' als e-mails enviats) MAIN_MAIL_AUTOCOPY_TO= Copia (Bcc) tots els correus enviats a MAIN_DISABLE_ALL_MAILS=Desactiva tot l'enviament de correu electrònic (per a proves o demostracions) @@ -303,7 +302,7 @@ MAIN_MAIL_SENDMODE=Mètode d'enviament de correu electrònic MAIN_MAIL_SMTPS_ID=ID d'autenticació SMTP (si el servidor requereix autenticació) MAIN_MAIL_SMTPS_PW=Contrasenya SMTP (si el servidor requereix autenticació) MAIN_MAIL_EMAIL_TLS=Utilitza el xifratge TLS (SSL) -MAIN_MAIL_EMAIL_STARTTLS=Ús d'encriptació TLS (STARTTLS) +MAIN_MAIL_EMAIL_STARTTLS=Utilitza el xifratge TLS (STARTTLS). MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Autoritza els certificats autosignats MAIN_MAIL_EMAIL_DKIM_ENABLED=Utilitzar DKIM per a generar firma d'email MAIN_MAIL_EMAIL_DKIM_DOMAIN=Domini d'email per a utilitzar amb dkim @@ -416,7 +415,7 @@ HideDescOnPDF=Amaga la descripció dels productes HideRefOnPDF=Amaga la ref. dels productes HideDetailsOnPDF=Amaga els detalls de les línies de producte PlaceCustomerAddressToIsoLocation=Utilitza la posició estàndard francesa (La Poste) per a la posició d'adreça del client -Library=Llibreria +Library=Biblioteca UrlGenerationParameters=Paràmetres per a protegir els URL SecurityTokenIsUnique=Fer servir un paràmetre securekey únic per a cada URL? EnterRefToBuildUrl=Introduïu la referència de l'objecte %s @@ -439,8 +438,10 @@ Unique=Únic Boolean=Boleà (una casella de selecció) ExtrafieldPhone = Telèfon ExtrafieldPrice = Preu +ExtrafieldPriceWithCurrency=Preu amb moneda ExtrafieldMail = Correu electrònic ExtrafieldUrl = URL +ExtrafieldIP = IP ExtrafieldSelect = Llista de selecció ExtrafieldSelectList = Llista de selecció de table ExtrafieldSeparator=Separador (no és un camp) @@ -461,7 +462,7 @@ ExtrafieldParamHelpsellist=Llista de valors que provenen d’una taula
Sintax ExtrafieldParamHelpchkbxlst=La llista de valors prové d'una taula
Sintaxi: nom_taula:nom_camp:id_camp::filtre
Exemple: c_typent:libelle:id::filtre

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

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

Per a tenir la llista depenent d'una altra llista:
c_typent:libelle:id:codi_llista_pare|parent_column:filter ExtrafieldParamHelplink=Els paràmetres han de ser ObjectName:Classpath
Sintaxi: ObjectName:Classpath ExtrafieldParamHelpSeparator=Manteniu-lo buit per un simple separador
Configureu-ho a 1 per a un separador col·lapsador (obert per defecte per a la sessió nova, i es mantindrà l'estat de cada sessió d'usuari)
Configureu-ho a 2 per a un separador col·lapsat (es va desplomar per defecte per a la sessió nova, i es mantindrà l'estat per a cada sessió d'usuari) -LibraryToBuildPDF=Llibreria utilitzada per a la generació de PDF +LibraryToBuildPDF=Biblioteca utilitzada per a la generació de PDF LocalTaxDesc=Alguns països apliquen 2 o 3 impostos en cada línia de factura. Si aquest és el cas, escull el tipus pel segon i el tercer impost i el seu valor. Els tipus possibles són:
1: impostos locals aplicats en productes i serveis sense IVA (l'impost local serà calculat en el total sense impostos)
2: impost local aplicat en productes i serveis amb IVA (l'impost local serà calculat amb el total + l'impost principal)
3: impost local aplicat en productes sense IVA (l'impost local serà calculat en el total sense impost)
4: impost local aplicat en productes amb IVA (l'impost local serà calculat amb el total + l'impost principal)
5: impost local aplicat en serveis sense IVA (l'impost local serà calculat amb el total sense impost)
6: impost local aplicat en serveis amb IVA inclòs (l'impost local serà calculat amb el total + IVA) SMS=SMS LinkToTestClickToDial=Introduïu un número de telèfon per a trucar per a mostrar un enllaç per a provar l'URL ClickToDial per a l'usuari %s @@ -483,25 +484,26 @@ ConfirmEraseAllCurrentBarCode=Esteu segur que voleu esborrar tots els valors de AllBarcodeReset=S'han eliminat tots els valors de codi de barres NoBarcodeNumberingTemplateDefined=No hi ha cap plantilla de codi de barres habilitada a la configuració del mòdul de codi de barres. EnableFileCache=Activa la memòria cau de fitxers -ShowDetailsInPDFPageFoot=Afegiu més detalls al peu de pàgina, com ara l'adreça de l'empresa o els noms dels gestors (a més d'identificadors professionals, capital de l'empresa i número de NIF/CIF). +ShowDetailsInPDFPageFoot=Afegiu més detalls al peu de pàgina, com ara l'adreça de l'empresa o els noms dels administradors (a més dels identificadors professionals, el capital social i el número de NIF). NoDetails=No hi ha detalls addicionals al peu de pàgina DisplayCompanyInfo=Mostra l'adreça de l'empresa DisplayCompanyManagers=Mostra el gestor de noms DisplayCompanyInfoAndManagers=Mostra l'adreça de l'empresa i els noms de la persona gestora EnableAndSetupModuleCron=Si voleu que aquesta factura periòdica es generi automàticament, el mòdul * %s * s’ha d’habilitar i configurar correctament. En cas contrari, la generació de factures s’ha de fer manualment des d’aquesta plantilla mitjançant el botó *Crea*. Tingueu en compte que, fins i tot si heu activat la generació automàtica, encara podeu iniciar la generació manual amb seguretat. No es pot generar duplicats per al mateix període. ModuleCompanyCodeCustomerAquarium=%s seguit del codi de client per a un codi comptable de client -ModuleCompanyCodeSupplierAquarium=%s seguit del codi de proveïdor per a un codi de comptabilitat del proveïdor +ModuleCompanyCodeSupplierAquarium=%s seguit del codi de proveïdor per a un codi de comptabilitat de proveïdor ModuleCompanyCodePanicum=Retorna un codi comptable buit. ModuleCompanyCodeDigitaria=Retorna un codi comptable compost d'acord amb el nom del tercer. El codi consisteix en un prefix, que pot definir-se, en primera posició, seguit del nombre de caràcters que es defineixi com a codi del tercer. ModuleCompanyCodeCustomerDigitaria=%s seguit pel nom abreujat del client pel nombre de caràcters: %s pel codi del compte de client ModuleCompanyCodeSupplierDigitaria=%s seguit pel nom abreujat del proveïdor pel nombre de caràcters: %s pel codi del compte de proveïdor -Use3StepsApproval=Per defecte, les comandes de compra necessiten ser creades i aprovades per 2 usuaris diferents (el primer pas/usuari és per a crear i un altre pas/usuari per a aprovar. Noteu que si un usuari té permisos tant per a crear com per a aprovar, un sol pas/usuari serà suficient). Amb aquesta opció, tens la possibilitat d'introduir un tercer pas/usuari per a l'aprovació, si l'import és superior a un determinat valor (d'aquesta manera són necessaris 3 passos: 1=validació, 2=primera aprovació i 3=segona aprovació si l'import és suficient).
Deixa-ho en blanc si només vols un nivell d'aprovació (2 passos); posa un valor encara que sigui molt baix (0,1) si vols una segona aprovació (3 passos). +Use3StepsApproval=De manera predeterminada, les comandes de compra han de ser creades i aprovades per 2 usuaris diferents (un pas/usuari per a crear i un pas/usuari per a aprovar. Tingueu en compte que si l'usuari té tant permís per a crear com per a aprovar, n'hi haurà prou amb un pas/usuari). . Podeu demanar amb aquesta opció que es presenti un tercer pas/usuari d'aprovació, si l'import és superior a un determinat valor (per tant, seran necessaris 3 passos: 1=validació, 2=primera aprovació i 3=segona aprovació si l'import és suficient).
Establiu-ho com a buit si n'hi ha prou amb una aprovació (2 passos), establiu-lo en un valor molt baix (0,1) si sempre cal una segona aprovació (3 passos). UseDoubleApproval=Utilitza una aprovació en 3 passos quan l'import (sense impostos) sigui més gran que... WarningPHPMail=ADVERTÈNCIA: la configuració per a enviar correus electrònics des de l'aplicació utilitza la configuració genèrica predeterminada. Sovint és millor configurar els correus electrònics de sortida per a utilitzar el servidor de correu electrònic del vostre proveïdor de serveis de correu electrònic en lloc de la configuració predeterminada per diversos motius: WarningPHPMailA=- L'ús del servidor del proveïdor de serveis de correu electrònic augmenta la fiabilitat del vostre correu electrònic, de manera que augmenta el lliurament sense ser marcat com a Correu brossa WarningPHPMailB=- Alguns proveïdors de serveis de correu electrònic (com Yahoo) no us permeten enviar un correu electrònic des d'un altre servidor que el seu propi servidor. La configuració actual utilitza el servidor de l’aplicació per a enviar correus electrònics i no el servidor del vostre proveïdor de correu electrònic, de manera que alguns destinataris (el compatible amb el protocol DMARC restrictiu) demanaran al vostre proveïdor de correu electrònic si poden acceptar el vostre correu electrònic i alguns proveïdors de correu electrònic. (com Yahoo) pot respondre "no" perquè el servidor no és seu, de manera que és possible que pocs dels vostres correus electrònics enviats no s'acceptin per al lliurament (tingueu cura també de la quota d'enviament del vostre proveïdor de correu electrònic). WarningPHPMailC=- També és interessant utilitzar el servidor SMTP del vostre proveïdor de serveis de correu electrònic per a enviar correus electrònics, de manera que tots els correus electrònics enviats des de l’aplicació també es guardaran al directori "Enviats" de la vostra bústia de correu. -WarningPHPMailD=Així mateix, es recomana canviar el mètode d'enviament de correus electrònics pel valor "SMTP". Si realment voleu mantenir el mètode predeterminat "PHP" per a enviar correus electrònics, només ignoreu aquest advertiment o elimineu-lo establint la constant MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP a 1 a Inici - Configuració - Altres. +WarningPHPMailD=Per tant, es recomana canviar el mètode d'enviament dels correus electrònics al valor "SMTP". +WarningPHPMailDbis=Si realment voleu mantenir el mètode "PHP" predeterminat per a enviar correus electrònics, només ignoreu aquest avís o elimineu-lo fent %sclic aquí%s. WarningPHPMail2=Si el vostre proveïdor SMTP necessita restringir al client de correu a una adreça IP (molt estrany), aquesta és la IP de l'agent d'usuari de correu (MUA) per la vostra aplicació ERP CRM: %s. WarningPHPMailSPF=Si el nom de domini de la vostra adreça de correu electrònic del remitent està protegit per un registre SPF (demaneu al registre del vostre nom de domini), heu d'afegir les IP següents al registre SPF del DNS del vostre domini: %s . ActualMailSPFRecordFound=Registre SPF real trobat (per al correu electrònic %s): %s @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
Exemple:
Per al formulari per a crear un te PageUrlForDefaultValuesList=
Exemple:
Per a la pàgina que llista els tercers, és %s.
Per a l'URL dels mòduls externs instal·lats al directori personalitzat, no incloeu el "custom/", de manera que utilitzeu una ruta com mymodule/mypagelist.php i no custom/mymodule/mypagelist.php.
Si només voleu un valor per defecte si l'URL té algun paràmetre, podeu utilitzar %s AlsoDefaultValuesAreEffectiveForActionCreate=També tingueu en compte que sobreescriure valors predeterminats per a la creació de formularis funciona només per a pàgines dissenyades correctament (de manera que amb el paràmetre action = create o presend ...) EnableDefaultValues=Activa la personalització dels valors predeterminats -EnableOverwriteTranslation=Habilita l'ús de la traducció sobreescrita +EnableOverwriteTranslation=Permet la personalització de les traduccions GoIntoTranslationMenuToChangeThis=S'ha trobat una traducció de la clau amb aquest codi. Per a canviar aquest valor, l’heu d’editar des d'Inici-Configuració-Traducció. WarningSettingSortOrder=Advertiment: establir un ordre d'ordenació per defecte pot provocar un error tècnic en entrar a la pàgina de llista si el camp és un camp desconegut. Si teniu aquest error, torneu a aquesta pàgina per a eliminar l'ordre de classificació predeterminat i restaurar el comportament predeterminat. Field=Camp @@ -643,11 +645,13 @@ Module2300Name=Tasques programades Module2300Desc=Gestió de tasques programades (àlies cron o taula de crons) Module2400Name=Esdeveniments/Agenda Module2400Desc=Seguiment d'esdeveniments. Registre d'esdeveniments automàtics per a fer el seguiment o registrar esdeveniments manuals o reunions. Aquest és el mòdul principal per a una bona gestió de la relació amb clients o proveïdors. +Module2430Name=Booking Calendar System +Module2430Desc=Provide an online calendar to allow anyone to book rendez-vous, according to predefined ranges or availabilities. Module2500Name=SGD / GCE Module2500Desc=Sistema de gestió de documents / Gestió de continguts electrònics. Organització automàtica dels vostres documents generats o emmagatzemats. Compartiu-los quan ho necessiteu. -Module2600Name=Serveis API/WEB (servidor SOAP) +Module2600Name=Serveis API / Web (servidor SOAP) Module2600Desc=Habilita el servidor SOAP de Dolibarr que ofereix serveis API -Module2610Name=Serveis API/WEB (servidor REST) +Module2610Name=Serveis API / Web (servidor REST) Module2610Desc=Habilita el servidor REST de Dolibarr que ofereix serveis API Module2660Name=Crida a WebServices (client SOAP) Module2660Desc=Activa el client de serveis web Dolibarr (es pot utilitzar per a enviar dades/sol·licituds a servidors externs. Actualment només s'admeten les comandes de compra). @@ -658,6 +662,8 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capacitats de conversió GeoIP Maxmind 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. +Module3300Name=Module Builder +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=RH @@ -698,6 +704,7 @@ Module62000Name=Incoterms Module62000Desc=Afegeix funcions per a gestionar Incoterms Module63000Name=Recursos Module63000Desc=Gestiona els recursos (impressores, cotxes, habitacions...) que pots compartir en esdeveniments +Module94160Name=Recepcions Permission11=Consulta factures de client Permission12=Crear/Modificar factures Permission13=Invalida les factures dels clients @@ -842,9 +849,9 @@ Permission286=Exporta contactes Permission291=Consultar tarifes Permission292=Indica permisos en les tarifes Permission293=Modifica les tarifes de clients -Permission300=Consulta codis de barra -Permission301=Crea/modifica codis de barres -Permission302=Suprimeix codis de barres +Permission301=Generar fulls PDF de codis de barres +Permission304=Crea/modifica codis de barres +Permission305=Suprimeix codis de barres Permission311=Consultar serveis Permission312=Assignar serveis/subscripció a un contracte Permission331=Consultar bookmarks @@ -936,7 +943,7 @@ Permission1186=Envia comandes de compra Permission1187=Rebut de confirmació de comandes de compra Permission1188=Suprimeix comandes de compra Permission1189=Marca/Desmarca la recepció d’una comanda de compra -Permission1190=Aprova (segona aprovació) les comandes de compra +Permission1190=Aprova (segona aprovació) comandes de compra Permission1191=Exporta les comandes dels proveïdors i els seus atributs Permission1201=Obté el resultat d'una exportació Permission1202=Crear/modificar exportacions @@ -971,13 +978,14 @@ Permission3301=Genera mòduls nous Permission4001=Llegir habilitat/ocupació/posició Permission4002=Crear/modificar habilitat/ocupació/posició Permission4003=Esborra habilitat/ocupació/posició -Permission4020=Llegir avaluacions -Permission4021=Crea/modifica la teva avaluació -Permission4022=Valida l'avaluació -Permission4023=Elimina l'avaluació -Permission4030=Veure menú comparatiu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Llegeix informació personal Permission4032=Escriu informació personal +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Llegiu el contingut del lloc web Permission10002=Crea / modifica contingut del lloc web (contingut html i javascript) Permission10003=Creeu / modifiqueu el contingut del lloc web (codi php dinàmic). Perillós, s'ha de reservar per a desenvolupadors restringits. @@ -1081,6 +1089,10 @@ DictionaryAssetDisposalType=Tipus d'alienació d'actius TypeOfUnit=Tipus d’unitat SetupSaved=Configuració desada SetupNotSaved=Configuració no desada +OAuthServiceConfirmDeleteTitle=Suprimeix l'entrada d'OAuth +OAuthServiceConfirmDeleteMessage=Esteu segur que voleu suprimir aquesta entrada d'OAuth? També se suprimiran totes les fitxes existents. +ErrorInEntryDeletion=Error en la supressió de l'entrada +EntryDeleted=S'ha suprimit l'entrada BackToModuleList=Torna a la llista de mòduls BackToDictionaryList=Torna a la llista de Diccionaris TypeOfRevenueStamp=Tipus de segell fiscal @@ -1125,9 +1137,9 @@ CalcLocaltax2Desc=Els informes es basen en el total de les compres CalcLocaltax3=Vendes CalcLocaltax3Desc=Els informes es basen en el total de les vendes NoLocalTaxXForThisCountry=Segons la configuració d’impostos (vegeu %s - %s - %s), el vostre país no necessita utilitzar aquest tipus d’impost -LabelUsedByDefault=Etiqueta utilitzada per defecte si no es troba cap traducció per aquest codi -LabelOnDocuments=Etiqueta sobre documents -LabelOrTranslationKey=Clau de traducció o cadena +LabelUsedByDefault=Nom utilitzat per defecte si no es troba cap traducció del codi +LabelOnDocuments=Nom als documents +LabelOrTranslationKey=Nom o clau de traducció ValueOfConstantKey=Valor d’una constant de configuració ConstantIsOn=L'opció %s està activada NbOfDays=Nombre de dies @@ -1244,6 +1256,7 @@ AreaForAdminOnly=Els paràmetres de configuració només poden ser establerts pe SystemInfoDesc=La informació del sistema és informació tècnica diversa que obteniu en mode de només lectura i visible només per als administradors. SystemAreaForAdminOnly=Aquesta àrea només està disponible per als usuaris administradors. Els permisos d'usuari de Dolibarr no poden canviar aquesta restricció. CompanyFundationDesc=Editeu la informació de la vostra empresa / organització. Feu clic al botó "%s" al final de la pàgina quan hagi acabat. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Si teniu un comptable extern, podeu editar aquí la seva informació. AccountantFileNumber=Número de fila DisplayDesc=Els paràmetres que afecten l'aspecte i la presentació de l'aplicació es poden modificar aquí. @@ -1261,6 +1274,7 @@ TriggerActiveAsModuleActive=Els activadors d'aquest fitxer estan actius, ja que 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. +MiscellaneousOptions=Miscellaneous options MiscellaneousDesc=Aquí es defineixen la resta de paràmetres relacionats amb la seguretat. LimitsSetup=Configuració de límits i precisions LimitsDesc=Podeu definir aquí els límits i precisions utilitzats per Dolibarr @@ -1290,10 +1304,12 @@ PreviousDumpFiles=Fitxers de còpia de seguretat existents PreviousArchiveFiles=Fitxers d’arxiu existents WeekStartOnDay=Primer dia de la setmana RunningUpdateProcessMayBeRequired=Sembla que cal executar el procés d’actualització (la versió del programa %s és diferent de la versió de la base de dades %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=Ha d'executar la comanda des d'un shell després d'haver iniciat sessió amb el compte %s. +YouMustRunCommandFromCommandLineAfterLoginToUser=Heu d'executar aquesta ordre des de la línia d'ordres després d'iniciar sessió a un intèrpret d'ordres amb l'usuari %s o heu d'afegir l'opció -W al final de la línia d'ordres per a proporcionar %s contrasenya YourPHPDoesNotHaveSSLSupport=Funcions SSL no disponibles al vostre PHP DownloadMoreSkins=Més temes per a descarregar SimpleNumRefModelDesc=Retorna el número de referència en el format %syymm-nnnn on yy és l'any, mm és el mes i nnnn és un número d'increment automàtic seqüencial sense restablir +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Retorna el número de referència en el format %syymm-nnnn on yy és l'any, mm és el mes i nnnn és un número d'increment automàtic seqüencial sense restablir SimpleNumRefNoDateModelDesc=Retorna el número de referència en el format %s-nnnn on nnnn és un número d’increment automàtic seqüencial sense restablir ShowProfIdInAddress=Mostra el DNI professional amb adreces ShowVATIntaInAddress=Amaga el número d’IVA intracomunitari @@ -1380,7 +1396,7 @@ GetBarCode=Obté el codi de barres NumberingModules=Models de numeració DocumentModules=Models de documents ##### Module password generation -PasswordGenerationStandard=Retorna una contrasenya generada segons l'algorisme intern de Dolibarr: %s caràcters amb barreja de números i caràcters en minúscula. +PasswordGenerationStandard=Retorna una contrasenya generada segons l'algorisme intern de Dolibarr: %s caràcters que contenen números i caràcters barrejats. PasswordGenerationNone=No suggereixis una contrasenya generada. La contrasenya s'ha d'escriure manualment. PasswordGenerationPerso=Retorna una contrasenya segons la vostra configuració personalitzada. SetupPerso=Segons la vostra configuració @@ -1409,7 +1425,7 @@ WatermarkOnDraft=Marca d'aigua en els documents esborrany JSOnPaimentBill=Activa la funció per a emplenar automàticament les línies de pagament al formulari de pagament CompanyIdProfChecker=Normes per a identificacions professionals MustBeUnique=Ha de ser únic? -MustBeMandatory=Obligatori per a crear tercers (si es defineix el NIF/CIF o el tipus d’empresa)? +MustBeMandatory=Obligatori per a crear tercers (si es defineix el NIF o el tipus d’empresa)? MustBeInvoiceMandatory=És obligatori per a validar les factures? TechnicalServicesProvided=Prestació de serveis tècnics #####DAV ##### @@ -1434,6 +1450,10 @@ SuppliersPayment=Pagaments a proveïdors SupplierPaymentSetup=Configuració de pagaments a proveïdors InvoiceCheckPosteriorDate=Comproveu la data de fabricació abans de la validació InvoiceCheckPosteriorDateHelp=La validació d'una factura estarà prohibida si la seva data és anterior a la data de l'última factura del mateix tipus. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
- Category of operations: Delivery of goods
- Category of operations: Provision of services
- Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Configuració del mòdul Pressupostos ProposalsNumberingModules=Models de numeració de pressupostos @@ -1476,11 +1496,12 @@ WatermarkOnDraftContractCards=Marca d'aigua en contractes (en cas d'estar buit) ##### Members ##### MembersSetup=Configuració del mòdul Socis MemberMainOptions=Opcions principals +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Gestiona un compte d'usuari per a cada soci AdherentMailRequired=Cal un correu electrònic per a crear un soci nou MemberSendInformationByMailByDefault=La casella de selecció per a enviar una confirmació per correu electrònic als socis (validació o nova subscripció) està activada per defecte MemberCreateAnExternalUserForSubscriptionValidated=Creeu un usuari extern per a cada subscripció nova membre validada -VisitorCanChooseItsPaymentMode=El visitant pot triar entre els modes de pagament disponibles +VisitorCanChooseItsPaymentMode=El visitant pot triar entre qualsevol forma de pagament disponible MEMBER_REMINDER_EMAIL=Activa el recordatori automàtic per correu electrònic de les subscripcions caducades. Nota: El mòdul %s s'ha d'habilitar i configurar correctament per a enviar recordatoris. MembersDocModules=Plantilles de documents per a documents generats a partir del registre de socis ##### LDAP setup ##### @@ -1569,8 +1590,8 @@ LDAPFieldLoginSamba=Nom d'usuari (samba, activedirectory) LDAPFieldLoginSambaExample=Exemple: samaccountname LDAPFieldFullname=Nom complet LDAPFieldFullnameExample=Exemple: cn -LDAPFieldPasswordNotCrypted=Contrasenya no encriptada -LDAPFieldPasswordCrypted=Contrasenya encriptada +LDAPFieldPasswordNotCrypted=La contrasenya no està xifrada +LDAPFieldPasswordCrypted=Contrasenya xifrada LDAPFieldPasswordExample=Exemple: userPassword LDAPFieldCommonNameExample=Exemple: cn LDAPFieldName=Nom @@ -1665,10 +1686,10 @@ DoNotUseDescriptionOfProdut=La descripció del producte mai no s’inclourà a l MergePropalProductCard=Activa a la pestanya Fitxers adjunts de producte/servei una opció per a combinar el document PDF del producte amb el PDF del pressupost si el producte/servei es troba en el pressupost ViewProductDescInThirdpartyLanguageAbility=Mostra les descripcions dels productes en formularis en l'idioma del tercer (en cas contrari, en l'idioma de l'usuari) UseSearchToSelectProductTooltip=A més, si teniu un gran nombre de productes (> 100.000), podeu augmentar la velocitat establint la constant PRODUCT_DONOTSEARCH_ANYWHERE a 1 a Configuració->Altres. La cerca es limitarà a l'inici de la cadena. -UseSearchToSelectProduct=Espereu fins que premeu una tecla abans de carregar el contingut de la llista combinada del producte (això pot augmentar el rendiment si teniu una gran quantitat de productes, però és menys convenient) +UseSearchToSelectProduct=Espereu fins que premeu una tecla abans de carregar el contingut de la llista combinada de productes (això pot augmentar el rendiment si teniu un gran nombre de productes, però és menys pràctic) SetDefaultBarcodeTypeProducts=Tipus de codi de barres utilitzat per defecte per als productes SetDefaultBarcodeTypeThirdParties=Tipus de codi de barres utilitzat per defecte per als tercers -UseUnits=Defineix una unitat de mesura per Quantitats per les línies de pressupostos, comandes o factures. +UseUnits=Definiu una unitat de mesura per a Quantitat durant l'edició de línies de comanda, pressupost o factura ProductCodeChecker= Mòdul per a la generació i comprovació del codi d'un producte o servei ProductOtherConf= Configuració de productes/serveis IsNotADir=No és un directori! @@ -1742,8 +1763,8 @@ ActivateFCKeditor=Activar editor avançat per a : FCKeditorForNotePublic=WYSIWIG creació/edició del camp "notes públiques" d'elements FCKeditorForNotePrivate=Creació/edició WYSIWIG del camp "notes privades" d'elements FCKeditorForCompany=Creació / edició de WYSIWIG de la descripció del camp d'elements (excepte productes / serveis) -FCKeditorForProduct=Creació / edició de WYSIWIG de la descripció del camp de productes / serveis -FCKeditorForProductDetails=Creació/edició WYSIWIG de línies de detalls de productes per a totes les entitats (pressupostos, comandes, factures, etc.). Advertiment: no es recomana utilitzar aquesta opció per a aquest cas, ja que pot crear problemes amb caràcters especials i format de pàgina en crear fitxers PDF. +FCKeditorForProductDetails=Creació/edició WYSIWIG de descripció de productes o línies per objectes (línies de pressupostos, comandes, factures, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= Creació/edició WYSIWIG dels E-Mails FCKeditorForUserSignature=Creació/edició WYSIWIG de la signatura de l'usuari FCKeditorForMail=Edició/creació WYSIWIG per tots els e-mails (excepte Eines->eMailing) @@ -1765,11 +1786,11 @@ DetailId=Identificador del menú DetailMenuHandler=Nom del gestor de menús DetailMenuModule=Nom del mòdul si l'entrada del menú és resultant d'un mòdul DetailType=Tipus de menú (superior o esquerre) -DetailTitre=Etiqueta de menú o codi d'etiqueta per traducció -DetailUrl=URL de la pàgina cap a la qual el menú apunta +DetailTitre=Nom del menú o codi d'etiqueta per a la traducció +DetailUrl=URL on t'envia el menú (enllaç URL relatiu o enllaç extern amb https://) DetailEnabled=Condició de mostrar o no DetailRight=Condició per a mostrar menús grisos no autoritzats -DetailLangs=Nom del fitxer Lang pel codi d'etiqueta de traducció +DetailLangs=Nom del fitxer de llengua per a la traducció del codi de l'etiqueta DetailUser=Intern / Extern / Tots Target=Objectiu DetailTarget=Orientació per a enllaços (_blank top obre una finestra nova) @@ -1810,6 +1831,9 @@ AGENDA_USE_EVENT_TYPE=Utilitzeu tipus d'esdeveniments (gestionats en el menú Co AGENDA_USE_EVENT_TYPE_DEFAULT=Estableix automàticament aquest valor predeterminat per al tipus d'esdeveniment en el formulari de creació de l'esdeveniment AGENDA_DEFAULT_FILTER_TYPE=Estableix automàticament aquest tipus d'esdeveniment al filtre de cerca de la vista d'agenda AGENDA_DEFAULT_FILTER_STATUS=Estableix automàticament aquest estat per a esdeveniments al filtre de cerca de la visualització d'agenda +AGENDA_EVENT_PAST_COLOR=Past event color +AGENDA_EVENT_CURRENT_COLOR=Current event color +AGENDA_EVENT_FUTURE_COLOR=Future event color AGENDA_DEFAULT_VIEW=Quina vista voleu obrir de manera predeterminada en seleccionar el menú Agenda AGENDA_REMINDER_BROWSER=Activa el recordatori d'esdeveniments al navegador de l'usuari (Quan s'arriba a la data de recordatori, el navegador mostra una finestra emergent. Cada usuari pot desactivar aquestes notificacions des de la configuració de notificacions del navegador). AGENDA_REMINDER_BROWSER_SOUND=Habilita les notificacions sonores @@ -1837,7 +1861,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=La disminució d'accions en POS no é CashDeskYouDidNotDisableStockDecease=No vau desactivar la disminució de l'estoc en fer una venda des del TPV. Per tant, es requereix un magatzem. CashDeskForceDecreaseStockLabel=S'ha forçat la disminució de l'estoc de productes per lots. CashDeskForceDecreaseStockDesc=Disminuïu primer les dates més antigues de consumir i vendre. -CashDeskReaderKeyCodeForEnter=Codi clau per a "Enter" definit al lector de codi de barres (Exemple: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Configuració del mòdul Bookmark BookmarkDesc=Aquest mòdul us permet gestionar els marcadors. També podeu afegir dreceres a totes les pàgines de Dolibarr o llocs web externs al menú de l'esquerra. @@ -1875,7 +1899,7 @@ SuppliersInvoiceNumberingModel=Models de numeració de factures de proveïdor IfSetToYesDontForgetPermission=Si establiu un valor vàlid, no us oblideu d'establir els permisos necessaris als grups o persones habilitades per la segona aprovació ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configuració del mòdul GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Ruta al fitxer que conté Maxmind ip a la traducció del país.
Exemples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Camí al fitxer que conté la ip de Maxmind amb traducció del país NoteOnPathLocation=Tingueu en compte que el fitxer de dades IP a país ha de ser dins d’un directori que pugui llegir PHP (Comproveu la configuració de PHP open_basedir i els permisos del sistema de fitxers). YouCanDownloadFreeDatFileTo=Pot descarregar-se una versió demo gratuïta de l'arxiu de països Maxmind GeoIP a l'adreça %s. YouCanDownloadAdvancedDatFileTo=També pot descarregar-se una versió més completa de l'arxiu de països Maxmind GeoIP a l'adreça %s. @@ -1886,7 +1910,7 @@ ProjectsSetup=Configuració del mòdul Projectes ProjectsModelModule=Model de document per a informes de projectes TasksNumberingModules=Mòdul numeració de tasques TaskModelModule=Mòdul de documents informes de tasques -UseSearchToSelectProject=Espereu fins que es prem una tecla abans de carregar el contingut de la llista combo del projecte.
Això pot millorar el rendiment si teniu una gran quantitat de projectes, però és menys convenient. +UseSearchToSelectProject=Espereu fins que es prem una tecla abans de carregar el contingut de la llista combinada del projecte.
Això pot millorar el rendiment si teniu un gran nombre de projectes, però és menys pràctic. ##### ECM (GED) ##### ##### Fiscal Year ##### AccountingPeriods=Períodes comptables @@ -1926,6 +1950,7 @@ BackupDumpWizard=Assistent per a crear el fitxer d'exportació de la base de dad BackupZipWizard=Assistent per a crear el directori d’arxiu de documents SomethingMakeInstallFromWebNotPossible=No és possible la instal·lació de mòduls externs des de la interfície web per la següent raó: SomethingMakeInstallFromWebNotPossible2=Per aquest motiu, el procés d'actualització descrit aquí és un procés manual que només un usuari privilegiat pot realitzar. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=El vostre administrador ha desactivat la instal·lació del mòdul extern des de l'aplicació. Heu de demanar-li que suprimeixi el fitxer %s per a permetre aquesta funció. ConfFileMustContainCustom=Per a instal·lar o crear un mòdul extern des de l'aplicació es necessita desar els fitxers del mòdul en el directori %s. Per a permetre a Dolibarr el processament d'aquest directori, has de configurar el teu conf/conf.php afegint aquestes 2 línies:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Remarca línies de la taula quan el ratolí passi per sobre @@ -1992,7 +2017,7 @@ 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 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. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s està disponible. La versió %s és una versió de manteniment, de manera que només conté correccions d'errors. Recomanem a tots els usuaris que actualitzin a aquesta versió. Una versió de manteniment no presenta noves funcions ni canvis a la base de dades. Podeu descarregar-lo des de l'àrea de descàrregues del portal https://www.dolibarr.org (subdirectori Versions estables). Podeu llegir el registre de canvis ChangeLog per a obtenir la llista completa de canvis. MultiPriceRuleDesc=Quan l'opció "Diversos nivells de preus per producte/servei" està activada, podeu definir preus diferents (un preu per nivell) per a cada producte. Per a estalviar-vos temps, aquí podeu introduir una regla per a calcular automàticament un preu per a cada nivell en funció del preu del primer nivell, de manera que només haureu d'introduir un preu per al primer nivell per a cada producte. Aquesta pàgina està dissenyada per a estalviar-vos temps, però només és útil si els preus de cada nivell són relatius al primer nivell. Podeu ignorar aquesta pàgina en la majoria dels casos. ModelModulesProduct=Plantilles per documents de productes WarehouseModelModules=Plantilles per a documents de magatzems @@ -2023,13 +2048,13 @@ activateModuleDependNotSatisfied=El mòdul "%s" depèn del mòdul "%s", que falt CommandIsNotInsideAllowedCommands=L'ordre que intenteu executar no es troba a la llista de comandaments permesos definits al paràmetre $ dolibarr_main_restrict_os_commands al fitxer conf.php . LandingPage=Pàgina de destinació principal SamePriceAlsoForSharedCompanies=Si utilitzeu un mòdul multicompany, amb l'opció "Preu únic", el preu també serà el mateix per a totes les empreses si es comparteixen productes entre entorns -ModuleEnabledAdminMustCheckRights=S'ha activat el mòdul. Els permisos per als mòdul(s) activats es donen només als usuaris administradors. Podria ser necessari concedir permisos a altres usuaris o grups de forma manual si és necessari. +ModuleEnabledAdminMustCheckRights=El mòdul s'ha activat. Els permisos per als mòduls activats només es donen als usuaris administradors. És possible que hagueu de concedir permisos a altres usuaris o grups manualment si cal. UserHasNoPermissions=Aquest usuari no té permisos definits TypeCdr=Utilitzeu "Cap" si la data del termini de pagament és la data de la factura més un delta en dies (el delta és el camp "%s")
Utilitzeu "Al final del mes", si, després del delta, s'ha d'augmentar la data per a arribar al final del mes (+ opcional "%s" en dies)
Utilitzeu "Actual/Següent" perquè la data del termini de pagament sigui la primera N del mes després del delta (el delta és el camp "%s", N s'emmagatzema al camp "%s"). BaseCurrency=Moneda de referència de l'empresa (anar a la configuració de l'empresa per a canviar-ho) WarningNoteModuleInvoiceForFrenchLaw=Aquest mòdul %s compleix les lleis franceses (Loi Finances 2016). WarningNoteModulePOSForFrenchLaw=Aquest mòdul %s compleix les lleis franceses (Loi Finances 2016) perquè el mòdul Logs no reversibles s'activa automàticament. -WarningInstallationMayBecomeNotCompliantWithLaw=Esteu intentant instal·lar el mòdul %s que és un mòdul extern. L'activació d'un mòdul extern significa que confia en l'editor d'aquest mòdul i que està segur que aquest mòdul no afectarà negativament el comportament de la vostra aplicació i compleix les lleis del vostre país (%s). Si el mòdul introdueix una característica il·legal, es fa responsable de l'ús del programari il·legal. +WarningInstallationMayBecomeNotCompliantWithLaw=Esteu intentant instal·lar el mòdul %s que és un mòdul extern. L'activació d'un mòdul extern significa que confieu en l'editor d'aquest mòdul i que esteu segur que aquest mòdul no afecta negativament el comportament de la vostra aplicació i que compleix les lleis del vostre país (%s). Si el mòdul presenta una característica il·legal, vostè es fa responsable de l'ús de programari il·legal. MAIN_PDF_MARGIN_LEFT=Marge esquerre al PDF MAIN_PDF_MARGIN_RIGHT=Marge dret al PDF MAIN_PDF_MARGIN_TOP=Marge superior al PDF @@ -2053,6 +2078,8 @@ RemoveSpecialChars=Elimina els caràcters especials COMPANY_AQUARIUM_CLEAN_REGEX=Filtre Regex per a netejar el valor (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Filtre Regex al valor net (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=No es permet la duplicació +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Oficial de protecció de dades (PDO, privadesa de dades o contacte amb GDPR) GDPRContactDesc=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ó @@ -2080,6 +2107,7 @@ MailboxTargetDirectory=Directori de destinació de la bústia EmailcollectorOperations=Operacions a fer per recol·lector EmailcollectorOperationsDesc=Les operacions s’executen de dalt a baix MaxEmailCollectPerCollect=Nombre màxim de correus electrònics recopilats per recollida +TestCollectNow=Prova de recollida CollectNow=Recolliu ara ConfirmCloneEmailCollector=Esteu segur que voleu clonar el col·lector de correu electrònic %s? DateLastCollectResult=Data de l'últim intent de recollida @@ -2109,6 +2137,7 @@ 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) LoadThirdPartyFromNameOrCreate=Carregueu la cerca de tercers a %s (crear si no es troba) +LoadContactFromEmailOrCreate=Load contact searching on %s (create if not found) AttachJoinedDocumentsToObject=Deseu els fitxers adjunts als documents d'objectes si es troba una referència d'un objecte al tema del correu electrònic. WithDolTrackingID=Missatge d'una conversa iniciada per un primer correu electrònic enviat des de Dolibarr WithoutDolTrackingID=Missatge d'una conversa iniciada per un primer correu electrònic NO enviat des de Dolibarr @@ -2122,7 +2151,7 @@ OperationParamDesc=Definiu les regles que s'han d'utilitzar per a extreure algun OpeningHours=Horari d'obertura OpeningHoursDesc=Introduïu aquí l'horari habitual d'obertura de la vostra empresa. ResourceSetup=Configuració del mòdul de recursos -UseSearchToSelectResource=Utilitza un formulari de cerca per a seleccionar un recurs (millor que una llista desplegable) +UseSearchToSelectResource=Utilitzeu un formulari de cerca per a triar un recurs (en lloc d'una llista desplegable). DisabledResourceLinkUser=Desactiva la funció per a enllaçar un recurs amb els usuaris DisabledResourceLinkContact=Desactiva la funció per a enllaçar un recurs amb els contactes EnableResourceUsedInEventCheck=Prohibir l'ús del mateix recurs al mateix temps a l'agenda @@ -2179,10 +2208,11 @@ FeatureNotAvailableWithReceptionModule=Funció no disponible quan el mòdul Rece EmailTemplate=Plantilla per correu electrònic EMailsWillHaveMessageID=Els correus electrònics tindran una etiqueta "Referències" que coincideix amb aquesta sintaxi PDF_SHOW_PROJECT=Mostra el projecte al document -ShowProjectLabel=Etiqueta del projecte +ShowProjectLabel=Nom del projecte PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Incloeu l'àlies al nom de tercers THIRDPARTY_ALIAS=Nom de tercer - Àlies de tercer ALIAS_THIRDPARTY=Àlies de tercer - Nom de tercer +PDFIn2Languages=Mostra els noms en PDF en 2 idiomes diferents PDF_USE_ALSO_LANGUAGE_CODE=Si voleu que alguns textos del vostre PDF es copiïn en 2 idiomes diferents en el mateix PDF generat, heu d’establir aquí aquest segon idioma perquè el PDF generat contingui 2 idiomes diferents en la mateixa pàgina, l’escollit en generar el PDF i aquesta (només poques plantilles de PDF admeten això). Mantingueu-lo buit per a 1 idioma per PDF. PDF_USE_A=Gerera documents PDF amb el format PDF/A en lloc del format PDF predeterminat FafaIconSocialNetworksDesc=Introduïu aquí el codi de la icona de FontAwesome. Si no sabeu què és FontAwesome, podeu utilitzar el llibre genèric d’adreces. @@ -2211,12 +2241,12 @@ 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 ara una còpia de seguretat programada o executar un programa antivirus), heu de mantenir les funcions PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No s'ha trobat cap fitxer ni directori d'escriptura dels programes comuns al directori arrel (Bo) RecommendedValueIs=Recomanat: %s Recommended=Recomanada NotRecommended=No es recomana -ARestrictedPath=Algun camí restringit +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Comproveu si hi ha actualitzacions de mòduls externs CheckForModuleUpdateHelp=Aquesta acció es connectarà amb editors de mòduls externs per a comprovar si hi ha una versió nova disponible. ModuleUpdateAvailable=Hi ha disponible una actualització @@ -2264,7 +2294,7 @@ 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. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. ModuleWebhookName = Webhook ModuleWebhookDesc = Interfície per a capturar activadors de dolibarr i enviar-lo a un URL @@ -2288,6 +2318,8 @@ IconOnly=Només icona: només text a la informació sobre eines INVOICE_ADD_ZATCA_QR_CODE=Mostra el codi QR ZATCA a les factures INVOICE_ADD_ZATCA_QR_CODEMore=Alguns països àrabs necessiten aquest codi QR a les seves factures INVOICE_ADD_SWISS_QR_CODE=Mostra el codi QR-Bill suís a les factures +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Enllaç URL de la xarxa social. Utilitzeu {socialid} per a la part variable que conté l'identificador de la xarxa social. IfThisCategoryIsChildOfAnother=Si aquesta categoria és fill d'una altra DarkThemeMode=Mode de tema fosc @@ -2307,3 +2339,30 @@ UsePassword=Utilitzeu una contrasenya UseOauth=Utilitzeu un testimoni OAUTH Images=Imatges MaxNumberOfImagesInGetPost=Nombre màxim d'imatges permeses en un camp HTML enviat en un formulari +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=El mòdul aporta un URL que pot utilitzar una eina externa per a obtenir el nom d'un tercer o contacte des del seu número de telèfon. L'URL a utilitzar és: +ScriptIsEmpty=El guió és buit +ShowHideTheNRequests=Mostra/amaga les sol·licituds SQL %s +DefinedAPathForAntivirusCommandIntoSetup=Definiu una ruta per a un programa antivirus a %s +TriggerCodes=Esdeveniments desencadenants +TriggerCodeInfo=Introduïu aquí els codis activadors que han de generar una publicació d'una sol·licitud web (només es permet l'URL extern). Podeu introduir diversos codis d'activació separats per una coma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css a les pàgines d'edició +CssOnView=Css a les pàgines de visualització +CssOnList=Css a les pàgines de llistat +HelpCssOnEditDesc=The Css used when editing the field.
Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s +Reload=Reload +ConfirmReload=Confirm module reload diff --git a/htdocs/langs/ca_ES/assets.lang b/htdocs/langs/ca_ES/assets.lang index 5d9b4fd3896..a1c550c59eb 100644 --- a/htdocs/langs/ca_ES/assets.lang +++ b/htdocs/langs/ca_ES/assets.lang @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Alexandre Spangaro +# Copyright (C) 2018-2022 Alexandre Spangaro # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,50 +16,171 @@ # # Generic # -Assets = Actius -NewAsset = Nou actiu -AccountancyCodeAsset = Codi de compte (actius) -AccountancyCodeDepreciationAsset = Codi de compte (compte d'amortització d'actius) -AccountancyCodeDepreciationExpense = Codi de compte (compte de despeses d'amortització) -NewAssetType=Tipus del nou actiu -AssetsTypeSetup=Configuració de tipus d'actius -AssetTypeModified=Tipus d'actiu modificat -AssetType=Tipus d'actiu +NewAsset=Actiu nou +AccountancyCodeAsset=Codi de compte (actius) +AccountancyCodeDepreciationAsset=Codi de compte (compte d'amortització d'actius) +AccountancyCodeDepreciationExpense=Codi de compte (compte de despeses d'amortització) AssetsLines=Actius DeleteType=Elimina -DeleteAnAssetType=Eliminar un tipus d'actiu -ConfirmDeleteAssetType=¿Està segur que vol eliminar aquest tipus d'actiu? -ShowTypeCard=Veure tipus '%s' +DeleteAnAssetType=Suprimir un model d'actiu +ConfirmDeleteAssetType=Esteu segur que voleu suprimir aquest model de recursos? +ShowTypeCard=Mostra el model '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Actius +ModuleAssetsName=Actius # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Descripció dels actius +ModuleAssetsDesc=Descripció dels actius # # Admin page # -AssetsSetup = Configuració dels actius -Settings = Configuració -AssetsSetupPage = Pàgina de configuració dels actius -ExtraFieldsAssetsType = Atributs complementaris (Tipus d'actiu) -AssetsType=Tipus d'actiu -AssetsTypeId=Id tipus d'actiu -AssetsTypeLabel=Etiqueta tipus d'actiu -AssetsTypes=Tipus d'actius +AssetSetup=Configuració dels actius +AssetSetupPage=Pàgina de configuració dels actius +ExtraFieldsAssetModel=Atributs complementaris (model de l'actiu) + +AssetsType=Model d'actiu +AssetsTypeId=Identificador del model d'actiu +AssetsTypeLabel=Nom del model d'actiu +AssetsTypes=Models d'actius +ASSET_ACCOUNTANCY_CATEGORY=Grup de comptabilitat de l'immobilitzat # # Menu # -MenuAssets = Actius -MenuNewAsset = Nou actiu -MenuTypeAssets = Tipus actiu -MenuListAssets = Llistat -MenuNewTypeAssets = Nou -MenuListTypeAssets = Llistat +MenuAssets=Actius +MenuNewAsset=Actiu nou +MenuAssetModels=Actius de model +MenuListAssets=Llistat +MenuNewAssetModel=Nou model d'actiu +MenuListAssetModels=Llistat # # Module # -NewAssetType=Tipus del nou actiu -NewAsset=Nou actiu +ConfirmDeleteAsset=De veritat voleu eliminar aquest recurs? + +# +# Tab +# +AssetDepreciationOptions=Opcions d'amortització +AssetAccountancyCodes=Comptes de comptabilitat +AssetDepreciation=Amortització + +# +# Asset +# +Asset=Actiu +Assets=Actius +AssetReversalAmountHT=Import de reversió (sense impostos) +AssetAcquisitionValueHT=Import de l'adquisició (sense impostos) +AssetRecoveredVAT=IVA recuperat +AssetReversalDate=Data de revocació +AssetDateAcquisition=Data d'adquisició +AssetDateStart=Data de posada en marxa +AssetAcquisitionType=Tipus d'adquisició +AssetAcquisitionTypeNew=Nou +AssetAcquisitionTypeOccasion=Usat +AssetType=Tipus d'actiu +AssetTypeIntangible=Intangible +AssetTypeTangible=Tangible +AssetTypeInProgress=En progrés +AssetTypeFinancial=Financera +AssetNotDepreciated=No s'amortitza +AssetDisposal=Disposició +AssetConfirmDisposalAsk=Esteu segur que voleu disposar de l'actiu %s ? +AssetConfirmReOpenAsk=Esteu segur que voleu reobrir l'actiu %s ? + +# +# Asset status +# +AssetInProgress=En progrés +AssetDisposed=Disposat +AssetRecorded=Comptabilitzat + +# +# Asset disposal +# +AssetDisposalDate=Data d'eliminació +AssetDisposalAmount=Valor d'eliminació +AssetDisposalType=Tipus d'eliminació +AssetDisposalDepreciated=Amortitzar l'any de la transferència +AssetDisposalSubjectToVat=Eliminació subjecta a IVA + +# +# Asset model +# +AssetModel=Model d'actiu +AssetModels=Models d'actius + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Depreciació econòmica +AssetDepreciationOptionAcceleratedDepreciation=Amortització accelerada (impost) +AssetDepreciationOptionDepreciationType=Tipus d'amortització +AssetDepreciationOptionDepreciationTypeLinear=Lineal +AssetDepreciationOptionDepreciationTypeDegressive=Degressiva +AssetDepreciationOptionDepreciationTypeExceptional=Excepcional +AssetDepreciationOptionDegressiveRate=Taxa decreixent +AssetDepreciationOptionAcceleratedDepreciation=Amortització accelerada (impost) +AssetDepreciationOptionDuration=Duració +AssetDepreciationOptionDurationType=Tipus de durada +AssetDepreciationOptionDurationTypeAnnual=Anual +AssetDepreciationOptionDurationTypeMonthly=Mensual +AssetDepreciationOptionDurationTypeDaily=Diàriament +AssetDepreciationOptionRate=Tarifa (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Base d'amortització (IVA no inclòs) +AssetDepreciationOptionAmountBaseDeductibleHT=Base deduïble (IVA no inclòs) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Import total de l'última depreciació (IVA no inclòs) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Depreciació econòmica +AssetAccountancyCodeAsset=Actiu +AssetAccountancyCodeDepreciationAsset=Amortització +AssetAccountancyCodeDepreciationExpense=Despesa d'amortització +AssetAccountancyCodeValueAssetSold=Valor de l'actiu alienat +AssetAccountancyCodeReceivableOnAssignment=A cobrar en disposició +AssetAccountancyCodeProceedsFromSales=Ingressos de la disposició +AssetAccountancyCodeVatCollected=IVA recaptat +AssetAccountancyCodeVatDeductible=IVA recuperat sobre actius +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Amortització accelerada (impost) +AssetAccountancyCodeAcceleratedDepreciation=Compte +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Despesa d'amortització +AssetAccountancyCodeProvisionAcceleratedDepreciation=Repossessió/Provisió + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Base d'amortització (sense IVA) +AssetDepreciationBeginDate=Inici de l'amortització +AssetDepreciationDuration=Duració +AssetDepreciationRate=Tarifa (%%) +AssetDepreciationDate=Data d'amortització +AssetDepreciationHT=Amortització (sense IVA) +AssetCumulativeDepreciationHT=Amortització acumulada (IVA no inclòs) +AssetResidualHT=Valor residual (IVA no inclòs) +AssetDispatchedInBookkeeping=Amortització registrada +AssetFutureDepreciationLine=Depreciació futura +AssetDepreciationReversal=Reversió + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=No s'ha proporcionat l'identificador de l'actiu o el so del model +AssetErrorFetchAccountancyCodesForMode=Error en recuperar els comptes comptables per al mode d'amortització "%s" +AssetErrorDeleteAccountancyCodesForMode=Error en suprimir els comptes de comptabilitat del mode d'amortització "%s" +AssetErrorInsertAccountancyCodesForMode=Error en inserir els comptes comptables del mode d'amortització '%s' +AssetErrorFetchDepreciationOptionsForMode=Error en recuperar les opcions per al mode d'amortització "%s" +AssetErrorDeleteDepreciationOptionsForMode=Error en suprimir les opcions del mode d'amortització "%s". +AssetErrorInsertDepreciationOptionsForMode=Error en inserir les opcions del mode d'amortització "%s". +AssetErrorFetchDepreciationLines=Error en recuperar les línies d'amortització registrades +AssetErrorClearDepreciationLines=Error en depurar les línies d'amortització registrades (reversió i futur) +AssetErrorAddDepreciationLine=Error en afegir una línia d'amortització +AssetErrorCalculationDepreciationLines=Error en el càlcul de les línies d'amortització (recuperació i futur) +AssetErrorReversalDateNotProvidedForMode=La data de reversió no es proporciona per al mètode d'amortització "%s" +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=La data de reversió ha de ser superior o igual a l'inici de l'exercici fiscal en curs per al mètode d'amortització "%s" +AssetErrorReversalAmountNotProvidedForMode=L'import de la reversió no es proporciona per al mode d'amortització "%s". +AssetErrorFetchCumulativeDepreciation=Error en recuperar l'import de l'amortització acumulada de la línia d'amortització +AssetErrorSetLastCumulativeDepreciation=Error en registrar l'últim import de l'amortització acumulada diff --git a/htdocs/langs/ca_ES/banks.lang b/htdocs/langs/ca_ES/banks.lang index a8c84c96961..85a966c9a0b 100644 --- a/htdocs/langs/ca_ES/banks.lang +++ b/htdocs/langs/ca_ES/banks.lang @@ -10,12 +10,12 @@ BankAccounts=Comptes bancaris BankAccountsAndGateways=Comptes bancaris | Passarel·les ShowAccount=Mostrar el compte AccountRef=Ref. compte financer -AccountLabel=Etiqueta compte financer +AccountLabel=Nom del compte financer CashAccount=Compte caixa/efectiu CashAccounts=Comptes caixa/efectiu CurrentAccounts=Comptes corrents SavingAccounts=Comptes d'estalvis -ErrorBankLabelAlreadyExists=Ja existeix l'etiqueta de compte financer +ErrorBankLabelAlreadyExists=El nom del compte financer ja existeix BankBalance=Saldo BankBalanceBefore=Saldo anterior BankBalanceAfter=Saldo posterior @@ -54,7 +54,7 @@ NewBankAccount=Compte nou NewFinancialAccount=Compte financer nou MenuNewFinancialAccount=Compte financer nou EditFinancialAccount=Edició compte -LabelBankCashAccount=Etiqueta compte o caixa +LabelBankCashAccount=Nom del banc o de l'efectiu AccountType=Tipus de compte BankType0=Compte d'estalvis BankType1=Compte bancari corrent @@ -108,7 +108,7 @@ SocialContributionPayment=Pagament d'impostos varis BankTransfer=Transferència bancària BankTransfers=Transferències bancàries MenuBankInternalTransfer=Transferència interna -TransferDesc=Utilitzeu la transferència interna per a transferir d'un compte a un altre, l'aplicació escriurà dos registres: un dèbit al compte d'origen i un crèdit al compte de destí. S'utilitzarà el mateix import, etiqueta i data per a aquesta transacció. +TransferDesc=Utilitzeu la transferència interna per a transferir d'un compte a un altre, l'aplicació escriurà dos registres: un dèbit al compte d'origen i un crèdit al compte de destí. S'utilitzarà el mateix import, nom i data per a aquesta transacció. TransferFrom=De TransferTo=Cap a TransferFromToDone=La transferència de %s cap a %s de %s %s s'ha creat. @@ -143,12 +143,12 @@ ShowAllAccounts=Mostra per a tots els comptes FutureTransaction=Transacció futura. No és possible conciliar. SelectChequeTransactionAndGenerate=Seleccioneu / filtreu els xecs que s’inclouran al rebut del dipòsit de xecs. A continuació, feu clic a "Crea". InputReceiptNumber=Selecciona l'estat del compte bancari relacionat amb la conciliació. Utilitza un valor numèric que es pugui ordenar: AAAAMM o AAAAMMDD -EventualyAddCategory=Eventualment, indiqui una categoria en la qual classificar els registres +EventualyAddCategory=Finalment, especifiqueu una categoria on classificar els registres ToConciliate=A conciliar? ThenCheckLinesAndConciliate=A continuació, comproveu les línies presents en l'extracte bancari i feu clic DefaultRIB=Codi BAN per defecte AllRIB=Tots els codis BAN -LabelRIB=Etiqueta del codi BAN +LabelRIB=Nom BAN NoBANRecord=Codi BAN no registrat DeleteARib=Codi BAN eliminat ConfirmDeleteRib=Vols eliminar aquest registre BAN? @@ -166,7 +166,7 @@ VariousPayments=Pagaments varis ShowVariousPayment=Mostra pagaments diversos AddVariousPayment=Afegiu pagaments diversos VariousPaymentId=ID de pagament divers -VariousPaymentLabel=Etiqueta de pagament divers +VariousPaymentLabel=Nom de pagament varis ConfirmCloneVariousPayment=Confirmeu el clon d'un pagament divers SEPAMandate=Mandat SEPA YourSEPAMandate=La vostra ordre SEPA @@ -185,4 +185,3 @@ 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 627f4f31374..44769c6d765 100644 --- a/htdocs/langs/ca_ES/bills.lang +++ b/htdocs/langs/ca_ES/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Estadístiques factures a clients BillsStatisticsSuppliers=Estadístiques de Factures de proveïdors DisabledBecauseDispatchedInBookkeeping=Desactivat perquè la factura ja s'ha comptabilitzat DisabledBecauseNotLastInvoice=Desactivat perquè la factura no es pot esborrar. Algunes factures s'han registrat després d'aquesta i això crearia espais buits al comptador. -DisabledBecauseNotErasable=Desactivat perque no es pot eliminar +DisabledBecauseNotLastSituationInvoice=Disabled because invoice is not erasable. This invoice is not the last one in situation invoice cycle. +DisabledBecauseNotErasable=S'ha desactivat perquè no es pot esborrar InvoiceStandard=Factura estàndard InvoiceStandardAsk=Factura estàndard -InvoiceStandardDesc=Aquest tipus de factura és la factura tradicional. També es coneix com factura de dèbit (del verb deure). +InvoiceStandardDesc=Aquest tipus de factura és la factura comuna. +InvoiceStandardShort=Estàndard InvoiceDeposit=Factura de bestreta InvoiceDepositAsk=Factura de bestreta InvoiceDepositDesc=La factura de bestreta és el tipus de factura que es crea a la recepció d'una bestreta, si no és possible realitzar el pagament sobre una factura definitiva. @@ -24,11 +26,12 @@ InvoiceProForma=Factura proforma InvoiceProFormaAsk=Factura proforma InvoiceProFormaDesc=La factura proforma és la imatge d'una factura definitiva, però que no té cap valor comptable. InvoiceReplacement=Factura rectificativa +InvoiceReplacementShort=Substitució InvoiceReplacementAsk=Factura rectificativa de la factura -InvoiceReplacementDesc=La factura de substitució s’utilitza per substituir completament una factura sense que s’hagi rebut cap pagament.

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

Nota: Només es poden substituir les factures sense pagament. Si la factura que reemplaça encara no està tancada, es tancarà automàticament a 'abandonada' InvoiceAvoir=Abonament InvoiceAvoirAsk=Abonament per factura rectificativa -InvoiceAvoirDesc=L'abonament és una factura negativa destinada a compensar un import de factura que difereix de l'import realment pagat (per haver pagat de més o per devolució de productes, per exemple). +InvoiceAvoirDesc=La nota de crèdit és una factura negativa que s'utilitza per a corregir el fet que una factura mostra un import diferent de l'import realment pagat (p. ex., el client va pagar massa per error o no pagarà l'import complet perquè alguns productes van ser retornats) . invoiceAvoirWithLines=Crear abonament amb les línies de la factura d'origen invoiceAvoirWithPaymentRestAmount=Crear abonament de la factura pendent de pagament invoiceAvoirLineWithPaymentRestAmount=Abonament per a la quantitat restant no pagada @@ -87,7 +90,7 @@ DefaultPaymentMode=Forma de pagament predeterminada DefaultBankAccount=Compte bancari per defecte IdPaymentMode=Forma de pagament (Id) CodePaymentMode=Forma de pagament (codi) -LabelPaymentMode=Forma de pagament (etiqueta) +LabelPaymentMode=Forma de pagament (nom) PaymentModeShort=Forma de pagament PaymentTerm=Condicions de pagament PaymentConditions=Condicions de pagament @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Aquesta part o u ErrorInvoiceIsNotLastOfSameType=Error: la data de la factura %s és %s. Ha de ser posterior o igual a l'última data per a les factures del mateix tipus (%s). Si us plau, canvieu la data de la factura. BillFrom=Emissor BillTo=Enviar a +ShippingTo=Shipping to ActionsOnBill=Accions en la factura RecurringInvoiceTemplate=Plantilla / Factura recurrent NoQualifiedRecurringInvoiceTemplateFound=No es pot generar cap factura de plantilla periòdica. @@ -239,8 +243,8 @@ RemainderToPay=Queda sense pagar RemainderToPayMulticurrency=La moneda original pendent de pagament RemainderToTake=Import restant per a cobrar RemainderToTakeMulticurrency=Import restant, moneda original -RemainderToPayBack=Import pendent per reemborsar -RemainderToPayBackMulticurrency=Import restant per reembossar, moneda original +RemainderToPayBack=Import restant a reemborsar +RemainderToPayBackMulticurrency=Import restant a reemborsar, moneda original NegativeIfExcessRefunded=negatiu si es reemborsa l'excés Rest=Pendent AmountExpected=Import reclamat @@ -259,7 +263,7 @@ NoOtherDraftBills=Cap altra factura esborrany NoDraftInvoices=Sense factures esborrany RefBill=Ref. factura ToBill=A facturar -RemainderToBill=Queda per facturar +RemainderToBill=Queda per a facturar SendBillByMail=Envia factura per e-mail SendReminderBillByMail=Envia recordatori per e-mail RelatedCommercialProposals=Pressupostos relacionats @@ -400,7 +404,7 @@ DateIsNotEnough=Encara no s'ha arribat a la data InvoiceGeneratedFromTemplate=La factura %s s'ha generat des de la plantilla de factura recurrent %s GeneratedFromTemplate=Generat a partir de la plantilla factura %s WarningInvoiceDateInFuture=Alerta, la data de factura és major que la data actual -WarningInvoiceDateTooFarInFuture=Alerta, la data de factura és molt antiga respecte la data actual +WarningInvoiceDateTooFarInFuture=Avís, la data de la factura està massa lluny de la data actual ViewAvailableGlobalDiscounts=Veure descomptes disponibles GroupPaymentsByModOnReports=Agrupar pagaments per mode als informes # PaymentConditions @@ -431,9 +435,9 @@ 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' +FixAmount=Import fix: 1 línia amb el nom '%s' VarAmount=Import variable (%% total) -VarAmountOneLine=Quantitat variable (%% tot.) - 1 línia amb l'etiqueta '%s' +VarAmountOneLine=Import variable (%% tot.) - 1 línia amb el nom '%s' VarAmountAllLines=Import variable (%% tot.): Totes les línies des de l'origen DepositPercent=Dipòsit %% DepositGenerationPermittedByThePaymentTermsSelected=Això ho permeten les condicions de pagament seleccionades @@ -622,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Pagament registrat i factura %s configurada SendEmailsRemindersOnInvoiceDueDate=Envieu un recordatori per correu electrònic per a les factures no pagades MakePaymentAndClassifyPayed=Registre de pagament BulkPaymentNotPossibleForInvoice=El pagament massiu no és possible per a la factura %s (tipus o estat incorrecte) +MentionVATDebitOptionIsOn=Option to pay tax based on debits +MentionCategoryOfOperations=Categoria d'operacions +MentionCategoryOfOperations0=Lliurament de mercaderies +MentionCategoryOfOperations1=Prestació de serveis +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/ca_ES/blockedlog.lang b/htdocs/langs/ca_ES/blockedlog.lang index f878fc12d5a..2c1a310ef20 100644 --- a/htdocs/langs/ca_ES/blockedlog.lang +++ b/htdocs/langs/ca_ES/blockedlog.lang @@ -8,34 +8,12 @@ BrowseBlockedLog=Registres inalterables ShowAllFingerPrintsMightBeTooLong=Mostra tots els registres arxivats (pot ser llarg) ShowAllFingerPrintsErrorsMightBeTooLong=Mostra tots els registres d'arxiu no vàlids (pot ser llarg) DownloadBlockChain=Baixa les empremtes dactilars -KoCheckFingerprintValidity=L’entrada de registre arxivada no és vàlida. Significa que algú (un pirata informàtic?) ha modificat algunes dades d’aquest registre després que es va gravar, o que ha estat esborrat el registre arxivat anterior (comproveu que la línia amb numeració anterior existeix) o ha sigut modificat el el checksum del registre anterior. +KoCheckFingerprintValidity=L'entrada de registre arxivada no és vàlida. Significa que algú (un pirata informàtic?) ha modificat algunes dades d'aquest registre després d'haver-lo enregistrat, o ha esborrat el registre arxivat anterior (comproveu que existeixi la línia amb la numeració anterior) o ha modificat la suma de verificació del registre anterior. OkCheckFingerprintValidity=El registre del registre arxivat és vàlid. Les dades d'aquesta línia no s'han modificat i l'entrada segueix l'anterior. OkCheckFingerprintValidityButChainIsKo=El registre arxivat sembla ser vàlid en comparació amb l'anterior, però la cadena s'ha corromput prèviament. AddedByAuthority=Emmagatzemat a l'autoritat remota NotAddedByAuthorityYet=Encara no emmagatzemat a l'autoritat remota ShowDetails=Mostra els detalls emmagatzemats -logPAYMENT_VARIOUS_CREATE=S'ha creat el pagament (no assignat a una factura) -logPAYMENT_VARIOUS_MODIFY=S'ha modificat el pagament (no assignat a una factura) -logPAYMENT_VARIOUS_DELETE=Supressió lògica de pagament (no assignada a una factura) -logPAYMENT_ADD_TO_BANK=Pagament afegit al banc -logPAYMENT_CUSTOMER_CREATE=S'ha creat el pagament del client -logPAYMENT_CUSTOMER_DELETE=Lògica de liquidació del pagament del client -logDONATION_PAYMENT_CREATE=Pagament de donació creat -logDONATION_PAYMENT_DELETE=Llicència de pagament de la donació -logBILL_PAYED=S'ha pagat la factura del client -logBILL_UNPAYED=Establiment de la factura del client no remunerat -logBILL_VALIDATE=Validació factura -logBILL_SENTBYMAIL=La factura del client s'envia per correu -logBILL_DELETE=S'ha suprimit la factura del client lògicament -logMODULE_RESET=S'ha desactivat el mòdul bloquejat -logMODULE_SET=S'ha habilitat el mòdul bloquejat -logDON_VALIDATE=Donació validada -logDON_MODIFY=Donació modificada -logDON_DELETE=Donació de l'eliminació lògica -logMEMBER_SUBSCRIPTION_CREATE=S'ha creat una subscripció de membre -logMEMBER_SUBSCRIPTION_MODIFY=S'ha modificat la subscripció de membre -logMEMBER_SUBSCRIPTION_DELETE=Supressió lògica de subscripció de membre -logCASHCONTROL_VALIDATE=Registre de tancament de caixa BlockedLogBillDownload=Descarrega la factura del client BlockedLogBillPreview=Previsualització de la factura del client BlockedlogInfoDialog=Detalls del registre @@ -48,10 +26,36 @@ 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). +BlockedLogDisableNotAllowedForCountry=Llista de països on l'ús d'aquest mòdul és obligatori (només per a evitar que es desactivi el mòdul per error, si el vostre país és en aquesta llista, no és possible desactivar el mòdul sense editar aquesta llista primer. Tingueu en compte també que activar/desactivar aquest mòdul mantindrà un registre al registre inalterable). OnlyNonValid=No vàlid 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 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. + +## logTypes +logBILL_DELETE=S'ha suprimit la factura del client lògicament +logBILL_PAYED=S'ha pagat la factura del client +logBILL_SENTBYMAIL=La factura del client s'envia per correu +logBILL_UNPAYED=Establiment de la factura del client no remunerat +logBILL_VALIDATE=Validació factura +logCASHCONTROL_VALIDATE=Registre de tancament de caixa +logDOC_DOWNLOAD=Descàrrega d'un document validat per a imprimir o enviar +logDOC_PREVIEW=Vista prèvia d'un document validat per a imprimir o descarregar +logDONATION_PAYMENT_CREATE=Pagament de donació creat +logDONATION_PAYMENT_DELETE=Llicència de pagament de la donació +logDON_DELETE=Donació de l'eliminació lògica +logDON_MODIFY=Donació modificada +logDON_VALIDATE=Donació validada +logMEMBER_SUBSCRIPTION_CREATE=S'ha creat una subscripció de membre +logMEMBER_SUBSCRIPTION_DELETE=Supressió lògica de subscripció de membre +logMEMBER_SUBSCRIPTION_MODIFY=S'ha modificat la subscripció de membre +logMODULE_RESET=S'ha desactivat el mòdul bloquejat +logMODULE_SET=S'ha habilitat el mòdul bloquejat +logPAYMENT_ADD_TO_BANK=Pagament afegit al banc +logPAYMENT_CUSTOMER_CREATE=S'ha creat el pagament del client +logPAYMENT_CUSTOMER_DELETE=Lògica de liquidació del pagament del client +logPAYMENT_VARIOUS_CREATE=S'ha creat el pagament (no assignat a una factura) +logPAYMENT_VARIOUS_DELETE=Supressió lògica de pagament (no assignada a una factura) +logPAYMENT_VARIOUS_MODIFY=S'ha modificat el pagament (no assignat a una factura) diff --git a/htdocs/langs/ca_ES/boxes.lang b/htdocs/langs/ca_ES/boxes.lang index 86ca76c2032..21c7a45e648 100644 --- a/htdocs/langs/ca_ES/boxes.lang +++ b/htdocs/langs/ca_ES/boxes.lang @@ -44,8 +44,10 @@ BoxTitleSupplierOrdersAwaitingReception=Comandes del proveïdor en espera de rec BoxTitleLastModifiedContacts=Adreces i contactes: últims %s modificats BoxMyLastBookmarks=Adreces d'interès: últims %s BoxOldestExpiredServices=Serveis antics expirats +BoxOldestActions=Oldest events to do BoxLastExpiredServices=Últims %s contactes amb serveis actius expirats BoxTitleLastActionsToDo=Últimes %s accions a fer +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed BoxTitleLastContracts=Últims contractes %s que es van modificar BoxTitleLastModifiedDonations=Últimes donacions %s que es van modificar BoxTitleLastModifiedExpenses=Últims informes de despeses %s que es van modificar diff --git a/htdocs/langs/ca_ES/cashdesk.lang b/htdocs/langs/ca_ES/cashdesk.lang index 1067b12b9da..c94812d4892 100644 --- a/htdocs/langs/ca_ES/cashdesk.lang +++ b/htdocs/langs/ca_ES/cashdesk.lang @@ -30,7 +30,7 @@ BankToPay=Compte de cobrament ShowCompany=Veure empresa ShowStock=Veure magatzem DeleteArticle=Feu clic per treure aquest article -FilterRefOrLabelOrBC=Cerca (Ref/Etiq.) +FilterRefOrLabelOrBC=Cerca (Ref/Nom) UserNeedPermissionToEditStockToUsePos=Es demana disminuir l'estoc en la creació de la factura, de manera que l'usuari que utilitza el TPV ha de tenir permís per editar l'estoc. DolibarrReceiptPrinter=Impressora de tiquets de Dolibarr PointOfSale=Punt de venda @@ -59,7 +59,7 @@ BillsCoinsPad=Pad de monedes i bitllets DolistorePosCategory=Mòduls TakePOS i altres solucions POS per a Dolibarr TakeposNeedsCategories=TakePOS necessita almenys una categoria de productes per a funcionar TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS necessita almenys una categoria a sota de la categoria %s per funcionar -OrderNotes=Pot afegir algunes notes a cada element ordenat +OrderNotes=Afegir notes a cada article demanat CashDeskBankAccountFor=Compte predeterminat a utilitzar per als pagaments NoPaimementModesDefined=No hi ha cap mode de pagament definit a la configuració de TakePOS TicketVatGrouped=Agrupa IVA per tipus als tiquets|rebuts @@ -119,7 +119,7 @@ Appearance=Aparença HideCategoryImages=Amaga les imatges de la categoria HideProductImages=Amaga les imatges del producte NumberOfLinesToShow=Nombre de línies d'imatges a mostrar -DefineTablePlan=Definiu el pla de les taules +DefineTablePlan=Definiu el mapa de taules GiftReceiptButton=Afegeix un botó "Tiquet regal" GiftReceipt=Tiquet regal ModuleReceiptPrinterMustBeEnabled=La impressora de recepció del mòdul deu haver estat habilitada primer @@ -131,9 +131,17 @@ ShowPriceHTOnReceipt = Mostra la columna amb el preu sense impostos (al rebut) CustomerDisplay=Visualització del client SplitSale=Venda dividida PrintWithoutDetailsButton=Afegeix el botó "Imprimeix sense detalls". -PrintWithoutDetailsLabelDefault=Etiqueta de línia per defecte a la impressió sense detalls +PrintWithoutDetailsLabelDefault=Nom de línia per defecte a la impressió sense detalls PrintWithoutDetails=Imprimeix sense detalls YearNotDefined=L'any no està definit TakeposBarcodeRuleToInsertProduct=Regla de codi de barres per inserir el producte -TakeposBarcodeRuleToInsertProductDesc=Regla per a extreure la referència del producte + una quantitat d'un codi de barres escanejat.
Si està buit (valor per defecte), l'aplicació utilitzarà el codi de barres complet escanejat per a trobar el producte.

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

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

projecte Per exemple:
Send Call per a les conferències
Enviar crida per a cabines de
suggeriments Validar de Conferències
aplicació Validar per a cabines de
subscripcions obertes per a l'esdeveniment per als assistents
Envia un recordatori de l'esdeveniment als ponents
Envia un recordatori de l'esdeveniment als organitzadors de l'estand
Envia un recordatori de l'esdeveniment als assistents EVENTORGANIZATION_TASK_LABELTooltip2=Manteniu-lo en blanc si no necessiteu crear tasques automàticament. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Categoria per a afegir a tercers creada automàticament quan algú suggereix una conferència @@ -47,13 +47,14 @@ EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Plantilla de correu electròni EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Plantilla de correu electrònic per a enviar després de pagar un registre a un esdeveniment. EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Plantilla de correu electrònic per a utilitzar quan s'envien correus electrònics des de l'acció massiva "Envia correus electrònics" als parlants EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Plantilla de correu electrònic per a utilitzar quan s'envien correus electrònics des de l'acció massiva "Envia correus electrònics" a la llista d'assistents -EVENTORGANIZATION_FILTERATTENDEES_CAT = Al formulari per crear/afegir un assistent, restringeix la llista de tercers a tercers de la categoria -EVENTORGANIZATION_FILTERATTENDEES_TYPE = En el formulari per crear/afegir un assistent, restringeix la llista de tercers a tercers amb la naturalesa +EVENTORGANIZATION_FILTERATTENDEES_CAT = En el formulari per a crear/afegir un assistent, restringeix la llista de tercers a tercers de la categoria +EVENTORGANIZATION_FILTERATTENDEES_TYPE = En el formulari per a crear/afegir un assistent, restringeix la llista de tercers a tercers amb la naturalesa # # Object # EventOrganizationConfOrBooth= Conferència o estand +EventOrganizationConfOrBoothes=Conferències o Estands ManageOrganizeEvent = Gestionar l’organització d’un esdeveniment ConferenceOrBooth = Conferència o estand ConferenceOrBoothTab = Conferència o estand @@ -114,25 +115,25 @@ EvntOrgRegistrationHelpMessage = Aquí podeu votar per una conferència o sugger EvntOrgRegistrationConfHelpMessage = Aquí podeu suggerir una nova conferència per animar durant l'esdeveniment. EvntOrgRegistrationBoothHelpMessage = Aquí, podeu sol·licitar tenir un estand durant l'esdeveniment. ListOfSuggestedConferences = Llista de conferències suggerides -ListOfSuggestedBooths = Llista de casetes suggerides -ListOfConferencesOrBooths=Llista de conferències o estands del projecte d'esdeveniments +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Suggereixi una conferència nova SuggestBooth = Suggereixi un estand ViewAndVote = Consulteu i voteu els esdeveniments suggerits PublicAttendeeSubscriptionGlobalPage = Enllaç públic per inscriure’s a l’esdeveniment PublicAttendeeSubscriptionPage = Enllaç públic per registrar-se només a aquest esdeveniment MissingOrBadSecureKey = Falta la clau de seguretat o no és vàlida -EvntOrgWelcomeMessage = Aquest formulari us permet registrar-vos com a nou participant a l'esdeveniment: %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Aquesta conferència comença el dia %s i finalitza el dia %s. ConferenceAttendeeFee = Tarifa de l'assistent a la conferència per a l'esdeveniment: "%s" que passa de %s a %s. BoothLocationFee = Ubicació de l'estand per a l'esdeveniment: "%s" que passa de %s a %s EventType = Tipus d'esdeveniment -LabelOfBooth=Etiqueta de l'estand -LabelOfconference=Etiqueta de conferència +LabelOfBooth=Nom de l'estand +LabelOfconference=Nom de la conferència ConferenceIsNotConfirmed=La inscripció no està disponible, la conferència encara no està confirmada DateMustBeBeforeThan=%s ha de ser anterior a %s DateMustBeAfterThan=%s ha de ser posterior a %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Inscripció OrganizationEventConfRequestWasReceived=S'ha rebut el vostre suggeriment per a una conferència OrganizationEventBoothRequestWasReceived=La vostra sol·licitud d’estand s’ha rebut @@ -157,7 +158,7 @@ VoteOk = El vostre vot s’ha acceptat. AlreadyVoted = Ja heu votat per aquest esdeveniment. VoteError = S'ha produït un error durant la votació. Torneu-ho a provar. -SubscriptionOk = El vostre registre s'ha validat +SubscriptionOk=S'ha enregistrat la teva inscripció ConfAttendeeSubscriptionConfirmation = Confirmació de la subscripció a un esdeveniment Attendee = Assistent PaymentConferenceAttendee = Pagament dels assistents a la conferència @@ -165,8 +166,11 @@ PaymentBoothLocation = Pagament de la ubicació de l’estand DeleteConferenceOrBoothAttendee=Elimina l'assistent RegistrationAndPaymentWereAlreadyRecorder=Ja es va registrar un registre i un pagament per al correu electrònic %s EmailAttendee=Correu electrònic de l'assistent +EmailCompany=Company email EmailCompanyForInvoice=Correu electrònic de l'empresa (per a la factura, si és diferent del correu electrònic dels assistents) ErrorSeveralCompaniesWithEmailContactUs=S'han trobat diverses empreses amb aquest correu electrònic, de manera que no podem validar automàticament el vostre registre. Si us plau, poseu-vos en contacte amb nosaltres a %s per 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 +DateStartEvent=Data d'inici de l'esdeveniment +DateEndEvent=Data de finalització de l'esdeveniment diff --git a/htdocs/langs/ca_ES/exports.lang b/htdocs/langs/ca_ES/exports.lang index cc36d947d53..805e910aa03 100644 --- a/htdocs/langs/ca_ES/exports.lang +++ b/htdocs/langs/ca_ES/exports.lang @@ -26,7 +26,7 @@ FieldsTitle=Títol camps FieldTitle=Títol camp NowClickToGenerateToBuildExportFile=Ara, seleccioneu el format de fitxer al quadre combinat i feu clic a "Genera" per a crear el fitxer d'exportació... AvailableFormats=Formats disponibles -LibraryShort=Llibreria +LibraryShort=Biblioteca ExportCsvSeparator=Caràcter separador del CSV ImportCsvSeparator=Caràcter separador del CSV Step=Pas @@ -42,7 +42,7 @@ NoImportableData=Sense taules de dades importables (cap mòdul amb les definicio FileSuccessfullyBuilt=Fitxer generat SQLUsedForExport=Consulta SQL utilitzada per a extreure dades LineId=ID de línia -LineLabel=Etiqueta de la línia +LineLabel=Nom de la línia LineDescription=Descripció de línia LineUnitPrice=Preu unitari de la línia LineVATRate=Tipus d'IVA de la línia @@ -57,8 +57,8 @@ FileMustHaveOneOfFollowingFormat=El fitxer a importar ha de tenir un dels següe 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 ... +ChooseFormatOfFileToImport=Trieu el format de fitxer que voleu utilitzar com a format de fitxer d'importació fent clic a la icona %s per a seleccionar-lo... +ChooseFileToImport=Carregueu el fitxer i feu clic a la icona %s per a seleccionar el fitxer com a fitxer d'importació d'origen... SourceFileFormat=Format de l'arxiu origen FieldsInSourceFile=Camps en el fitxer origen FieldsInTargetDatabase=Camps destinació a la base de dades Dolibarr (*=obligatori) @@ -95,8 +95,8 @@ 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 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. +DataComeFromIdFoundFromRef=El valor que prové del fitxer font s'utilitzarà per a trobar l'identificador de l'objecte mare a utilitzar (per tant, l'objecte %s que té la referència del fitxer font ha d'existir a la base de dades). +DataComeFromIdFoundFromCodeId=The value of code that comes from source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. DataIsInsertedInto=Les dades de l'arxiu d'origen s'inseriran en el següent camp: DataIDSourceIsInsertedInto=L'identificador de l'objecte pare, que s'ha trobat amb les dades del fitxer d'origen, s'inserirà al camp següent: DataCodeIDSourceIsInsertedInto=L'identificador de la línia pare, que s'ha trobat a partir del codi, s'inserirà al camp següent: @@ -119,7 +119,7 @@ ExportNumericFilter=NNNNN filtra per un valor
NNNNN+NNNNN filtra sobre un ran ImportFromLine=Importa començant des del número de línia EndAtLineNb=Final en el número de línia ImportFromToLine=Interval límit (Des de - Fins a). Per exemple per a ometre les línies de capçalera. -SetThisValueTo2ToExcludeFirstLine=Per exemple, estableixi aquest valor a 3 per excloure les 2 primeres línies.
Si no s'ometen les línies de capçalera, això provocarà diversos errors en la simulació d'importació. +SetThisValueTo2ToExcludeFirstLine=Per exemple, establiu aquest valor a 3 per a excloure les 2 primeres línies.
Si NO s'ometen les línies de capçalera, això provocarà diversos errors a la simulació d'importació. KeepEmptyToGoToEndOfFile=Mantingueu aquest camp buit per a processar totes les línies fins al final del fitxer. SelectPrimaryColumnsForUpdateAttempt=Seleccioneu les columnes que vulgueu utilitzar com a clau principal per a la importació d'ACTUALITZACIÓ UpdateNotYetSupportedForThisImport=L'actualització no és compatible amb aquest tipus d'importació (només afegir) @@ -134,7 +134,9 @@ FormatControlRule=Regla de control de format ## imports updates KeysToUseForUpdates=Clau (columna) a utilitzar per actualització dades existents NbInsert=Nombre de línies afegides: %s +NbInsertSim=Number of lines that will be inserted: %s NbUpdate=Nombre de línies actualitzades: %s +NbUpdateSim=Number of lines that will be updated : %s MultipleRecordFoundWithTheseFilters=S'han trobat múltiples registres amb aquests filtres: %s StocksWithBatch=Estocs i ubicacions (magatzem) de productes amb número de lot/sèrie WarningFirstImportedLine=Les primeres línies no s'importaran amb la selecció actual diff --git a/htdocs/langs/ca_ES/holiday.lang b/htdocs/langs/ca_ES/holiday.lang index 3a8eed8851f..2e5b738c17e 100644 --- a/htdocs/langs/ca_ES/holiday.lang +++ b/htdocs/langs/ca_ES/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=RH Holidays=Dies lliures +Holiday=Dies lliures CPTitreMenu=Dies lliures MenuReportMonth=Estat mensual MenuAddCP=Sol·licitud nova de permís +MenuCollectiveAddCP=Nova sol·licitud de festiu col·lectiu NotActiveModCP=Heu d'habilitar el mòdul Dies lliures per a veure aquesta pàgina. AddCP=Realitzar una petició de dies lliures DateDebCP=Data inici @@ -38,7 +40,7 @@ RequestByCP=Comandada per TitreRequestCP=Fitxa de dies lliures TypeOfLeaveId=Tipus d'identificador de baixa TypeOfLeaveCode=Tipus de codi de baixa -TypeOfLeaveLabel=Tipus d'etiqueta de baixa +TypeOfLeaveLabel=Nom de tipus de permís NbUseDaysCP=Nombre de dies de permís utilitzats NbUseDaysCPHelp=El càlcul té en compte els dies inhàbils i les vacances definides al diccionari. NbUseDaysCPShort=Dies de permís @@ -56,6 +58,7 @@ ConfirmDeleteCP=Estàs segur de voler eliminar aquesta petició de dies lliures? ErrorCantDeleteCP=Error, no teniu permisos per a suprimir aquesta sol·licitud de permís. CantCreateCP=No teniu accés a fer sol·licituds de permís. InvalidValidatorCP=Heu de triar l’aprovador per a la vostra sol·licitud de permís. +InvalidValidator=L'usuari escollit no és un aprovador. NoDateDebut=Ha d'indicar una data d'inici. NoDateFin=Ha d'indicar una data de fi. ErrorDureeCP=La seva petició de dies lliures no conté cap dia hàbil @@ -79,6 +82,8 @@ MotifCP=Motiu UserCP=Usuari ErrorAddEventToUserCP=S'ha produït un error en l'assignació del permís excepcional. AddEventToUserOkCP=S'ha afegit el permís excepcional. +ErrorFieldRequiredUserOrGroup=Cal omplir el camp "grup" o el camp "usuari". +fusionGroupsUsers=El camp de grups i el camp d'usuari es fusionaran MenuLogCP=Veure registre de canvis LogCP=Registre de totes les actualitzacions realitzades a "Saldo de permisos" ActionByCP=Actualitzat per @@ -86,12 +91,19 @@ UserUpdateCP=Actualitzat per a PrevSoldeCP=Saldo anterior NewSoldeCP=Saldo nou alreadyCPexist=En aquest període ja s’ha fet una sol·licitud de dia lliure. +UseralreadyCPexist=Ja s'ha fet una sol·licitud de festiu en aquest període per a %s. +groups=Grups +users=Usuaris +AutoSendMail=Correu automàtic +NewHolidayForGroup=Nova sol·licitud de festiu col·lectiu +SendRequestCollectiveCP=Enviar sol·licitud de festiu col·lectiu +AutoValidationOnCreate=Validació automàtica FirstDayOfHoliday=Primer dia de sol·licitud de permís LastDayOfHoliday=Últim del dia de sol·licitud de permís BoxTitleLastLeaveRequests=Últimes %s peticions de dies lliures modificades HolidaysMonthlyUpdate=Actualització mensual ManualUpdate=Actualització manual -HolidaysCancelation=Anulació de dies lliures +HolidaysCancelation=Cancel·lació de la sol·licitud de dies lliures EmployeeLastname=Cognoms de l'empleat EmployeeFirstname=Nom de l'empleat TypeWasDisabledOrRemoved=El tipus de dia lliure (id %s) ha sigut desactivat o eliminat @@ -100,7 +112,7 @@ AllHolidays=Totes les sol·licituds de permís HalfDay=Mig dia NotTheAssignedApprover=No sou l'aprovador assignat LEAVE_PAID=Vacances pagades -LEAVE_SICK=Baixa per enfermetat +LEAVE_SICK=Baixa per malaltia LEAVE_OTHER=Altres sortides LEAVE_PAID_FR=Vacances pagades ## Configuration du Module ## @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s sol ser un dia NO laborable BlockHolidayIfNegative=Bloqueja si el saldo és negatiu LeaveRequestCreationBlockedBecauseBalanceIsNegative=La creació d'aquesta sol·licitud de vacances està bloquejada perquè el vostre saldo és negatiu ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=La sol·licitud d'abandonament %s ha de ser esborrany, cancel·lada o rebutjada per eliminar-la +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=El saldo dels dies restants per a %s no s'ha canviat diff --git a/htdocs/langs/ca_ES/interventions.lang b/htdocs/langs/ca_ES/interventions.lang index 1ec9149bf55..0297d3da2bf 100644 --- a/htdocs/langs/ca_ES/interventions.lang +++ b/htdocs/langs/ca_ES/interventions.lang @@ -50,7 +50,7 @@ UseDateWithoutHourOnFichinter=Oculta hores i minuts del camp de dates dels regis InterventionStatistics=Estadístiques de intervencions NbOfinterventions=Nombre de fitxers d’intervenció NumberOfInterventionsByMonth=Nombre de fitxes d'intervenció per mes (data de validació) -AmountOfInteventionNotIncludedByDefault=La quantitat d'intervenció no s'inclou de manera predeterminada en els beneficis (en la majoria dels casos, els fulls de temps s'utilitzen per a comptar el temps dedicat). Per incloure'ls, afegiu l'opció PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT amb el valor 1 a Inici-Configuració-Altres. +AmountOfInteventionNotIncludedByDefault=La quantitat d'intervenció no s'inclou per defecte als beneficis (en la majoria dels casos, les fulles de temps s'utilitzen per a comptar el temps dedicat). Afegiu l'opció PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT a 1 a Inici-Vonfiguració-Altres per a incloure'ls. InterId=Id. d'intervenció InterRef=Ref. d'intervenció InterDateCreation=Data de creació de la intervenció @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Esteu segur que voleu tornar a obrir la intervenció < GenerateInter=Generar intervenció FichinterNoContractLinked=La intervenció %s s'ha creat sense un contracte vinculat. ErrorFicheinterCompanyDoesNotExist=L'empresa no existeix. No s'ha creat la intervenció. +NextDateToIntervention=Data per a la propera generació d'intervenció +NoIntervention=Cap intervenció diff --git a/htdocs/langs/ca_ES/languages.lang b/htdocs/langs/ca_ES/languages.lang index 11ba5a08955..fced7fe87ff 100644 --- a/htdocs/langs/ca_ES/languages.lang +++ b/htdocs/langs/ca_ES/languages.lang @@ -8,12 +8,13 @@ Language_ar_MA=Àrab (marroquí) Language_ar_SA=Àrab Language_ar_TN=Àrab (Tunísia) Language_ar_IQ=Àrab (Iraq) -Language_as_IN=assameses -Language_az_AZ=Azerbaidjan +Language_as_IN=Assamès +Language_az_AZ=Àzeri Language_bn_BD=Bengalí Language_bn_IN=Bengalí (Índia) Language_bg_BG=Búlgar -Language_bs_BA=Bosni +Language_bo_CN=tibetà +Language_bs_BA=Bosnià Language_ca_ES=Català Language_cs_CZ=Txec Language_cy_GB=Gal·lès @@ -22,11 +23,12 @@ Language_da_DK=Danès Language_de_DE=Alemany Language_de_AT=Alemany (Austria) Language_de_CH=Alemany (Suïssa) +Language_de_LU=German (Luxembourg) Language_el_GR=Grec Language_el_CY=Grec (Xipre) Language_en_AE=Anglès (Emirats Àrabs Units) Language_en_AU=Anglès (Australia) -Language_en_CA=Anglès (Canada) +Language_en_CA=Anglès (Canadà) Language_en_GB=Anglès (Regne Unit) Language_en_IN=Anglès (Índia) Language_en_NZ=Anglès (Nova Zelanda) @@ -34,11 +36,13 @@ Language_en_SA=Anglès (Aràbia Saudita) Language_en_SG=Anglès (Singapur) Language_en_US=Anglès (Estats Units) Language_en_ZA=Anglès (Àfrica del Sud) +Language_en_ZW=English (Zimbabwe) Language_es_ES=Espanyol Language_es_AR=Espanyol (Argentina) Language_es_BO=Espanyol (Bolivia) Language_es_CL=Espanyol (Chile) Language_es_CO=Espanyol (Colòmbia) +Language_es_CR=Espanyol (Costa Rica) Language_es_DO=Espenyol (Republica Dominicana) Language_es_EC=Espanyol (Equador) Language_es_GT=Espanyol (Guatemala) @@ -88,11 +92,12 @@ Language_mk_MK=Macedoni Language_mn_MN=Mongol Language_my_MM=Birmà Language_nb_NO=Noruec (Bokmal) -Language_ne_NP=Nepalí +Language_ne_NP=Nepalès Language_nl_BE=Neerlandès (Bèlgica) Language_nl_NL=Holandès Language_pl_PL=Polonès Language_pt_AO=Portuguès (Angola) +Language_pt_MZ=Portuguès (Moçambic) Language_pt_BR=Portuguès (Brasil) Language_pt_PT=Portuguès Language_ro_MD=Romanès (Moldàvia) @@ -105,9 +110,10 @@ Language_tr_TR=Turc Language_sl_SI=Eslovè Language_sv_SV=Suec Language_sv_SE=Suec -Language_sq_AL=Albania +Language_sq_AL=Albanès Language_sk_SK=Eslovac Language_sr_RS=Serbi +Language_sw_KE=Swahili Language_sw_SW=Kiswahili Language_th_TH=Tailandès Language_uk_UA=Ucraïnès diff --git a/htdocs/langs/ca_ES/loan.lang b/htdocs/langs/ca_ES/loan.lang index ac2dd4e3c13..edc241eb214 100644 --- a/htdocs/langs/ca_ES/loan.lang +++ b/htdocs/langs/ca_ES/loan.lang @@ -13,8 +13,8 @@ Nbterms=Nombre de termes Term=Termini LoanAccountancyCapitalCode=Compte comptable del capital LoanAccountancyInsuranceCode=Compte comptable de l'assegurança -LoanAccountancyInterestCode=Compte comptable per al interès -ConfirmDeleteLoan=Confirma la eliminació del préstec +LoanAccountancyInterestCode=Compte comptable dels interessos +ConfirmDeleteLoan=Confirmeu l'eliminació d'aquest préstec LoanDeleted=Préstec eliminat correctament ConfirmPayLoan=Confirma la classificació del préstec com a pagat LoanPaid=Préstec pagat @@ -28,7 +28,7 @@ CantUseScheduleWithLoanStartedToPaid = No es pot generar un calendari per a un p CantModifyInterestIfScheduleIsUsed = No pots modificar l’interès si fas servir la programació # Admin ConfigLoan=Configuració del mòdul de préstecs -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Compte comptable del capital per defecte -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Compte comptable per al interès per defecte -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Compte comptable de l'assegurança per defecte +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Edita el compromís financer diff --git a/htdocs/langs/ca_ES/mailmanspip.lang b/htdocs/langs/ca_ES/mailmanspip.lang index f0b860515ce..fc238407847 100644 --- a/htdocs/langs/ca_ES/mailmanspip.lang +++ b/htdocs/langs/ca_ES/mailmanspip.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - mailmanspip MailmanSpipSetup=Configuració del mòdul Mailman i SPIP MailmanTitle=Sistema de llistes de correu Mailman -TestSubscribe=Per comprovar la subscripció a llistes Mailman -TestUnSubscribe=Per comprovar la cancel·lació de subscripcions a llistes Mailman +TestSubscribe=Per a provar la subscripció a llistes Mailman +TestUnSubscribe=Per a provar la cancel·lació de la subscripció a les llistes Mailman MailmanCreationSuccess=La prova de subscripció s'ha executat correctament MailmanDeletionSuccess=La prova de baixa de subscripció s'ha executat correctament SynchroMailManEnabled=Una actualització de Mailman ha d'efectuar-se SynchroSpipEnabled=Una actualització de Mailman ha d'efectuar-se -DescADHERENT_MAILMAN_ADMINPW=Contrasenya d'administrador Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Contrasenya d'administrador Mailman DescADHERENT_MAILMAN_URL=URL per a les subscripcions Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL per a les desubscripcions Mailman DescADHERENT_MAILMAN_LISTS=Llista (es) per a la subscripció automàtica dels nous membres (separats per comes) @@ -18,10 +18,10 @@ DescADHERENT_SPIP_USER=Usuari de la base de dades d'SPIP DescADHERENT_SPIP_PASS=Contrasenya de la base de dades d'SPIP AddIntoSpip=Afegir a SPIP AddIntoSpipConfirmation=Esteu segur de voler afegir aquest soci a SPIP? -AddIntoSpipError=S'ha produït un error en afegir el usuari a SPIP +AddIntoSpipError=No s'ha pogut afegir l'usuari a SPIP DeleteIntoSpip=Esborrar de SPIP DeleteIntoSpipConfirmation=Esteu segur de voler esborrar aquest membre del SPIP? DeleteIntoSpipError=S'ha produït un error en suprimir l'usuari del SPIP -SPIPConnectionFailed=Error al connectar amb SPIP +SPIPConnectionFailed=No s'ha pogut connectar a SPIP SuccessToAddToMailmanList=S'ha afegit %s correctament en la llista mailman %s o en la base de dades SPIP SuccessToRemoveToMailmanList=S'ha eliminat %s correctament de la llista mailman %s o en la base de dades SPIP diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang index e316bb74b99..77b9b4cd021 100644 --- a/htdocs/langs/ca_ES/main.lang +++ b/htdocs/langs/ca_ES/main.lang @@ -34,6 +34,7 @@ NoTemplateDefined=No hi ha cap plantilla disponible per a aquest tipus de correu AvailableVariables=Variables de substitució disponibles NoTranslation=Sense traducció Translation=Traducció +Translations=Translations CurrentTimeZone=Fus horari PHP (Servidor) EmptySearchString=Introdueix criteris de cerca no buits EnterADateCriteria=Introduïu un criteri de data @@ -45,14 +46,14 @@ Error=Error Errors=Errors ErrorFieldRequired=El camp '%s' és obligatori ErrorFieldFormat=El camp '%s' té un valor incorrecte -ErrorFileDoesNotExists=El arxiu %s no existeix +ErrorFileDoesNotExists=El fitxer %s no existeix ErrorFailedToOpenFile=Impossible obrir el fitxer %s ErrorCanNotCreateDir=No es pot crear el directori %s ErrorCanNotReadDir=No es pot llegir el directori %s ErrorConstantNotDefined=Parámetre %s no definit ErrorUnknown=Error desconegut ErrorSQL=Error de SQL -ErrorLogoFileNotFound=El arxiu logo '%s' no es troba +ErrorLogoFileNotFound=No s'ha trobat el fitxer de logotip «%s». ErrorGoToGlobalSetup=Aneu a la configuració "Empresa/Organització" per a solucionar-ho ErrorGoToModuleSetup=Aneu a Configuració del mòdul per a solucionar-ho ErrorFailedToSendMail=Error en l'enviament de l'e-mail (emissor =%s, destinatairo =%s) @@ -90,7 +91,7 @@ FileSaved=El fitxer s'ha desat correctament FileUploaded=L'arxiu s'ha carregat correctament FileTransferComplete=El(s) fitxer(s) s'han carregat correctament FilesDeleted=El(s) fitxer(s) s'han eliminat correctament -FileWasNotUploaded=Un arxiu ha estat seleccionat per adjuntar, però encara no ha estat pujat. Feu clic a "Adjuntar aquest arxiu" per a això. +FileWasNotUploaded=S'ha seleccionat un fitxer per a adjuntar-lo, però encara no s'ha penjat. Feu clic a "Adjuntar fitxer" per a això. NbOfEntries=Nombre d'entrades GoToWikiHelpPage=Llegiu l'ajuda en línia (cal tenir accés a Internet) GoToHelpPage=Consultar l'ajuda @@ -114,7 +115,7 @@ PreviousValue=Valor anterior ConnectedOnMultiCompany=Connexió a l'entitat ConnectedSince=Connectat des AuthenticationMode=Mode autentificació -RequestedUrl=URL sol·licitada +RequestedUrl=URL sol·licitat DatabaseTypeManager=Tipus de gestor de base de dades RequestLastAccessInError=Últimes peticions d'accés a la base de dades amb error ReturnCodeLastAccessInError=Retorna el codi per les últimes peticions d'accés a la base de dades amb error @@ -205,6 +206,7 @@ Valid=Validar Approve=Aprovar Disapprove=Desaprovar ReOpen=Reobrir +OpenVerb=Obert Upload=Carrega ToLink=Enllaç Select=Seleccionar @@ -222,8 +224,9 @@ UserGroup=Grup d'usuaris UserGroups=Grups d'usuaris NoUserGroupDefined=Grup d'usuari no definit Password=Contrasenya -PasswordRetype=Repetir contrasenya +PasswordRetype=Repetiu la vostra contrasenya NoteSomeFeaturesAreDisabled=Tingues en compte que molts mòduls i funcionalitats estan deshabilitats en aquesta demostració. +YourUserFile=Your user file Name=Nom NameSlashCompany=Nom / Empresa Person=Persona @@ -241,8 +244,8 @@ Language=Idioma MultiLanguage=Multiidioma Note=Nota Title=Títol -Label=Etiqueta -RefOrLabel=Ref. o etiqueta +Label=Nom +RefOrLabel=Ref. o nom Info=Log Family=Família Description=Descripció @@ -262,7 +265,7 @@ Numero=Número Limit=Límit Limits=Límits Logout=Desconnexió -NoLogoutProcessWithAuthMode=No s'ha pogut desconnectar amb el mètode de autenticació %s +NoLogoutProcessWithAuthMode=No s'ha pogut desconnectar amb el mètode d'autenticació %s Connection=Usuari Setup=Configuració Alert=Alerta @@ -487,6 +490,7 @@ ActionsOnContact=Esdeveniments per a aquest contacte / adreça ActionsOnContract=Esdeveniments per a aquest contracte ActionsOnMember=Esdeveniments d'aquest soci ActionsOnProduct=Esdeveniments sobre aquest producte +ActionsOnAsset=Events for this fixed asset NActionsLate=%s en retard ToDo=A realitzar Completed=Finalitzat @@ -571,7 +575,7 @@ Photo=Foto Photos=Fotos AddPhoto=Afegeix una imatge DeletePicture=Elimina la imatge -ConfirmDeletePicture=Confirmes l'eliminació de la imatge? +ConfirmDeletePicture=Vols confirmar l'eliminació de la imatge? Login=Nom d'usuari LoginEmail=Codi d'usuari (correu electrònic) LoginOrEmail=Codi d'usuari o correu electrònic @@ -804,10 +808,11 @@ Frequency=Freqüència IM=Missatgeria instantània NewAttribute=Atribut nou AttributeCode=Codi atribut -URLPhoto=Url de la foto/logo +URLPhoto=URL de la foto/logotip SetLinkToAnotherThirdParty=Enllaça amb un altre tercer LinkTo=Enllaça a LinkToProposal=Enllaça a pressupost +LinkToExpedition= Enllaç a l'expedició LinkToOrder=Enllaça a comanda LinkToInvoice=Enllaça a factura LinkToTemplateInvoice=Enllaçar a plantilla de factura @@ -859,7 +864,7 @@ AccountCurrency=Moneda del compte ViewPrivateNote=Veure notes XMoreLines=%s línia(es) oculta(es) ShowMoreLines=Mostra més/menys línies -PublicUrl=URL pública +PublicUrl=URL públic AddBox=Afegir quadre SelectElementAndClick=Seleccioneu un element i feu clic a %s PrintFile=%s arxius a imprimir @@ -893,6 +898,9 @@ MassFilesArea=Àrea de fitxers generats per accions massives ShowTempMassFilesArea=Mostra l'àrea de fitxers generats per accions massives ConfirmMassDeletion=Confirmació d'esborrament massiu ConfirmMassDeletionQuestion=Esteu segur que voleu suprimir els (s) registre (s) %s? +ConfirmMassClone=Bulk clone confirmation +ConfirmMassCloneQuestion=Select project to clone to +ConfirmMassCloneToOneProject=Clone to project %s RelatedObjects=Objectes relacionats ClassifyBilled=Classifica facturat ClassifyUnbilled=Classifica no facturat @@ -908,8 +916,8 @@ ExportFilteredList=Llistat filtrat d'exportació ExportList=Llistat d'exportació ExportOptions=Opcions d'exportació IncludeDocsAlreadyExported=Inclou documents ja exportats -ExportOfPiecesAlreadyExportedIsEnable=L’exportació de peces ja exportades està habilitada -ExportOfPiecesAlreadyExportedIsDisable=L’exportació de peces ja exportades està inhabilitada +ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported +ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported AllExportedMovementsWereRecordedAsExported=Tots els moviments exportats s'han registrat com a exportats NotAllExportedMovementsCouldBeRecordedAsExported=No s'ha pogut registrar tots els moviments exportats com a exportats Miscellaneous=Diversos @@ -926,6 +934,7 @@ DirectDownloadInternalLink=Enllaç de descàrrega privat PrivateDownloadLinkDesc=Cal estar registrat i amb permisos per a visualitzar o descarregar el fitxer Download=Descarrega DownloadDocument=Baixar el document +DownloadSignedDocument=Download signed document ActualizeCurrency=Actualitza el canvi de divisa Fiscalyear=Any fiscal ModuleBuilder=Generador de mòduls i aplicacions @@ -1023,14 +1032,14 @@ trillion=bilions quadrillion=quadril·ló SelectMailModel=Seleccioneu una plantilla de correu electrònic SetRef=Indica ref -Select2ResultFoundUseArrows=Alguns resultats trobats. Fes servir les fletxes per seleccionar. +Select2ResultFoundUseArrows=S'han trobat alguns resultats. Utilitzeu les fletxes per a seleccionar. Select2NotFound=No s'han trobat resultats Select2Enter=Entrar Select2MoreCharacter=o més caràcter Select2MoreCharacters=o més caràcters Select2MoreCharactersMore=Sintaxi de cerca:
| O (a|b)
* Qualsevol caràcter (a*b)
^ Comença amb (^ab)
$ Finalitza amb (ab$)
Select2LoadingMoreResults=Carregant més resultats -Select2SearchInProgress=Busqueda en progrés... +Select2SearchInProgress=Cerca en curs... SearchIntoThirdparties=Tercers SearchIntoContacts=Contactes SearchIntoMembers=Socis @@ -1051,6 +1060,7 @@ SearchIntoContracts=Contractes SearchIntoCustomerShipments=Enviaments de client SearchIntoExpenseReports=Informes de despeses SearchIntoLeaves=Dies lliures +SearchIntoKM=Base de coneixements SearchIntoTickets=Tiquets SearchIntoCustomerPayments=Pagaments dels clients SearchIntoVendorPayments=Pagaments a proveïdors @@ -1075,7 +1085,7 @@ Deletedraft=Suprimeix l'esborrany ConfirmMassDraftDeletion=Confirmació d'eliminació massiva d'esborranys FileSharedViaALink=Fitxer compartit amb un enllaç públic SelectAThirdPartyFirst=Selecciona un tercer primer -YouAreCurrentlyInSandboxMode=Actualment esteu en el mode %s "sandbox" +YouAreCurrentlyInSandboxMode=Actualment, esteu en el mode «sandbox» %s Inventory=Inventari AnalyticCode=Codi analític TMenuMRP=MRP @@ -1087,7 +1097,7 @@ PaymentInformation=Informació sobre el pagament ValidFrom=Vàlid des de ValidUntil=Vàlid fins NoRecordedUsers=No hi ha usuaris -ToClose=Per tancar +ToClose=Tancar ToRefuse=Refusar ToProcess=A processar ToApprove=Per a aprovar @@ -1122,6 +1132,7 @@ DeleteFileText=Realment vols suprimir aquest fitxer? ShowOtherLanguages=Mostrar altres idiomes SwitchInEditModeToAddTranslation=Canviar a mode d'edició per a afegir traduccions per a aquest idioma NotUsedForThisCustomer=No s'utilitza per a aquest client +NotUsedForThisVendor=Not used for this vendor AmountMustBePositive=L'import ha de ser positiu ByStatus=Per estat InformationMessage=Informació @@ -1142,15 +1153,29 @@ EventReminder=Recordatori d'esdeveniments UpdateForAllLines=Actualització per a totes les línies OnHold=Fora de servei Civility=Civilitat -AffectTag=Afecta l'etiqueta +AffectTag=Assign a Tag +AffectUser=Assign a User +SetSupervisor=Set the supervisor CreateExternalUser=Crea un usuari extern -ConfirmAffectTag=Afecta l'etiqueta massivament -ConfirmAffectTagQuestion=Esteu segur que voleu afectar les etiquetes als registres seleccionats %s? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project/opportunity +TasksRole=Role assigned on each task (if used) +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No s'ha trobat cap tipus d'etiqueta per al tipus de registres +Rate=Tipus +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copiat al porta-retalls InformationOnLinkToContract=Aquest import només és el total de totes les línies del contracte. No es té en compte cap noció de temps. ConfirmCancel=Esteu segur que voleu cancel·lar-la? EmailMsgID=Envia un correu electrònic a MsgID +EmailDate=Email date +SetToStatus=Estableix a l'estat %s SetToEnabled=Estableix a activat SetToDisabled=Estableix a desactivat ConfirmMassEnabling=confirmació d'activació massiva @@ -1179,11 +1204,21 @@ Terminated=Baixa AddLineOnPosition=Afegeix una línia a la posició (al final si està buida) ConfirmAllocateCommercial=Assigna la confirmació del representant de vendes ConfirmAllocateCommercialQuestion=Esteu segur que voleu assignar els registres seleccionats (%s)? -CommercialsAffected=Representants comercials afectats -CommercialAffected=Representant de vendes afectat +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned YourMessage=El teu missatge -YourMessageHasBeenReceived=S'ha rebut el teu missatge. Et respondrem o contactarem el més aviat possible. +YourMessageHasBeenReceived=S'ha rebut el teu missatge. Et respondrem o contactarem al més aviat possible. UrlToCheck=URL per a comprovar Automation=Automatització CreatedByEmailCollector=Creat pel recol·lector de correu electrònic CreatedByPublicPortal=Creat a partir del portal públic +UserAgent=Agent d'usuari +InternalUser=Usuari intern +ExternalUser=Usuari extern +NoSpecificContactAddress=No specific contact or address +NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate. +HideOnVCard=Hide %s +AddToContacts=Add address to my contacts +LastAccess=Últim accés +UploadAnImageToSeeAPhotoHere=Carregueu una imatge de la pestanya %s per a veure una foto aquí +LastPasswordChangeDate=Last password change date diff --git a/htdocs/langs/ca_ES/members.lang b/htdocs/langs/ca_ES/members.lang index 68bcc3adf9f..db410480361 100644 --- a/htdocs/langs/ca_ES/members.lang +++ b/htdocs/langs/ca_ES/members.lang @@ -15,6 +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 +MemberCountersArePublic=Els comptadors de socis vàlids són públics MembersCards=Generació de carnets per a socis MembersList=Llistat de socis MembersListToValid=Llistat de socis esborrany (per a validar) @@ -34,13 +35,14 @@ DateSubscription=Data d'adhesió DateEndSubscription=Data de finalització de la subscripció EndSubscription=Fi de la pertinença SubscriptionId=Identificador de contribució -WithoutSubscription=Sense aportació +WithoutSubscription=Without membership +WaitingSubscription=Membership pending MemberId=Identificador de membre MemberRef=Membre Ref NewMember=Soci nou MemberType=Tipus de soci MemberTypeId=ID de tipus de soci -MemberTypeLabel=Etiqueta de tipus de soci +MemberTypeLabel=Nom de tipus de soci MembersTypes=Tipus de socis MemberStatusDraft=Esborrany (a validar) MemberStatusDraftShort=Esborrany @@ -72,6 +74,12 @@ MemberTypeCanNotBeDeleted=El tipus de soci no es pot eliminar NewSubscription=Aportació nova NewSubscriptionDesc=Aquest formulari us permet registrar la vostra afiliació com a soci nou de l'entitat. Si voleu renovar l'afiliació (si ja sou soci), poseu-vos en contacte amb el gestor de l'entitat per correu electrònic %s. Subscription=Contribució +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Qualsevol import +CanEditAmountShortForValues=recomanat, qualsevol import +MembershipDuration=Duració +GetMembershipButtonLabel=Join Subscriptions=Aportacions SubscriptionLate=En retard SubscriptionNotReceived=No s’ha rebut cap contribució @@ -136,7 +144,7 @@ CardContent=Contingut de la seva fitxa de soci # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Volem informar-li que s'ha rebut la vostra sol·licitud de subscripció.

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

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

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

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

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

DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Assumpte del correu electrònic de notificació rebut en cas d'inscripció automàtica d'un convidat @@ -199,8 +207,10 @@ NbOfSubscriptions=Nombre de contribucions AmountOfSubscriptions=Import recaptat de les contribucions TurnoverOrBudget=Volum de vendes (empresa) o Pressupost (associació o col.lectiu) DefaultAmount=Import per defecte de la contribució -CanEditAmount=Visitor can choose/edit amount of its contribution -MEMBER_NEWFORM_PAYONLINE=Anar a la pàgina integrada de pagament en línia +CanEditAmount=L'import de la subscripció és gratuït +CanEditAmountDetail=El visitant pot triar/editar la quantitat de la seva contribució independentment del tipus de soci +AmountIsLowerToMinimumNotice=sobre un total d'%s +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Per naturalesa MembersStatisticsByProperties=Estadístiques dels membres per naturalesa VATToUseForSubscriptions=Tipus d’IVA a utilitzar per a les aportacions @@ -221,3 +231,4 @@ CreateDolibarrLoginDesc=La creació d'un inici de sessió d'usuari per als membr CreateDolibarrThirdPartyDesc=Un tercer és l'entitat jurídica que s'utilitzarà a la factura si decidiu generar factura per a cada contribució. El podreu crear més endavant durant el procés de gravació de la contribució. MemberFirstname=Nom del membre MemberLastname=Cognom del membre +MemberCodeDesc=Codi de soci, únic per a tots els socis diff --git a/htdocs/langs/ca_ES/modulebuilder.lang b/htdocs/langs/ca_ES/modulebuilder.lang index 0ca1913650a..ead829e1a93 100644 --- a/htdocs/langs/ca_ES/modulebuilder.lang +++ b/htdocs/langs/ca_ES/modulebuilder.lang @@ -1,14 +1,16 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Identificador del mòdul ModuleBuilderDesc=Aquesta eina només l'han d'utilitzar usuaris o desenvolupadors experimentats. Proporciona utilitats per a construir o editar el vostre propi mòdul. La documentació per al desenvolupament manual alternatiu és aquí . -EnterNameOfModuleDesc=Introduïu el nom del mòdul/aplicació que voleu crear sense espais. Utilitzeu majúscules per 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. +EnterNameOfModuleDesc=Introduïu el nom del mòdul/aplicació que voleu crear sense espais. Utilitzeu majúscules per a separar paraules (per exemple: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Introduïu el nom de l'objecte que voleu crear sense espais. Utilitzeu majúscules per a separar paraules (per exemple: ElMeuObjecte, Estudiant, Professor...). Es generarà el fitxer de classe CRUD, les pàgines per a llistar/afegir/editar/suprimir l'objecte i els fitxers SQL. +EnterNameOfDictionaryDesc=Introduïu el nom del diccionari que voleu crear sense espais. Utilitzeu majúscules per a separar paraules (per exemple: MyDico...). Es generarà el fitxer de classe, però també el fitxer SQL. ModuleBuilderDesc2=Camí on es generen / editen els mòduls (primer directori per als mòduls externs definits en %s): %s ModuleBuilderDesc3=S'han trobat mòduls generats/editables: %s ModuleBuilderDesc4=Es detecta un mòdul com "editable" quan el fitxer %s existeix al directori arrel del mòdul NewModule=Mòdul nou NewObjectInModulebuilder=Objecte nou NewDictionary=Nou diccionari +ModuleName=Nom del mòdul ModuleKey=Clau del mòdul ObjectKey=Clau de l'objecte DicKey=Clau del diccionari @@ -20,7 +22,7 @@ ModuleBuilderDescspecifications=Podeu introduir aquí una descripció detallada ModuleBuilderDescobjects=Definiu aquí els objectes que voleu gestionar amb el vostre mòdul. Es generarà una classe CRUD DAO, fitxers SQL, una pàgina per a llistar el registre d'objectes, per a crear/editar/visualitzar un registre i una API. ModuleBuilderDescmenus=Aquesta pestanya està dedicada a definir les entrades de menú proporcionades pel teu mòdul. ModuleBuilderDescpermissions=Aquesta pestanya està dedicada a definir els permisos nous que voleu proporcionar amb el vostre mòdul. -ModuleBuilderDesctriggers=Aquesta és la vista dels disparadors proporcionats pel teu mòdul. Per incloure el codi executat quan es posa en marxa un esdeveniment de negoci desencadenat, edita aquest fitxer. +ModuleBuilderDesctriggers=Aquesta és la vista dels disparadors proporcionats pel vostre mòdul. Per a incloure el codi executat quan s'activa un esdeveniment de negoci, només cal que editeu aquest fitxer. ModuleBuilderDeschooks=Aquesta pestanya està dedicada als ganxos (hooks) ModuleBuilderDescwidgets=Aquesta pestanya està dedicada a gestionar/crear ginys. ModuleBuilderDescbuildpackage=Aquí podeu generar un fitxer de paquet "a punt per a distribuir" (un fitxer .zip normalitzat) del vostre mòdul i un fitxer de documentació "a punt per a distribuir". Simplement feu clic al botó per a crear el paquet o el fitxer de documentació. @@ -34,7 +36,7 @@ ModuleIsNotActive=Aquest mòdul encara no està activat. Aneu a %s per a publica ModuleIsLive=Aquest mòdul ha estat activat. Qualsevol canvi pot trencar la funció actual en viu. DescriptionLong=Descripció llarga EditorName=Nom de l'editor -EditorUrl=URL d'editor +EditorUrl=URL de l'editor DescriptorFile=Fitxer descriptor del mòdul ClassFile=Fitxer per a la classe CRUD DAO PHP ApiClassFile=Fitxer per la classe PHP API @@ -48,11 +50,14 @@ PathToModulePackage=Ruta al zip del paquet del mòdul/aplicació PathToModuleDocumentation=Camí al fitxer de la documentació del mòdul / aplicació (%s) SpaceOrSpecialCharAreNotAllowed=Els espais o caràcters especials no estan permesos. FileNotYetGenerated=El fitxer encara no s'ha generat +GenerateCode=Genera codi RegenerateClassAndSql=Força l'actualització dels fitxers .class i .sql RegenerateMissingFiles=Genera els fitxers que falten SpecificationFile=Fitxer de documentació LanguageFile=Arxiu del llenguatge ObjectProperties=Propietats de l'objecte +Property=Propery +PropertyDesc=Una propietat és un atribut que caracteritza un objecte. Aquest atribut té un codi, un nom i un tipus amb diverses opcions. ConfirmDeleteProperty=Estàs segur que vols eliminar la propietat %s ? Això canviarà el codi a la classe PHP, però també eliminarà la columna de la definició de la taula de l'objecte. NotNull=No és NULL NotNullDesc=1=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) @@ -81,15 +86,16 @@ IsAMeasure=És una mesura DirScanned=Directori escanejat NoTrigger=Sense activador (trigger) NoWidget=Sense widget -GoToApiExplorer=Explorador d'API +ApiExplorer=Explorador d'API ListOfMenusEntries=Llista d'entrades de menú ListOfDictionariesEntries=Llista d'entrades de diccionaris ListOfPermissionsDefined=Llista de permisos definits SeeExamples=Mira exemples aquí -EnabledDesc=Condició per a tenir aquest camp actiu (Exemples: 1 ó $conf->global->MYMODULE_MYOPTION) -VisibleDesc=És visible el camp ? (Exemples: 0=Mai visible, 1=Visible als llistats i als formularis crear/modificar/veure, 2=Visible només als llistats, 3=Visible només als formularis crear/modificar/veure (no als llistats), 4=Visible als llistats i només als formularis modificar/veure (no al de crear), 5=Visible als llistats i només al formulari de veure (però no als formularis de crear i modificar).

Utilitzant un valor negatiu implicarà que el camp no es mostrarà per defecte als llistats però podrà ser escollit per 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 +EnabledDesc=Condició per tenir aquest camp actiu.

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

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

For document lines :
0 = not displayed
1 = displayed in a column
3 = display in line description column after the description
4 = display in description column after the description only if not empty +DisplayOnPdf=En PDF IsAMeasureDesc=Es pot acumular el valor del camp per a obtenir un total a la llista? (Exemples: 1 o 0) SearchAllDesc=El camp utilitzat per realitzar una cerca des de l'eina de cerca ràpida? (Exemples: 1 o 0) SpecDefDesc=Introduïu aquí tota la documentació que voleu proporcionar amb el vostre mòdul que encara no està definit per altres pestanyes. Podeu utilitzar .md o millor, la sintaxi enriquida .asciidoc. @@ -130,27 +136,32 @@ UseSpecificEditorURL = Utilitzeu editor específic URL UseSpecificFamily = Utilitzeu una família específica UseSpecificAuthor = Utilitzeu un autor específic UseSpecificVersion = Utilitzeu una versió inicial específica -IncludeRefGeneration=La referència de l'objecte s'ha de generar automàticament mitjançant regles de numeració personalitzades +IncludeRefGeneration=The reference of this object must be generated automatically by custom numbering rules IncludeRefGenerationHelp=Marqueu-ho si voleu incloure codi per gestionar automàticament la generació de la referència mitjançant regles de numeració personalitzades -IncludeDocGeneration=Vull generar alguns documents a partir de plantilles per a l'objecte +IncludeDocGeneration=I want the feature to generate some documents (PDF, ODT) from templates for this object IncludeDocGenerationHelp=Si ho marques, es generarà el codi per a afegir una casella "Generar document" al registre. -ShowOnCombobox=Mostra el valor a la llista desplegable +ShowOnCombobox=Show value into combo boxes KeyForTooltip=Clau per donar més informació CSSClass=CSS per a editar/crear un formulari CSSViewClass=CSS per al formulari de lectura CSSListClass=CSS per a llistats NotEditable=No editable ForeignKey=Clau forana -TypeOfFieldsHelp=Tipus de camps:
varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
'1' vol dir que afegim un botó + després de la combinació per crear el registre
'filtre' és una condició sql, exemple: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +ForeignKeyDesc=If the value of this field must be guaranted to exists into another table. Enter here a value matching syntax: tablename.parentfieldtocheck +TypeOfFieldsHelp=Example:
varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
'1' means we add a + button after the combo to create the record
'filter' is a sql condition, example: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' +TypeOfFieldsHelpIntro=This is the type of the field/attribute. AsciiToHtmlConverter=Convertidor Ascii a HTML AsciiToPdfConverter=Convertidor Ascii a PDF TableNotEmptyDropCanceled=La taula no està buida. S'ha cancel·lat l'eliminació. ModuleBuilderNotAllowed=El creador de mòduls està disponible però no permès al vostre usuari. ImportExportProfiles=Importar i exportar perfils -ValidateModBuilderDesc=Establiu-ho a 1 si voleu que el mètode $this->validateField() de l'objecte es cridi per validar el contingut del camp durant la inserció o l'actualització. Establiu 0 si no es requereix validació. +ValidateModBuilderDesc=Set this to 1 if you want to have the method $this->validateField() of object being called to validate the content of the field during insert or update. Set 0 if there is no validation required. WarningDatabaseIsNotUpdated=Avís: la base de dades no s'actualitza automàticament, heu de destruir les taules i desactivar-habilitar el mòdul perquè es tornin a crear taules. LinkToParentMenu=Menú principal (fk_xxxxmenu) ListOfTabsEntries=Llista d'entrades de pestanyes TabsDefDesc=Definiu aquí les pestanyes proporcionades pel vostre mòdul TabsDefDescTooltip=Les pestanyes proporcionades pel vostre mòdul/aplicació es defineixen a la matriu $this->tabs al fitxer descriptor del mòdul. Podeu editar manualment aquest fitxer o utilitzar l'editor incrustat. BadValueForType=Valor incorrecte per al tipus %s +DefinePropertiesFromExistingTable=Define properties from an existing table +DefinePropertiesFromExistingTableDesc=If a table in the database (for the object to create) already exists, you can use it to define the properties of the object. +DefinePropertiesFromExistingTableDesc2=Keep empty if the table does not exist yet. The code generator will use different kinds of fields to build an example of table that you can edit later. diff --git a/htdocs/langs/ca_ES/mrp.lang b/htdocs/langs/ca_ES/mrp.lang index ac57dc2e1cd..f00b539c73c 100644 --- a/htdocs/langs/ca_ES/mrp.lang +++ b/htdocs/langs/ca_ES/mrp.lang @@ -11,10 +11,10 @@ Bom=Llista de materials BillOfMaterials=Llista de materials BillOfMaterialsLines=Línies de llista de materials BOMsSetup=Configuració del mòdul BOM -ListOfBOMs=Llista de factures de material - BOM -ListOfManufacturingOrders=Llista d'ordres de fabricació +ListOfBOMs=Bills of material - BOM +ListOfManufacturingOrders=Ordres de fabricació NewBOM=Llista nova de materials -ProductBOMHelp=Producte per crear (o desmuntar) amb aquesta llista de material.
Nota: Els productes amb la propietat 'Nature of product' = 'Matèria primera' no són visibles en aquesta llista. +ProductBOMHelp=Producte per a crear (o desmuntar) amb aquesta llista de material.
Nota: Els productes amb la propietat 'Natura del producte' = 'Matèria primera' no són visibles en aquesta llista. BOMsNumberingModules=Plantilles de numeració BOM BOMsModelModule=Plantilles de document BOM MOsNumberingModules=Models de numeració OF @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Esteu segur que voleu clonar la llista de materials ConfirmCloneMo=Esteu segur que voleu clonar la Ordre de Fabricació %s? ManufacturingEfficiency=Eficiència en la fabricació ConsumptionEfficiency=Eficiència del consum +Consumption=Consumption ValueOfMeansLoss=El valor de 0,95 significa una mitjana de 5%% de pèrdua durant la fabricació o el desmuntatge ValueOfMeansLossForProductProduced=Un valor de 0,95 significa una mitjana de 5%% de pèrdues de producte produït DeleteBillOfMaterials=Suprimeix la llista de materials @@ -82,7 +83,8 @@ ProductsToProduce=Productes a produir UnitCost=Cost unitari TotalCost=Cost total BOMTotalCost=El cost de produir aquesta Llista de materials en funció del cost de cada quantitat i producte a consumir (utilitza el preu de cost si està definit, altrament el preu mitjà ponderat si està definit, altrament el millor preu de compra) -GoOnTabProductionToProduceFirst=Per tancar una Ordre de fabricació primer heu d'iniciar la producció (vegeu la pestanya '%s'). Però sí podeu cancel·lar-la. +BOMTotalCostService=If the "Workstation" module is activated and a workstation is defined by default on the line, then the calculation is "quantity (converted into hours) x workstation ahr", otherwise "quantity (converted into hours) x cost price of the service" +GoOnTabProductionToProduceFirst=Per a tancar una Ordre de fabricació primer heu d'iniciar la producció (vegeu la pestanya «%s»). Però podeu cancel·lar-la. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit no es pot utilitzar en una llista de material o en una OF Workstation=Estació de treball Workstations=Estacions de treball @@ -109,6 +111,10 @@ THMEstimatedHelp=Aquesta taxa permet definir un cost previst de l'article BOM=Factura de materials CollapseBOMHelp=Podeu definir la visualització per defecte dels detalls de la nomenclatura a la configuració del mòdul BOM MOAndLines=Comandes i línies de fabricació -MoChildGenerate=Generate Child Mo -ParentMo=MO Parent -MOChild=MO Child +MoChildGenerate=Genera Child Mo +ParentMo=MO Pare +MOChild=MO Nen +BomCantAddChildBom=La nomenclatura %s ja està present a l'arbre que porta a la nomenclatura %s +BOMNetNeeds = BOM Net Needs +BOMProductsList=Productes de BOM +BOMServicesList=Serveis de BOM diff --git a/htdocs/langs/ca_ES/oauth.lang b/htdocs/langs/ca_ES/oauth.lang index 8c0cc35de63..ec96630cfcb 100644 --- a/htdocs/langs/ca_ES/oauth.lang +++ b/htdocs/langs/ca_ES/oauth.lang @@ -9,10 +9,11 @@ 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 +GetAccess=Feu clic aquí per a obtenir un testimoni RequestAccess=Feu clic aquí per sol·licitar/renovar l'accés i rebre un nou testimoni -DeleteAccess=Feu clic aquí per a suprimir el testimoni +DeleteAccess=Feu clic aquí per a eliminar el testimoni UseTheFollowingUrlAsRedirectURI=Utilitzeu l'URL següent com a URI de redirecció quan creeu les vostres credencials amb el vostre proveïdor de OAuth: -ListOfSupportedOauthProviders=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. +ListOfSupportedOauthProviders=Afegiu els vostres proveïdors de testimoni OAuth2. A continuació, aneu a la pàgina d'administració del vostre proveïdor d'OAuth per a crear/obtenir un ID i un secret OAuth i deseu-los aquí. Un cop fet, activeu l'altra pestanya per a generar el vostre testimoni. OAuthSetupForLogin=Pàgina per gestionar (generar/suprimir) fitxes OAuth SeePreviousTab=Veure la pestanya anterior OAuthProvider=Proveïdor d'OAuth @@ -27,10 +28,13 @@ OAUTH_GOOGLE_SECRET=OAuth Google Secret OAUTH_GITHUB_NAME=Servei OAuth GitHub OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_URL_FOR_CREDENTIAL=Aneu a aquesta pàgina per crear o obtenir el vostre identificador i secret d'OAuth +OAUTH_URL_FOR_CREDENTIAL=Aneu a aquesta pàgina per a crear o obtenir el vostre identificador i secret d'OAuth OAUTH_STRIPE_TEST_NAME=OAuth Stripe Test OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live OAUTH_ID=ID OAuth OAUTH_SECRET=Secret d'OAuth OAuthProviderAdded=S'ha afegit el proveïdor OAuth -AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Ja existeix una entrada d'OAuth per a aquest proveïdor i l'etiqueta +AOAuthEntryForThisProviderAndLabelAlreadyHasAKey=Ja existeix una entrada d'OAuth per a aquest proveïdor i nom +URLOfServiceForAuthorization=URL proporcionat pel servei OAuth per a l'autenticació +Scopes=Permisos (àmbits) +ScopeUndefined=Permissions (Scopes) undefined (see previous tab) diff --git a/htdocs/langs/ca_ES/opensurvey.lang b/htdocs/langs/ca_ES/opensurvey.lang index a19413eadc3..f063774f1a3 100644 --- a/htdocs/langs/ca_ES/opensurvey.lang +++ b/htdocs/langs/ca_ES/opensurvey.lang @@ -23,7 +23,7 @@ OpenSurveyHowTo=Si accepteu votar en aquesta enquesta, haureu de donar el vostre CommentsOfVoters=Comentaris dels votants ConfirmRemovalOfPoll=Està segur que desitja eliminar aquesta enquesta (i tots els vots) RemovePoll=Eliminar enquesta -UrlForSurvey=URL per indicar l'accés directe a l'enquesta +UrlForSurvey=URL per a indicar un accés directe a l'enquesta PollOnChoice=Està creant una enquesta amb múltiples opcions. Primer introdueixi totes les opcions possibles per aquesta enquesta: CreateSurveyDate=Crear una enquesta de data CreateSurveyStandard=Crear una enquesta estàndard @@ -31,7 +31,7 @@ CheckBox=Casella de selecció simple YesNoList=Llista (buit/sí/no) PourContreList=Llista (buit/a favor/en contra) AddNewColumn=Afegeix una columna nova -TitleChoice=Títol de l'opció +TitleChoice=Nom d'elecció ExportSpreadsheet=Exportar resultats a un full de càlcul ExpireDate=Data límit NbOfSurveys=Nombre d'enquestes diff --git a/htdocs/langs/ca_ES/orders.lang b/htdocs/langs/ca_ES/orders.lang index 5660430496e..530bfe3f540 100644 --- a/htdocs/langs/ca_ES/orders.lang +++ b/htdocs/langs/ca_ES/orders.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=Ja hi havia una comanda oberta vinculada a aquesta proposta, de manera que no es va crear cap altra comanda automàticament OrdersArea=Àrea comandes de clients SuppliersOrdersArea=Àrea de comandes de compra OrderCard=Fitxa comanda @@ -95,6 +96,10 @@ OrdersStatisticsSuppliers=Estadístiques de comandes de compra NumberOfOrdersByMonth=Nombre de comandes per mes AmountOfOrdersByMonthHT=Quantitat de comandes per mes (sense IVA) ListOfOrders=Llistat de comandes +ListOrderLigne=Lines of orders +productobuy=Products to buy only +productonly=Només productes +disablelinefree=No lines free CloseOrder=Tancar comanda ConfirmCloseOrder=Vols classificar aquesta comanda com entregada? Un cop s'entrega la comanda, es podrà classificar com a facturada. ConfirmDeleteOrder=Vols eliminar aquesta comanda? @@ -130,6 +135,7 @@ SupplierOrderClassifiedBilled=Comanda de compra %s com a facturada OtherOrders=Altres comandes SupplierOrderValidatedAndApproved=La comanda del proveïdor està validada i aprovada: %s SupplierOrderValidated=La comanda del proveïdor està validada: %s +OrderShowDetail=Show order detail ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Ordre de venda de seguiment representatiu TypeContact_commande_internal_SHIPPING=Responsable del seguiment de l'enviament @@ -198,3 +204,5 @@ StatusSupplierOrderApproved=Aprovat StatusSupplierOrderRefused=Rebutjat StatusSupplierOrderReceivedPartially=Rebuda parcialment StatusSupplierOrderReceivedAll=Tots els productes rebuts +NeedAtLeastOneInvoice = Hi ha d'haver almenys una factura +LineAlreadyDispatched = La línia de comanda ja s'ha rebut. diff --git a/htdocs/langs/ca_ES/paybox.lang b/htdocs/langs/ca_ES/paybox.lang index 2dd9b7e3f54..876772c26b0 100644 --- a/htdocs/langs/ca_ES/paybox.lang +++ b/htdocs/langs/ca_ES/paybox.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=Configuració mòdul PayBox -PayBoxDesc=Aquest mòdul ofereix pàgines per permetre el pagament a Paybox per part dels clients. Això es pot utilitzar per a un pagament gratuït o per a un pagament d'un objecte Dolibarr concret (factura, comanda, ...) +PayBoxDesc=Aquest mòdul ofereix pàgines per a permetre el pagament a Paybox per part dels clients. Això es pot utilitzar per a un pagament gratuït o per a un pagament d'un objecte Dolibarr concret (factura, comanda, ...) FollowingUrlAreAvailableToMakePayments=Les següents URL estan disponibles per a permetre a un client fer un cobrament en objectes de Dolibarr PaymentForm=Formulari de pagament WelcomeOnPaymentPage=Benvingut als nostres serveis de pagament en línia @@ -19,8 +19,8 @@ YourPaymentHasNotBeenRecorded=El vostre pagament no s'ha registrat i la transacc AccountParameter=Paràmetres del compte UsageParameter=Paràmetres d'ús InformationToFindParameters=Ajuda per a trobar la vostra informació del compte %s -PAYBOX_CGI_URL_V2=Url del mòdul CGI Paybox de pagament -CSSUrlForPaymentForm=Url del full d'estil CSS per al formulari de pagament +PAYBOX_CGI_URL_V2=URL del mòdul CGI de Paybox per al pagament +CSSUrlForPaymentForm=URL del full d'estil CSS per al formulari de pagament NewPayboxPaymentReceived=S'ha rebut el nou pagament de Paybox NewPayboxPaymentFailed=S'ha provat el nou pagament de Paybox, però ha fallat PAYBOX_PAYONLINE_SENDEMAIL=Notificació per correu electrònic després de l'intent de pagament (èxit o fracàs) diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang index 0db9bb1aec9..f599efead62 100644 --- a/htdocs/langs/ca_ES/products.lang +++ b/htdocs/langs/ca_ES/products.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - products ProductRef=Ref. producte -ProductLabel=Etiqueta producte -ProductLabelTranslated=Etiqueta de producte traduïda +ProductLabel=Nom del producte +ProductLabelTranslated=Nom de producte traduïda ProductDescription=Descripció del producte ProductDescriptionTranslated=Descripció de producte traduïda ProductNoteTranslated=Nota de producte traduïda @@ -80,11 +80,11 @@ SoldAmount=Import venut PurchasedAmount=Import comprat NewPrice=Preu nou MinPrice=Mín. preu de venda -EditSellingPriceLabel=Edita l'etiqueta de preu de venda +EditSellingPriceLabel=Edita el nom del preu de venda CantBeLessThanMinPrice=El preu de venda no pot ser inferior al mínim permès per a aquest producte (%s sense IVA). Aquest missatge també pot aparèixer si escriviu un descompte massa gran. ContractStatusClosed=Tancat ErrorProductAlreadyExists=Un producte amb la referència %s ja existeix. -ErrorProductBadRefOrLabel=El valor de la referència o etiqueta és incorrecte +ErrorProductBadRefOrLabel=Valor incorrecte de referència o nom. ErrorProductClone=S'ha produït un error en intentar clonar el producte o servei. ErrorPriceCantBeLowerThanMinPrice=Error, el preu no pot ser inferior al preu mínim Suppliers=Proveïdors @@ -178,7 +178,7 @@ StateOrigin=Estat | Província d'origen Nature=Naturalesa del producte (en brut / fabricat) NatureOfProductShort=Naturalesa del producte NatureOfProductDesc=Matèria primera o producte fabricat -ShortLabel=Etiqueta curta +ShortLabel=Nom curt Unit=Unitat p=u. set=conjunt @@ -324,7 +324,7 @@ DefaultUnitToShow=Unitat NbOfQtyInProposals=Qtat. en pressupostos ClinkOnALinkOfColumn=Fes clic en l'enllaç de columna %s per aconseguir una vista detallada... ProductsOrServicesTranslations=Traduccions de productes / serveis -TranslatedLabel=Etiqueta traduïda +TranslatedLabel=Nom traduït TranslatedDescription=Descripció traduïda TranslatedNote=Notes traduïdes ProductWeight=Pes per 1 producte @@ -345,7 +345,7 @@ PossibleValues=Valors possibles GoOnMenuToCreateVairants=Aneu al menú %s - %s per a preparar variants d’atributs (com ara colors, mida...) UseProductFournDesc=Afegiu una característica per definir la descripció del producte definida pels proveïdors (per a cada referència del proveïdor), a més de la descripció per als clients ProductSupplierDescription=Descripció del venedor del producte -UseProductSupplierPackaging=Utilitzeu els envasos als preus del proveïdor (calcular les quantitats segons els envasos fixats al preu del proveïdor quan afegiu / actualitzeu la línia dels documents del proveïdor) +UseProductSupplierPackaging=Utilitzeu l'embalatge per als preus arrodonits a múltiples per als preus de compra (torneu a calcular les quantitats segons els múltiples establerts als preus de compra quan afegiu/actualitzeu la línia en els documents d'un proveïdor) PackagingForThisProduct=Embalatge PackagingForThisProductDesc=Comprareu automàticament un múltiple d'aquesta quantitat. QtyRecalculatedWithPackaging=La quantitat de la línia es recalcula segons els envasos del proveïdor @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Acció només disponible sobre la variant de ProductsPricePerCustomer=Preus dels productes per clients ProductSupplierExtraFields=Atributs addicionals (preus de proveïdors) DeleteLinkedProduct=Suprimeix el producte fill enllaçat a la combinació -AmountUsedToUpdateWAP=Import a utilitzar per actualitzar el preu mitjà ponderat +AmountUsedToUpdateWAP=Unit amount to use to update the Weighted Average Price PMPValue=Preu mitjà ponderat PMPValueShort=PMP mandatoryperiod=Períodes obligatoris @@ -416,6 +416,7 @@ ProductsMergeSuccess=Els productes s'han fusionat ErrorsProductsMerge=Errors en la combinació de productes SwitchOnSaleStatus=Canvia l'estat de venda SwitchOnPurchaseStatus=Activa l'estat de compra +UpdatePrice=Increase/decrease customer price StockMouvementExtraFields= Camps addicionals (moviment d'existències) InventoryExtraFields= Camps addicionals (inventari) ScanOrTypeOrCopyPasteYourBarCodes=Escaneja o escriviu o copieu/enganxeu els vostres codis de barres @@ -427,3 +428,4 @@ RealValuation=Valoració real ConfirmEditExtrafield = Seleccioneu l'extracamp que voleu modificar ConfirmEditExtrafieldQuestion = Esteu segur que voleu modificar aquest camp extra? ModifyValueExtrafields = Modificar el valor d'un camp extra +OrProductsWithCategories=O productes amb etiquetes diff --git a/htdocs/langs/ca_ES/projects.lang b/htdocs/langs/ca_ES/projects.lang index cacab31b903..7e49d3d4d4e 100644 --- a/htdocs/langs/ca_ES/projects.lang +++ b/htdocs/langs/ca_ES/projects.lang @@ -2,7 +2,7 @@ RefProject=Ref. projecte ProjectRef=Ref. projecte ProjectId=ID projecte -ProjectLabel=Etiqueta de projecte +ProjectLabel=Nom del projecte ProjectsArea=Àrea de projectes ProjectStatus=Estat el projecte SharedProject=Projecte compartit @@ -23,6 +23,7 @@ TasksPublicDesc=Aquesta vista mostra tots els projectes i tasques en els que vos TasksDesc=Aquesta vista presenta tots els projectes i tasques (els permisos d'usuari us concedeixen permís per a veure-ho tot). AllTaskVisibleButEditIfYouAreAssigned=Totes les tasques per a projectes qualificats són visibles, però podeu ingressar només el temps per a la tasca assignada a l'usuari seleccionat. Assigneu la tasca si necessiteu introduir-hi el temps. OnlyYourTaskAreVisible=Només són visibles les tasques assignades. Si heu d'introduir el temps en una tasca i si la tasca no és visible aquí, heu d'assignar-la a vosaltres mateixos. +ImportDatasetProjects=Projects or opportunities ImportDatasetTasks=Tasques de projectes ProjectCategories=Etiquetes de projecte NewProject=Projecte nou @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Import d'oportunitats de projectes oberts p OpportunitiesStatusForProjects=Import d'oportunitats de projectes oberts per estat ShowProject=Veure projecte ShowTask=Veure tasca +SetThirdParty=Set third party SetProject=Indica el projecte +OutOfProject=Out of project NoProject=Cap projecte definit NbOfProjects=Nombre de projectes NbOfTasks=Nombre de tasques @@ -47,7 +50,7 @@ TimeSpentByUser=Temps dedicat per usuari TimesSpent=Temps dedicat TaskId=ID de tasca RefTask=Ref. Tasca -LabelTask=Etiqueta de tasques +LabelTask=Nom de la tasca TaskTimeSpent=Temps dedicat a les tasques TaskTimeUser=Usuari TaskTimeNote=Nota @@ -122,7 +125,8 @@ ValidateProject=Validar projecte ConfirmValidateProject=Vols validar aquest projecte? CloseAProject=Tancar projecte ConfirmCloseAProject=Vols tancar aquest projecte? -AlsoCloseAProject=Tanqueu el projecte també (manteniu-lo obert si encara heu de seguir les tasques de producció) +AlsoCloseAProject=Tanca el projecte també +AlsoCloseAProjectTooltip=Manteniu-lo obert si encara heu de seguir les tasques de producció ReOpenAProject=Reobrir projecte ConfirmReOpenAProject=Vols reobrir aquest projecte? ProjectContact=Contactes del projecte @@ -165,7 +169,7 @@ OpportunityProbability=Probabilitat d'oportunitat OpportunityProbabilityShort=Probab. d'op. OpportunityAmount=Import de la oportunitat OpportunityAmountShort=Import de la oportunitat -OpportunityWeightedAmount=Import ponderat per l'oportunitat +OpportunityWeightedAmount=Amount of opportunity, weighted by probability OpportunityWeightedAmountShort=Op. quantitat ponderada OpportunityAmountAverageShort=Import mitjà de la oportunitat OpportunityAmountWeigthedShort=Import d'oportunitat ponderada @@ -221,7 +225,7 @@ ProjectsStatistics=Estadístiques de projectes o leads TasksStatistics=Estadístiques de tasques de projectes o leads TaskAssignedToEnterTime=Tasca assignada. És possible entrar els temps en aquesta tasca. IdTaskTime=Id de temps de tasca -YouCanCompleteRef=Si voleu completar la referència amb algun sufix, es recomana afegir un caràcter per separar-lo, de manera que la numeració automàtica encara funcionarà correctament per als propers projectes. Per exemple %s-MYSUFFIX +YouCanCompleteRef=Si voleu completar la referència amb algun sufix, es recomana afegir un caràcter - per a separar-lo, de manera que la numeració automàtica encara funcionarà correctament per als propers projectes. Per exemple, %s-MYSUFFIX OpenedProjectsByThirdparties=Projectes oberts per tercers OnlyOpportunitiesShort=Només oportunitats OpenedOpportunitiesShort=Oportunitats obertes @@ -238,7 +242,7 @@ OppStatusPENDING=Pendent OppStatusWON=Guanyat OppStatusLOST=Perdut Budget=Pressupost -AllowToLinkFromOtherCompany=Permet enllaçar projectes procedents d'altres companyies

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

Supported values:
- Keep empty: Can link elements with any projects in the same company (default)
- "all": Can link elements with any projects, even projects of other companies
- A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
LatestProjects=Darrers %s projectes LatestModifiedProjects=Darrers %s projectes modificats OtherFilteredTasks=Altres tasques filtrades @@ -249,17 +253,18 @@ ChooseANotYetAssignedTask=Trieu una tasca que encara no us ha estat assignada # Comments trans AllowCommentOnTask=Permet comentaris dels usuaris a les tasques AllowCommentOnProject=Permetre comentaris dels usuaris als projectes -DontHavePermissionForCloseProject=No teniu permisos per tancar el projecte %s -DontHaveTheValidateStatus=El projecte %s ha de ser obert per tancar +DontHavePermissionForCloseProject=No teniu permisos per a tancar el projecte %s +DontHaveTheValidateStatus=El projecte %s ha d'estar obert per a tancar-se RecordsClosed=%s projecte(s) tancat(s) SendProjectRef=Informació del projecte %s ModuleSalaryToDefineHourlyRateMustBeEnabled=El mòdul "Salaris" ha d'estar habilitat per a definir la tarifa horària dels empleats per tal de valorar el temps dedicat NewTaskRefSuggested=Tasca ref en ús, es requereix una nova tasca ref +NumberOfTasksCloned=%s task(s) cloned TimeSpentInvoiced=Temps de facturació facturat TimeSpentForIntervention=Temps dedicat TimeSpentForInvoice=Temps dedicat OneLinePerUser=Una línia per usuari -ServiceToUseOnLines=Servei d'ús a les línies +ServiceToUseOnLines=Servei per defecte per a utilitzar a les línies InvoiceGeneratedFromTimeSpent=La factura %s s'ha generat a partir del temps dedicat al projecte InterventionGeneratedFromTimeSpent=La intervenció %s s'ha generat a partir del temps dedicat al projecte ProjectBillTimeDescription=Comproveu si heu introduït el full de temps en les tasques del projecte I teniu previst generar factures des del full de temps per a facturar al client del projecte (no comproveu si voleu crear la factura que no es basa en els fulls de temps introduïts). Nota: Per a generar la factura, aneu a la pestanya "Temps introduït" del projecte i seleccioneu les línies que cal incloure. @@ -282,8 +287,8 @@ ProfitIsCalculatedWith=El benefici es calcula utilitzant AddPersonToTask=Afegeix també a les tasques UsageOrganizeEvent=Ús: organització d'esdeveniments PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classifica un projecte com a tancat quan s'hagin completat totes les seves tasques (progrés 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Nota: els projectes existents amb totes les tasques amb un progrés del 100%% no es veuran afectats, i els haureu de tancar manualment. Així doncs, aquesta opció només afecta els projectes oberts. -SelectLinesOfTimeSpentToInvoice=Seleccioneu les línies de temps que no es facturen i, a continuació, feu una acció massiva "Genera factura" per facturar-les +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. +SelectLinesOfTimeSpentToInvoice=Seleccioneu les línies de temps invertides que no estiguin facturades i, a continuació, feu l'acció massiva "Genera factura" per a facturar-les. ProjectTasksWithoutTimeSpent=Projecte tasques sense temps dedicat FormForNewLeadDesc=Gràcies per omplir el següent formulari per contactar amb nosaltres. També podeu enviar-nos un correu electrònic directament a %s . ProjectsHavingThisContact=Projectes amb aquest contacte @@ -294,3 +299,4 @@ EnablePublicLeadForm=Habiliteu el formulari públic de contacte NewLeadbyWeb=El teu missatge o sol·licitud s'ha enregistrat. Et respondrem o contactarem aviat. NewLeadForm=Nou formulari de contacte LeadFromPublicForm=Pista en línia des de forma pública +ExportAccountingReportButtonLabel=Obteniu informe diff --git a/htdocs/langs/ca_ES/propal.lang b/htdocs/langs/ca_ES/propal.lang index 23d054a0aa2..caca918f9a6 100644 --- a/htdocs/langs/ca_ES/propal.lang +++ b/htdocs/langs/ca_ES/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Temps de lliurament SetAvailability=Indica el temps de lliurament AfterOrder=després de la comanda OtherProposals=Altres pressupostos + ##### Availability ##### AvailabilityTypeAV_NOW=Immediata AvailabilityTypeAV_1W=1 setmana AvailabilityTypeAV_2W=2 setmanes AvailabilityTypeAV_3W=3 setmanes AvailabilityTypeAV_1M=1 mes -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Agent comercial del seguiment del pressupost TypeContact_propal_external_BILLING=Contacte client de facturació pressupost TypeContact_propal_external_CUSTOMER=Contacte client seguiment pressupost TypeContact_propal_external_SHIPPING=Contacte del client pel lliurament + # Document models -DocModelAzurDescription=Un model complet de pressupost (antiga implementació de la plantilla Cyan) -DocModelCyanDescription=Un model de pressupost complet -DefaultModelPropalCreate=Model per defecte -DefaultModelPropalToBill=Model per defecte en tancar un pressupost (a facturar) -DefaultModelPropalClosed=Model per defecte en tancar un pressupost (no facturat) -ProposalCustomerSignature=Acceptació per escrit, segell de l'empresa, data i signatura -ProposalsStatisticsSuppliers=Estadístiques de propostes de proveïdors -CaseFollowedBy=Cas seguit per -SignedOnly=Només signat -NoSign=Conjunt no signat -NoSigned=conjunt no signat CantBeNoSign=no es pot configurar sense signar +CaseFollowedBy=Cas seguit per ConfirmMassNoSignature=Confirmació massiva no signada ConfirmMassNoSignatureQuestion=Esteu segur que voleu establir els registres seleccionats no signats? -IsNotADraft=no és un esborrany -PassedInOpenStatus=ha estat validat -Sign=Signe -Signed=signat -ConfirmMassValidation=Confirmació de validació massiva ConfirmMassSignature=Confirmació de signatura massiva -ConfirmMassValidationQuestion=Esteu segur que voleu validar els registres seleccionats? ConfirmMassSignatureQuestion=Esteu segur que voleu signar els registres seleccionats? -IdProposal=ID del pressupost +ConfirmMassValidation=Confirmació de validació massiva +ConfirmMassValidationQuestion=Esteu segur que voleu validar els registres seleccionats? +ConfirmRefusePropal=Esteu segur que voleu rebutjar aquesta proposta comercial? +ContractSigned=Contracte signat +DefaultModelPropalClosed=Model per defecte en tancar un pressupost (no facturat) +DefaultModelPropalCreate=Model per defecte +DefaultModelPropalToBill=Model per defecte en tancar un pressupost (a facturar) +DocModelAzurDescription=Un model complet de pressupost (antiga implementació de la plantilla Cyan) +DocModelCyanDescription=Un model de pressupost complet +FichinterSigned=Intervention signed IdProduct=ID de producte +IdProposal=ID del pressupost +IsNotADraft=no és un esborrany LineBuyPriceHT=Preu de compra sense impostos per línia -SignPropal=Acceptar la proposta +NoSign=Rebutja +NoSigned=conjunt no signat +PassedInOpenStatus=ha estat validat +PropalAlreadyRefused=Proposta ja rebutjada +PropalAlreadySigned=Proposta ja acceptada +PropalRefused=Proposta rebutjada +PropalSigned=S'accepta la proposta +ProposalCustomerSignature=Acceptació per escrit, segell de l'empresa, data i signatura +ProposalsStatisticsSuppliers=Estadístiques de propostes de proveïdors RefusePropal=Rebutja la proposta Sign=Signe -NoSign=Conjunt no signat -PropalAlreadySigned=Proposta ja acceptada -PropalAlreadyRefused=Proposta ja rebutjada -PropalSigned=S'accepta la proposta -PropalRefused=Proposta rebutjada -ConfirmRefusePropal=Esteu segur que voleu rebutjar aquesta proposta comercial? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Acceptar la proposta +Signed=signat +SignedOnly=Només signat diff --git a/htdocs/langs/ca_ES/receiptprinter.lang b/htdocs/langs/ca_ES/receiptprinter.lang index cee89d1b087..246b2285992 100644 --- a/htdocs/langs/ca_ES/receiptprinter.lang +++ b/htdocs/langs/ca_ES/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Prova enviada a la impressora %s ReceiptPrinter=Impressores de tiquets ReceiptPrinterDesc=Configuració d'impressores de tiquets ReceiptPrinterTemplateDesc=Configuració de plantilles -ReceiptPrinterTypeDesc=Descripció del tipus d'impressora de tiquets +ReceiptPrinterTypeDesc=Exemple de valors possibles per al camp "Paràmetres" segons el tipus de controlador ReceiptPrinterProfileDesc=Descripció del perfil de la impressora de tiquets ListPrinters=Llista d'impressores SetupReceiptTemplate=Configuració de plantilla @@ -35,9 +35,9 @@ DOL_LINE_FEED=Salta la línia DOL_ALIGN_LEFT=Alinea el text a l'esquerra DOL_ALIGN_CENTER=Centra el text DOL_ALIGN_RIGHT=Alinea el text a la dreta -DOL_USE_FONT_A=Utilitza la font A de la impressora -DOL_USE_FONT_B=Utilitza la font B de la impressora -DOL_USE_FONT_C=Utilitza la font C de la impressora +DOL_USE_FONT_A=Utilitzeu el tipus de lletra A de la impressora +DOL_USE_FONT_B=Utilitzeu el tipus de lletra B de la impressora +DOL_USE_FONT_C=Utilitzeu el tipus de lletra C de la impressora DOL_PRINT_BARCODE=Imprimeix codi de barres DOL_PRINT_BARCODE_CUSTOMER_ID=Imprimeix codi de barres del ID de client DOL_CUT_PAPER_FULL=Talla el tiquet completament @@ -55,6 +55,8 @@ DOL_DEFAULT_HEIGHT_WIDTH=Alçada i amplada per defecte DOL_UNDERLINE=Activa subratllat DOL_UNDERLINE_DISABLED=Desactiva subratllat DOL_BEEP=So beep +DOL_BEEP_ALTERNATIVE=So de bip (mode alternatiu) +DOL_PRINT_CURR_DATE=Imprimeix la data/hora actuals DOL_PRINT_TEXT=Imprimeix text DateInvoiceWithTime=Data i hora de la factura YearInvoice=Any de factura @@ -72,7 +74,7 @@ DOL_VALUE_CUSTOMER_MAIL=Correu del client DOL_VALUE_CUSTOMER_PHONE=Telèfon del client DOL_VALUE_CUSTOMER_MOBILE=Mòbil del client DOL_VALUE_CUSTOMER_SKYPE=Skype del client -DOL_VALUE_CUSTOMER_TAX_NUMBER=CIF/NIF del client +DOL_VALUE_CUSTOMER_TAX_NUMBER=Número fiscal del client DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Saldo del compte del client DOL_VALUE_MYSOC_NAME=El nom de l'empresa VendorLastname=Cognom del venedor diff --git a/htdocs/langs/ca_ES/recruitment.lang b/htdocs/langs/ca_ES/recruitment.lang index 6482ee9a72d..b9a7d395496 100644 --- a/htdocs/langs/ca_ES/recruitment.lang +++ b/htdocs/langs/ca_ES/recruitment.lang @@ -39,7 +39,7 @@ About = Quant a RecruitmentAbout = Quant a la contractació RecruitmentAboutPage = Pàgina quant a la contractació NbOfEmployeesExpected=Nombre previst d'empleats -JobLabel=Descripció del lloc de treball +JobLabel=Nom del lloc de treball WorkPlace=Lloc de treball DateExpected=Data prevista FutureManager=Futur gerent @@ -57,15 +57,16 @@ EmailRecruiter=Correu electrònic del reclutador ToUseAGenericEmail=Per a utilitzar un correu electrònic genèric. Si no està definit, s’utilitzarà el correu electrònic del responsable de la contractació NewCandidature=Candidatura nova ListOfCandidatures=Llista de candidatures -RequestedRemuneration=Retribució sol·licitada -ProposedRemuneration=Retribució proposada +Remuneration=Sou +RequestedRemuneration=Salari sol·licitat +ProposedRemuneration=Salari proposat ContractProposed=Contracte proposat ContractSigned=Contracte signat ContractRefused=Contracte denegat RecruitmentCandidature=Candidatura JobPositions=Llocs de treball RecruitmentCandidatures=Candidatures -InterviewToDo=Entrevista per a fer +InterviewToDo=Contactes a seguir AnswerCandidature=Resposta de la candidatura YourCandidature=La teva candidatura YourCandidatureAnswerMessage=Gràcies per la teva candidatura.
... @@ -74,3 +75,5 @@ JobClosedTextCanceled=L’oferta de feina està tancada. ExtrafieldsJobPosition=Atributs complementaris (llocs de treball) ExtrafieldsApplication=Atributs complementaris (sol·licituds de feina) MakeOffer=Feu una oferta +WeAreRecruiting=Estem reclutant. Aquesta és una llista de places obertes per cobrir... +NoPositionOpen=No hi ha posicions obertes de moment diff --git a/htdocs/langs/ca_ES/salaries.lang b/htdocs/langs/ca_ES/salaries.lang index e21803b9e15..ff6d4439d9b 100644 --- a/htdocs/langs/ca_ES/salaries.lang +++ b/htdocs/langs/ca_ES/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable utilitzat per usuaris tercers -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=El compte comptable dedicat definit a la fitxa d'usuari només s’utilitzarà per a la comptabilitat auxiliar. Aquest s'utilitzarà per al llibre major i com a valor per defecte de la comptabilitat auxiliar si no es defineix un compte comptable d'usuari dedicat. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable per defecte per als pagaments salarials CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=De manera predeterminada, deixeu buida l'opció "Crear automàticament un pagament total" quan creeu un sou Salary=Sou diff --git a/htdocs/langs/ca_ES/stocks.lang b/htdocs/langs/ca_ES/stocks.lang index cef3f462b29..0db83a567c2 100644 --- a/htdocs/langs/ca_ES/stocks.lang +++ b/htdocs/langs/ca_ES/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Data en el futur StocksByLotSerial=Estocs per lot/sèrie LotSerial=Lots/Sèries LotSerialList=Llista de lots/sèries +SubjectToLotSerialOnly=Productes subjectes només a lot/sèrie Movements=Moviments ErrorWarehouseRefRequired=El nom de referència del magatzem és obligatori ListOfWarehouses=Llistat de magatzems @@ -34,7 +35,7 @@ StockMovementForId=ID de moviment %d ListMouvementStockProject=Llista de moviments d'estoc associats al projecte StocksArea=Àrea de magatzems AllWarehouses=Tots els magatzems -IncludeEmptyDesiredStock=Inclou també estoc negatives amb estoc desitjat no definit +IncludeEmptyDesiredStock=Inclou també estoc negatiu amb estoc desitjat sense definir IncludeAlsoDraftOrders=Inclou també projectes d'ordre Location=Lloc LocationSummary=Nom curt de la ubicació @@ -48,7 +49,7 @@ StockCorrection=Regularització d'estoc CorrectStock=Regularització d'estoc StockTransfer=Transferència d’estoc TransferStock=Transferència d'estoc -MassStockTransferShort=Transferència d'estoc massiu +MassStockTransferShort=Canvi d'estoc massiu StockMovement=Moviment d'estoc StockMovements=Moviments d'estoc NumberOfUnit=Nombre d'unitats @@ -106,7 +107,7 @@ LieuWareHouse=Localització magatzem WarehousesAndProducts=Magatzems i productes WarehousesAndProductsBatchDetail=Magatzems i productes (amb detall per lot/sèrie) AverageUnitPricePMPShort=Preu mitjà ponderat -AverageUnitPricePMPDesc=El preu unitari mitjà d’entrada que vam haver de gastar per aconseguir una unitat de producte al nostre estoc. +AverageUnitPricePMPDesc=El preu unitari mitjà d'entrada que hem hagut de gastar per a incorporar 1 unitat de producte al nostre estoc. SellPriceMin=Preu de venda unitari EstimatedStockValueSellShort=Valor per vendre EstimatedStockValueSell=Valor per vendre @@ -146,15 +147,16 @@ Replenishments=reaprovisionament NbOfProductBeforePeriod=Quantitat del producte %s en estoc abans del període seleccionat (< %s) NbOfProductAfterPeriod=Quantitat de producte %s en estoc després del període seleccionat (> %s) MassMovement=Moviments en massa -SelectProductInAndOutWareHouse=Seleccioneu un magatzem d'origen i un magatzem de destinació, un producte i una quantitat i feu clic a "%s". Un cop fet això per a tots els moviments necessaris, feu clic a "%s". +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=Registre de transferència +RecordMovements=Record stock movements ReceivingForSameOrder=Recepcions d'aquesta comanda StockMovementRecorded=Moviments d'estoc registrat RuleForStockAvailability=Regles de requeriment d'estoc StockMustBeEnoughForInvoice=El nivell d'estoc ha de ser suficient per 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 +MovementLabel=Nom del moviment TypeMovement=Direcció de moviment DateMovement=Data de moviment InventoryCode=Moviments o codi d'inventari @@ -234,7 +236,7 @@ StockIncrease=Augment d'estoc StockDecrease=Disminució d'estoc InventoryForASpecificWarehouse=Inventari d’un magatzem específic InventoryForASpecificProduct=Inventari d’un producte específic -StockIsRequiredToChooseWhichLotToUse=Es requereix estoc per a triar quin lot utilitzar +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=Obligar a AlwaysShowFullArbo=Mostra l'arbre complet de magatzems a la finestra emergent dels enllaços de magatzem (Advertència: pot disminuir el rendiment de manera espectacular) StockAtDatePastDesc=Aquí podeu veure l'estoc (estoc real) en una data determinada del passat @@ -246,7 +248,7 @@ UpdateByScaningProductBarcode=Actualització per escaneig (codi de barres de pro UpdateByScaningLot=Actualització per escaneig (codi de barres lot|sèrie) DisableStockChangeOfSubProduct=Desactiva el canvi d'estoc de tots els subproductes d'aquest kit durant aquest moviment. ImportFromCSV=Importa la llista de moviments CSV -ChooseFileToImport=Pengeu un fitxer i feu clic a la icona %s per seleccionar el fitxer com a fitxer d'importació d'origen ... +ChooseFileToImport=Carregueu el fitxer i feu clic a la icona %s per a seleccionar el fitxer com a fitxer d'importació d'origen... SelectAStockMovementFileToImport=seleccioneu un fitxer de moviment de valors per importar InfoTemplateImport=El fitxer carregat ha de tenir aquest format (* són camps obligatoris):
Magatzem font * | Magatzem objectiu * | Producte * | Quantitat * | Número de lot / sèrie
El separador de caràcters CSV ha de ser " %s " LabelOfInventoryMovemement=Inventari %s diff --git a/htdocs/langs/ca_ES/stripe.lang b/htdocs/langs/ca_ES/stripe.lang index ff4fd2e511b..190e2d222cb 100644 --- a/htdocs/langs/ca_ES/stripe.lang +++ b/htdocs/langs/ca_ES/stripe.lang @@ -28,7 +28,7 @@ AccountParameter=Paràmetres del compte UsageParameter=Paràmetres d'ús InformationToFindParameters=Ajuda per a trobar la vostra informació del compte %s STRIPE_CGI_URL_V2=URL CGI del mòdul Stripe per al pagament -CSSUrlForPaymentForm=Url del full d'estil CSS per al formulari de pagament +CSSUrlForPaymentForm=URL del full d'estil CSS per al formulari de pagament NewStripePaymentReceived=S'ha rebut un pagament nou de Stripe NewStripePaymentFailed=S'ha intentat el pagament nou de Stripe, però ha fallat FailedToChargeCard=No s'ha pogut fer el càrrec a la targeta @@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Webhook clau en directe ONLINE_PAYMENT_WAREHOUSE=Estoc a utilitzar per a disminuir l'estoc quan es fa el pagament en línia
(Pendent de fer quan l'opció per a reduir l'estoc es fa en una acció a la factura i el pagament en línia es genera la seva factura?) StripeLiveEnabled=Stripe live activat (en cas contrari, mode de prova/sandbox) StripeImportPayment=Importar pagaments per Stripe -ExampleOfTestCreditCard=Exemple de targeta de crèdit per a la prova: %s => vàlid, %s => error CVC, %s => caducat, %s => falla la càrrega +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +ExampleOfTestBankAcountForSEPA=Exemple de compte bancari BAN per a la prova de domiciliació bancària: %s StripeGateways=Passarel·les Stripe OAUTH_STRIPE_TEST_ID=Identificador de client de Stripe Connect (ca _...) OAUTH_STRIPE_LIVE_ID=Identificador de client de Stripe Connect (ca _...) @@ -61,6 +62,7 @@ DeleteACard=Suprimeix la targeta ConfirmDeleteCard=Estàs segur que vols eliminar aquesta targeta de crèdit o de dèbit? CreateCustomerOnStripe=Crea un client a Stripe CreateCardOnStripe=Crea una targeta a Stripe +CreateBANOnStripe=Create bank on Stripe ShowInStripe=Mostra a Stripe StripeUserAccountForActions=Compte d'usuari que s'utilitzarà per a la notificació per correu electrònic d'alguns esdeveniments de Stripe (pagaments de Stripe) StripePayoutList=Llista de pagaments de Stripe @@ -69,4 +71,8 @@ ToOfferALinkForLiveWebhook=Enllaç a la configuració de Stripe WebHook per truc PaymentWillBeRecordedForNextPeriod=El pagament es registrarà per al període següent. 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 +STRIPE_CARD_PRESENT=Card Present for Stripe Terminals +TERMINAL_LOCATION=Location (address) for Stripe Terminals +RequestDirectDebitWithStripe=Request Direct Debit with Stripe +STRIPE_SEPA_DIRECT_DEBIT=Activeu els pagaments per domiciliació bancària mitjançant Stripe + diff --git a/htdocs/langs/ca_ES/ticket.lang b/htdocs/langs/ca_ES/ticket.lang index 7aa1e274dca..849bef2cda1 100644 --- a/htdocs/langs/ca_ES/ticket.lang +++ b/htdocs/langs/ca_ES/ticket.lang @@ -26,7 +26,9 @@ Permission56002=Modifica tiquets Permission56003=Esborrar tiquets Permission56004=Gestiona els tiquets Permission56005=Veure els tiquets de tots els tercers (no efectiu per als usuaris externs, sempre estarà limitat al tercer del qual depenen) +Permission56006=Export tickets +Tickets=Tiquets TicketDictType=Tiquet - Tipus TicketDictCategory=Tiquet - Grups TicketDictSeverity=Tiquet - Severitats @@ -60,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Col·laborador extern OriginEmail=Correu electrònic del reporter Notify_TICKET_SENTBYMAIL=Envia el missatge del tiquet per correu electrònic +ExportDataset_ticket_1=Tiquets + # Status Read=Llegit Assigned=Assignat @@ -100,9 +104,9 @@ 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. +TicketCreateThirdPartyWithContactIfNotExistHelp=Comproveu si existeix un tercer o un contacte per al correu electrònic introduït. Si no, demaneu un nom i un nom d'empresa per a crear un tercer amb contacte. PublicInterface=Interfície pública -TicketUrlPublicInterfaceLabelAdmin=URL alternativa per a la interfície pública +TicketUrlPublicInterfaceLabelAdmin=URL alternatiu per a la interfície pública TicketUrlPublicInterfaceHelpAdmin=És possible definir un àlies al servidor web i, per tant, posar a disposició la interfície pública amb una altra URL (el servidor ha d'actuar com a proxy en aquest nou URL) TicketPublicInterfaceTextHomeLabelAdmin=Text de benvinguda de la interfície pública TicketPublicInterfaceTextHome=Podeu crear un tiquet d'assistència o visualitzar existents a partir del seu identificador de traça del tiquet. @@ -149,6 +153,8 @@ TicketsAutoNotifyCloseHelp=Quan tanqueu un bitllet, se us proposarà enviar un m TicketWrongContact=El contacte sempre que no formi part dels contactes actuals de les entrades. Correu electrònic no enviat. TicketChooseProductCategory=Categoria de producte per al suport de bitllets TicketChooseProductCategoryHelp=Seleccioneu la categoria de producte de suport de bitllets. S'utilitzarà per enllaçar automàticament un contracte amb un bitllet. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -192,8 +198,7 @@ TicketAssigned=El tiquet s'ha assignat ara TicketChangeType=Tipus de canvi TicketChangeCategory=Canvia el codi analític TicketChangeSeverity=Canviar el nivell de gravetat -TicketAddMessage=Afegiu un missatge -AddMessage=Afegiu un missatge +TicketAddMessage=Afegeix un missatge privat MessageSuccessfullyAdded=Tiquet afegit TicketMessageSuccessfullyAdded=El missatge s'ha afegit correctament TicketMessagesList=Llista de missatges @@ -204,8 +209,8 @@ TicketSeverity=Gravetat ShowTicket=Consultar tiquet RelatedTickets=Tiquets relacionats TicketAddIntervention=Crea intervenció -CloseTicket=Tancar | Resoldre el bitllet -AbandonTicket=Abandonar el bitllet +CloseTicket=Tanca|Resol +AbandonTicket=Abandonar CloseATicket=Tancar | Resoldre un bitllet ConfirmCloseAticket=Confirma el tancament del tiquet ConfirmAbandonTicket=Confirmeu el tancament del bitllet a l'estat "Abandonat" @@ -218,19 +223,18 @@ TicketUpdated=Tiquet actualitzat SendMessageByEmail=Envia un missatge per correu electrònic TicketNewMessage=Missatge nou ErrorMailRecipientIsEmptyForSendTicketMessage=El destinatari està buit. Email no enviat -TicketGoIntoContactTab=Aneu a la pestanya "Contactes" per seleccionar-los -TicketMessageMailIntro=Introducció +TicketGoIntoContactTab=Aneu a la pestanya "Contactes" per a seleccionar-los +TicketMessageMailIntro=Capçalera del missatge TicketMessageMailIntroHelp=Aquest text només s'afegeix al principi del correu electrònic i no es desarà. -TicketMessageMailIntroLabelAdmin=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=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. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Aquest text s'inserirà després del missatge de resposta. TicketMessageHelp=Només aquest text es guardarà a la llista de missatges de la targeta de tiquet. TicketMessageSubstitutionReplacedByGenericValues=Les variables de substitució es reemplacen per valors genèrics. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Temps transcorregut des de TicketTimeToRead=Temps transcorregut abans de llegir TicketTimeElapsedBeforeSince=Temps transcorregut abans / després @@ -241,6 +245,7 @@ TicketMessageMailIntroAutoNewPublicMessage=S'ha publicat un nou missatge al tiqu TicketAssignedToYou=Tiquet assignat TicketAssignedEmailBody=Se us ha assignat el tiquet # %s per %s MarkMessageAsPrivate=Marcar el missatge com privat +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Aquest missatge no es mostrarà als usuaris externs TicketEmailOriginIssuer=Emissor en l'origen dels tiquets InitialMessage=Missatge inicial @@ -296,7 +301,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Podeu veure el progrés del tiquet a la TicketCloseEmailBodyInfosTrackUrlCustomer=Podeu consultar l'historial d'aquest tiquet fent clic al següent enllaç TicketEmailPleaseDoNotReplyToThisEmail=No respongueu directament a aquest correu electrònic. Utilitzeu l'enllaç per respondre des de la mateixa interfície. TicketPublicInfoCreateTicket=Aquest formulari us permet registrar un tiquet de suport al nostre sistema de gestió. -TicketPublicPleaseBeAccuratelyDescribe=Descriviu amb precisió el problema. Proporcioneu la màxima informació possible per a permetre’ns identificar correctament la vostra sol·licitud. +TicketPublicPleaseBeAccuratelyDescribe=Descriu la teva pregunta amb precisió. Proporcioneu la màxima informació possible que ens permeti identificar correctament la vostra sol·licitud. TicketPublicMsgViewLogIn=Introduïu l'identificador de traça dels tiquets (ID) TicketTrackId=ID de seguiment públic OneOfTicketTrackId=Un dels vostres ID de seguiment diff --git a/htdocs/langs/ca_ES/users.lang b/htdocs/langs/ca_ES/users.lang index 0fbf167ffb5..ab4e884a2d7 100644 --- a/htdocs/langs/ca_ES/users.lang +++ b/htdocs/langs/ca_ES/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Eliminar del grup PasswordChangedAndSentTo=Contrasenya canviada i enviada a %s. PasswordChangeRequest=Sol·licitud de canvi de contrasenya per %s PasswordChangeRequestSent=Petició de canvi de contrasenya per a %s enviada a %s. -IfLoginExistPasswordRequestSent=Si aquest inici de sessió és un compte vàlid, s'ha enviat un correu electrònic per a restablir la contrasenya. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Si aquest correu electrònic és un compte vàlid, s'ha enviat un correu electrònic per a restablir la contrasenya. ConfirmPasswordReset=Confirma la restauració de la contrasenya MenuUsersAndGroups=Usuaris i grups @@ -66,9 +66,9 @@ LinkedToDolibarrUser=Enllaç a l'usuari LinkedToDolibarrThirdParty=Enllaç a tercers CreateDolibarrLogin=Crear un compte d'usuari CreateDolibarrThirdParty=Crea un tercer -LoginAccountDisableInDolibarr=El compte està desactivat en Dolibarr +LoginAccountDisableInDolibarr=Compte desactivat a Dolibarr +PASSWORDInDolibarr=Contrasenya modificada a Dolibarr UsePersonalValue=Utilitzar valors personalitzats -InternalUser=Usuari intern ExportDataset_user_1=Usuaris i les seves propietats DomainUser=Usuari de domini Reactivate=Reactivar @@ -128,3 +128,8 @@ DateLastLogin=Data darrera sessió DatePreviousLogin=Data d'inici de sessió anterior IPLastLogin=IP darrer inici de sessió IPPreviousLogin=IP d'inici de sessió anterior +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows +UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book. +EnablePublicVirtualCard=Enable the public virtual user card +PublicVirtualCardUrl=Public virtual user card diff --git a/htdocs/langs/ca_ES/withdrawals.lang b/htdocs/langs/ca_ES/withdrawals.lang index 9a6743cfa97..00d8bd28f98 100644 --- a/htdocs/langs/ca_ES/withdrawals.lang +++ b/htdocs/langs/ca_ES/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Factura en espera de transferència bancàri AmountToWithdraw=Import a domiciliar AmountToTransfer=Import a transferir NoInvoiceToWithdraw=No hi ha cap factura oberta per a '%s'. Aneu a la pestanya "%s" de la fitxa de factura per a fer una sol·licitud. -NoSupplierInvoiceToWithdraw=No hi ha cap factura de proveïdor pendent amb "sol·licituds de crèdit directe" obertes. Aneu a la pestanya "%s" de la fitxa de la factura per a fer una sol·licitud. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Usuari responsable WithdrawalsSetup=Configuració del pagament mitjançant domiciliació bancària CreditTransferSetup=Configuració de transferència bancària @@ -42,6 +42,7 @@ CreditTransferStatistics=Estadístiques de transferència bancària Rejects=Devolucions LastWithdrawalReceipt=Últims %s rebuts domiciliats MakeWithdrawRequest=Fes una sol·licitud de domiciliació +MakeWithdrawRequestStripe=Feu una sol·licitud de pagament per domiciliació bancària mitjançant Stripe MakeBankTransferOrder=Fes una sol·licitud de transferència WithdrawRequestsDone=%s domiciliacions registrades BankTransferRequestsDone=S'han registrat %s sol·licituds de transferència @@ -100,8 +101,11 @@ CreditDate=Abonada el WithdrawalFileNotCapable=No es pot generar el fitxer de rebut de domiciliació del vostre país %s (El vostre país no és compatible) ShowWithdraw=Mostra l'ordre de domiciliació IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Tot i això, si la factura té com a mínim una ordre de pagament per domiciliació bancària encara no processada, no s’establirà com a pagament per a permetre la gestió prèvia de la retirada. -DoStandingOrdersBeforePayments=Aquesta pestanya us permet sol·licitar una ordre de pagament per domiciliació bancària. Un cop fet això, aneu al menú Banc-> Pagament mitjançant domiciliació bancària per a generar i gestionar l’ordre de domiciliació bancària. Quan es tanca la comanda de domiciliació bancària, el pagament de les factures es registrarà automàticament i es tancaran les factures si la resta de pagament és nul·la. -DoCreditTransferBeforePayments=Aquesta pestanya us permet sol·licitar una ordre de transferència bancària. Un cop feta, aneu al menú Banc->Pagament per transferència bancària per a generar i gestionar l'ordre de transferència bancària. Quan es tanca l'ordre de transferència bancària, el pagament de les factures es registrarà automàticament i es tancaran les factures si no queda cap pagament pendent. +DoStandingOrdersBeforePayments=Aquesta pestanya permet sol·licitar una ordre de pagament per domiciliació bancària. Un cop fet, podeu entrar al menú "Banc->Pagament per domiciliació bancària" per a generar i gestionar un fitxer de domiciliació bancària. +DoStandingOrdersBeforePayments2=També podeu enviar una sol·licitud directament a un processador de pagaments SEPA com Stripe, ... +DoStandingOrdersBeforePayments3=Quan es tanqui l'ordre de domiciliació bancària, el pagament de les factures es registrarà automàticament i les factures es tanquen si la resta per a pagar és nul·la. +DoCreditTransferBeforePayments=Aquesta pestanya us permet sol·licitar una ordre de transferència de crèdit. Un cop fet, aneu al menú "Banc->Pagament per transferència de crèdit" per a generar i gestionar un fitxer d'ordre de transferència de crèdit. +DoCreditTransferBeforePayments3=Quan es tanqui l'ordre de transferència de crèdit, el pagament de les factures es registrarà automàticament i les factures es tanquen si la resta per a pagar és nul·la. WithdrawalFile=Fitxer de comanda de dèbit CreditTransferFile=Fitxer de transferència de crèdit SetToStatusSent=Estableix l'estat "Fitxer enviat" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=No és possible crear una domiciliació sense impo SepaMandate=Mandat de domiciliació bancària SEPA SepaMandateShort=Mandat SEPA 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. +SEPALegalText=En signar aquest formulari de mandat, autoritzeu (A) a %s i al seu proveïdor de serveis de pagament a enviar instruccions al vostre banc per a carregar el vostre compte i (B) al vostre banc a domiciliar el vostre compte d'acord amb les instruccions d'%s. Com a part dels vostres drets, teniu dret a un reemborsament del vostre banc segons els termes i condicions del vostre acord amb el vostre banc. Els vostres drets respecte al mandat anterior s'expliquen en un comunicat que podeu obtenir al vostre banc. CreditorIdentifier=Identificador del creditor CreditorName=Nom del creditor SEPAFillForm=(B) Si us plau completa tots els camps marcats amb * diff --git a/htdocs/langs/ca_ES/workflow.lang b/htdocs/langs/ca_ES/workflow.lang index 1b8a1353a66..fb65a49a9f3 100644 --- a/htdocs/langs/ca_ES/workflow.lang +++ b/htdocs/langs/ca_ES/workflow.lang @@ -19,10 +19,10 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classifiqueu la comanda de v descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classifica el pressupost de proveïdor vinculat com facturat quan la factura de proveïdor és validada (i si l'import de la factura és igual a l'import total del pressupost vinculat) # Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classifica la comanda de proveïdor vinculada com facturada quan la factura de proveïdor és validada (i si l'import de la factura és igual a l'import total de la comanda vinculada) -descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classifica l'ordre de compra d'origen enllaçat com a rebut quan es valida una recepció (i si la quantitat rebuda per totes les recepcions és la mateixa que a l'ordre de compra per actualitzar) -descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classifica l'ordre de compra d'origen enllaçat com a rebut quan es tanca una recepció (i si la quantitat rebuda per totes les recepcions és la mateixa que a l'ordre de compra per actualitzar) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classifica com a rebuda l'ordre de compra d'origen enllaçada quan es valida una recepció (i si la quantitat rebuda per totes les recepcions és la mateixa que a l'ordre de compra per a actualitzar) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Classifica com a rebuda l'ordre de compra d'origen enllaçada quan es tanca una recepció (i si la quantitat rebuda per totes les recepcions és la mateixa que a l'ordre de compra per a actualitzar) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Classifica les recepcions com a "facturades" quan es valida una comanda de proveïdor enllaçada +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Quan creeu un bitllet, enllaceu els contractes disponibles del tercer coincident descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=En enllaçar contractes, cerqueu entre els de les empreses matrius @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Tanca totes les intervencions vinculades AutomaticCreation=Creació automàtica AutomaticClassification=Classificació automàtica # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classifica com a tancat l'enviament d'origen enllaçat quan es validi la factura del client +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) AutomaticClosing=Tancament automàtic AutomaticLinking=Enllaç automàtic diff --git a/htdocs/langs/ca_ES/zapier.lang b/htdocs/langs/ca_ES/zapier.lang index 65d851a78bd..3ddf2a27546 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 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 . +ZapierSetupPage=No cal una configuració de Dolibarr per a utilitzar Zapier. Tanmateix, heu de generar i publicar un paquet a zapier per a poder utilitzar Zapier amb Dolibarr. Vegeu la documentació sobre aquesta pàgina wiki. diff --git a/htdocs/langs/cs_CZ/accountancy.lang b/htdocs/langs/cs_CZ/accountancy.lang index 9017f3151eb..15d52b75959 100644 --- a/htdocs/langs/cs_CZ/accountancy.lang +++ b/htdocs/langs/cs_CZ/accountancy.lang @@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Zvolte typ návratu vozíku ACCOUNTING_EXPORT_PREFIX_SPEC=Určete předponu pro název souboru ThisService=Tato služba ThisProduct=Tento výrobek -DefaultForService=Výchozí nastavení pro službu -DefaultForProduct=Výchozí produkt +DefaultForService=Default for services +DefaultForProduct=Default for products ProductForThisThirdparty=Produkty pro tento subjekt ServiceForThisThirdparty=Služby pro tento subjekt CantSuggest=Nelze navrhnout @@ -48,8 +48,9 @@ CountriesNotInEEC=Země, které nejsou v EHS CountriesInEECExceptMe=Země v EHS kromě %s CountriesExceptMe=Všechny země kromě %s AccountantFiles=Export source documents -ExportAccountingSourceDocHelp=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. +ExportAccountingSourceDocHelp=With this tool, you can search and export the source events that are used to generate your accountancy.
The exported ZIP file will contain the lists of requested items in CSV, as well as their attached files in their original format (PDF, ODT, DOCX...). ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. +ExportAccountingProjectHelp=Specify a project if you need an accounting report only for a specific project. Expense reports and loan payments are not included in project reports. VueByAccountAccounting=View by accounting account VueBySubAccountAccounting=View by accounting subaccount @@ -58,6 +59,7 @@ MainAccountForSuppliersNotDefined=Hlavní účty účetnictví pro dodavatele, k MainAccountForUsersNotDefined=Hlavní účetní účetnictví pro uživatele, které nejsou definovány v nastavení MainAccountForVatPaymentNotDefined=Účet hlavního účtu pro platbu DPH není definována v nastavení MainAccountForSubscriptionPaymentNotDefined=Účet hlavního účtu je platba předplatného, která není definována v nastavení +UserAccountNotDefined=Accounting account for user not defined in setup AccountancyArea=Účetní oblast AccountancyAreaDescIntro=Použití účetního modulu se provádí v několika krocích: @@ -99,7 +101,8 @@ ShowAccountingAccount=Zobrazit účetní účet ShowAccountingJournal=Zobrazit účetní deník ShowAccountingAccountInLedger=Show accounting account in ledger ShowAccountingAccountInJournals=Show accounting account in journals -AccountAccountingSuggest=Účetní účet navrhl +DataUsedToSuggestAccount=Data used to suggest account +AccountAccountingSuggest=Account suggested MenuDefaultAccounts=výchozí účty MenuBankAccounts=Bankovní účty MenuVatAccounts=Účty DPH @@ -124,6 +127,7 @@ WriteBookKeeping=Record transactions in accounting Bookkeeping=účetní kniha BookkeepingSubAccount=Subledger AccountBalance=Zůstatek na účtu +AccountBalanceSubAccount=Sub-accounts balance ObjectsRef=Zdrojový objekt ref CAHTF=Celkový prodejce před zdaněním TotalExpenseReport=Celková výkaz výdajů @@ -161,42 +165,47 @@ BANK_DISABLE_DIRECT_INPUT=Zakázat přímé nahrávání transakce v bankovním ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Povolit návrh exportu v žurnálu ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties, break ability to search on a part of value) ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting. -ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default -ACCOUNTING_SELL_JOURNAL=Prodejní deník -ACCOUNTING_PURCHASE_JOURNAL=Nákupní deník -ACCOUNTING_MISCELLANEOUS_JOURNAL=Ostatní deník +ACCOUNTING_SELL_JOURNAL=Sales journal (sales and returns) +ACCOUNTING_PURCHASE_JOURNAL=Purchase journal (purchase and returns) +ACCOUNTING_BANK_JOURNAL=Cash journal (receipts and disbursements) ACCOUNTING_EXPENSEREPORT_JOURNAL=Rozšířený výpis deníku -ACCOUNTING_SOCIAL_JOURNAL=Sociální deník +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal ACCOUNTING_HAS_NEW_JOURNAL=Má nový věstník +ACCOUNTING_INVENTORY_JOURNAL=Inventory journal +ACCOUNTING_SOCIAL_JOURNAL=Sociální deník ACCOUNTING_RESULT_PROFIT=Výsledek účetnictví (Zisk) ACCOUNTING_RESULT_LOSS=Výsledek účetní účet (ztráta) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Časopis uzavření -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Účtovací účet přechodného bankovního převodu +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Účet přechodného bankovního převodu -ACCOUNTING_ACCOUNT_SUSPENSE=Čekající účet -DONATION_ACCOUNTINGACCOUNT=Účtování účet registrovaných darů -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Účtovací účet pro registraci předplatného +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit -UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default +UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Účetní účet ve výchozím nastavení pro zakoupené produkty (používá se, pokud není definováno v produktovém listu) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Účetní účet ve výchozím nastavení u zakoupených produktů v EHS (používá se, pokud není definováno v produktovém listu) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Účetní účet ve výchozím nastavení pro nakoupené produkty a dovážený z EHS (používá se, pokud není definován v listu produktu) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Účetní účet ve výchozím nastavení pro prodané produkty (použít, pokud není definován v listu produktu) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Účetní účet ve výchozím nastavení u produktů prodávaných v EHS (používá se, pokud není definováno v produktovém listu) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Účetní účet ve výchozím nastavení u produktů prodaných a vyvezených z EHS (používá se, pokud není definováno v produktovém listu) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Účetní účet ve výchozím nastavení pro zakoupené služby (použít, pokud není definován v servisním listu) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Účetní účet ve výchozím nastavení pro zakoupené služby v EHS (používá se, pokud není definováno v listu služeb) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Účetní účet ve výchozím nastavení pro nakoupené služby a importovaný z EHS (používá se, pokud není definováno v listu služeb) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Účetní účet ve výchozím nastavení pro prodané služby (použít, pokud není definován v servisním listu) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Účetní účet ve výchozím nastavení pro služby prodávané v EHS (používá se, pokud není definováno v listu služeb) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Účetní účet ve výchozím nastavení pro služby prodané a vyvezené z EHS (použité, pokud není definováno v listu služeb) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Typ dokumentu Docdate=Datum @@ -211,7 +220,8 @@ Codejournal=Deník JournalLabel=Označení časopisu NumPiece=počet kusů TransactionNumShort=Num. transakce -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts +AccountingCategories=Custom groups of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=Zde můžete definovat některé skupiny účetních účtů. Budou se používat pro personalizované účetní výkazy. @@ -259,19 +269,20 @@ ShowSubtotalByGroup=Show subtotal by level Pcgtype=Skupina účtů PcgtypeDesc=Skupina účtů se používá jako předdefinovaná kritéria pro filtrování a seskupování pro některé účetní výkazy. Například „PŘÍJMY“ nebo „VÝDAJE“ se používají jako skupiny pro účetní účty produktů k sestavení výkazu nákladů / výnosů. +AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports. Reconcilable=Smíření TotalVente=Celkový obrat před zdaněním TotalMarge=Celkové tržby marže -DescVentilCustomer=Zde naleznete seznam zákaznických fakturačních řádků vázaných (nebo nikoliv) na účet účetnictví produktu -DescVentilMore=Ve většině případů, pokud používáte předdefinované produkty nebo služby a nastavíte číslo účtu na kartě produktu / služby, aplikace bude schopna provést veškerou vazbu mezi vašimi fakturačními řádky a účtem účtu vašeho účtového osvědčení, a to pouze v jedním kliknutím tlačítkem "%s" . Pokud účet nebyl nastaven na kartě produktů / služeb nebo pokud máte ještě nějaké řádky, které nejsou vázány na účet, musíte z nabídky " %s " provést ruční vazbu. -DescVentilDoneCustomer=Seznamte se zde se seznamem řádků faktur zákazníků a jejich účetních účtů -DescVentilTodoCustomer=Vázat fakturační řádky, které již nejsou vázány účtem účetnictví produktu -ChangeAccount=Změnit výrobek/službu na účetnm účtu ve vybraných řádcích s následujícím účetním účtem: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Seznamte se zde se seznamem linek s fakturami dodavatele vázaných nebo dosud vázaných na účet účetnictví produktu (jsou viditelné pouze záznamy, které ještě nebyly převedeny do účetnictví) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Zde si přečtěte seznam řádků prodejních faktur a jejich účetní účet DescVentilTodoExpenseReport=Vázat řádky výkazu výdajů, které již nejsou vázány účtem účtování poplatků DescVentilExpenseReport=Zde si přečtěte seznam výkazů výdajů vázaných (nebo ne) na účty účtování poplatků @@ -279,24 +290,25 @@ DescVentilExpenseReportMore=Pokud nastavíte účetní účet na řádcích výk DescVentilDoneExpenseReport=Poraďte se zde seznam v souladu se zprávami výdajů a jejich poplatků účtování účtu Closure=Annual closure -DescClosure=Consult here the number of movements by month who are not yet validated & locked +DescClosure=Consult here the number of movements by month not yet validated & locked OverviewOfMovementsNotValidated=Overview of movements not validated and locked AllMovementsWereRecordedAsValidated=All movements were recorded as validated and locked NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated and locked -ValidateMovements=Validate and lock record... +ValidateMovements=Validate and lock movements... DescValidateMovements=Jakékoli úpravy nebo vymazání písem, nápisů a vymazání budou zakázány. Všechny přihlášky na cvičení musí být validovány, jinak nebude možné uzavřít ValidateHistory=Ověřit automaticky AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically. -ErrorAccountancyCodeIsAlreadyUse=Chyba, nelze odstranit tento účetní účet, protože ho zrovna používáte +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Vyvažování FicheVentilation=Ověřovací karta GeneralLedgerIsWritten=Transakce jsou zapsány do knihy GeneralLedgerSomeRecordWasNotRecorded=Některé transakce nemohly být zveřejněny. Pokud se neobjeví žádná další chybová zpráva, je to pravděpodobně proto, že byly již publikovány. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=Seznam výrobků, které nejsou vázány na kterémkoli účetním účtu +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Změnit vazby Accounted=Účtováno v knize NotYetAccounted=Not yet transferred to accounting @@ -319,9 +331,10 @@ AccountingJournalType1=Různé operace AccountingJournalType2=Odbyt AccountingJournalType3=Nákupy AccountingJournalType4=Banka -AccountingJournalType5=Zpráva o nákladech +AccountingJournalType5=Výkazy výdajů AccountingJournalType8=Inventář AccountingJournalType9=Má-new +GenerationOfAccountingEntries=Generation of accounting entries ErrorAccountingJournalIsAlreadyUse=Tento deník se již používá AccountingAccountForSalesTaxAreDefinedInto=Poznámka: Účtovací účet pro daň z prodeje je definován v menu %s - %s NumberOfAccountancyEntries=Počet vstupů @@ -329,10 +342,14 @@ NumberOfAccountancyMovements=Počet pohybů ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on sales (customer invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) +ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting +ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting ## Export +NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) -NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedExportFull=Export documents ? DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Exportovat deník návrhu @@ -389,7 +406,7 @@ SaleLocal=Místní prodej SaleExport=Exportní prodej SaleEEC=Prodej v EHS SaleEECWithVAT=Prodej v EHS s nulovou DPH, takže předpokládáme, že se nejedná o intrakomunitní prodej a navrhovaný účet je standardní produktový účet. -SaleEECWithoutVATNumber=Prodej v EHS bez DPH, ale DIČ třetí strany není definováno. Pro standardní prodej jsme upadli na produktový účet. V případě potřeby můžete opravit DIČ třetí strany nebo produktový účet. +SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed. ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. ## Dictionary @@ -398,7 +415,11 @@ Calculated=počítáno Formula=Vzorec ## Reconcile +LetteringAuto=Reconcile auto +LetteringManual=Reconcile manual Unlettering=Unreconcile +UnletteringAuto=Unreconcile auto +UnletteringManual=Unreconcile manual AccountancyNoLetteringModified=No reconcile modified AccountancyOneLetteringModifiedSuccessfully=One reconcile successfully modified AccountancyLetteringModifiedSuccessfully=%s reconcile successfully modified @@ -407,8 +428,9 @@ AccountancyOneUnletteringModifiedSuccessfully=One unreconcile successfully modif AccountancyUnletteringModifiedSuccessfully=%s unreconcile successfully modified ## Confirm box -ConfirmMassUnlettering=Bulk Unreconcile confirmation -ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +ConfirmMassUnletteringAuto=Bulk auto unreconcile confirmation +ConfirmMassUnletteringManual=Bulk manual unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to unreconcile the %s selected record(s)? ConfirmMassDeleteBookkeepingWriting=Hromadné smazání potvrzení ConfirmMassDeleteBookkeepingWritingQuestion=This will delete the transaction from the accounting (all lines related to the same transaction will be deleted) Are you sure you want to delete the %s selected record(s)? @@ -427,6 +449,8 @@ SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorr AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists +ErrorArchiveAddFile=Can't put "%s" file in archive ## Import ImportAccountingEntries=Účetní zápisy @@ -453,6 +477,7 @@ FECFormatMulticurrencyCode=Multicurrency code (Idevise) DateExport=Datum exportu WarningReportNotReliable=Upozornění: Tento přehled není založen na záznamníku, takže neobsahuje transakci upravenou ručně v Knihovně. Je-li vaše deník aktuální, zobrazení účetnictví je přesnější. ExpenseReportJournal=Účet výkazů výdajů -InventoryJournal=Inventářový věstník +DocsAlreadyExportedAreExcluded=Docs already exported are excluded +ClickToHideAlreadyExportedLines=Click to hide already exported lines NAccounts=%s accounts diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang index 11d510faad1..13a3ace17af 100644 --- a/htdocs/langs/cs_CZ/admin.lang +++ b/htdocs/langs/cs_CZ/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Srovnání klientů WarningModuleNotActive=Modul %s musí být povolen WarningOnlyPermissionOfActivatedModules=Zobrazeny pouze oprávnění k aktivovaným modulům. Další moduly můžete aktivovat na stránce Domů-> Nastavení-> Moduly. DolibarrSetup=Instalace nebo aktualizace Dolibarr -InternalUser=Interní uživatel -ExternalUser=Externí uživatel InternalUsers=Interní uživatelé ExternalUsers=Externí uživatelé UserInterface=User interface @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (Výchozí nastavení v php.ini: %s%s) +EMailHelpMsgSPFDKIM=To prevent Dolibarr emails to be classified as spam, make sure that the server is authorized to send e-mails from this address by SPF and DKIM configuration MAIN_MAIL_ERRORS_TO=E-mail, který se používá pro hlášení chyb, vrací e-maily (políčka "Chyby-To" v odeslaných e-mailech) MAIN_MAIL_AUTOCOPY_TO= Kopírovat (Bcc) všechny odeslané e-maily MAIN_DISABLE_ALL_MAILS=Zakázat veškeré odesílání e-mailů (pro testovací účely nebo ukázky) @@ -439,8 +438,10 @@ Unique=Unikátní Boolean=Boolean (jedno zaškrtávací políčko) ExtrafieldPhone = Telefon ExtrafieldPrice = Cena +ExtrafieldPriceWithCurrency=Price with currency ExtrafieldMail = E-mail ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Vyberte seznam ExtrafieldSelectList = Vyberte z tabulky ExtrafieldSeparator=Oddělovač (není položka) @@ -501,7 +502,8 @@ WarningPHPMail=WARNING: The setup to send emails from the application is using t WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=Also, it is therefore recommended to change the sending method of e-mails to the value "SMTP". If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by setting the MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP constant to 1 in Home - Setup - Other. +WarningPHPMailD=It is therefore recommended to change the sending method of e-mails to the value "SMTP". +WarningPHPMailDbis=If you really want to keep the default "PHP" method to send emails, just ignore this warning, or remove it by %sclicking here%s. WarningPHPMail2=Pokud je váš poskytovatel e-mailových služeb SMTP povinen omezit e-mailový klient na některé adresy IP (velmi vzácné), jedná se o adresu IP agentu uživatele pošty (MUA) pro aplikaci ERP CRM: %s . WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask your domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate= 
Příklad:
Formulář pro vytvoření PageUrlForDefaultValuesList= 
Příklad:
Pro stránku, která obsahuje subjekty, je %s .
Pro adresy URL externích modulů nainstalovaných do vlastního adresáře nezahrnujte "vlastní", takže použijte cestu jako mymodule / mypagelist.php a ne vlastní / mymodule / mypagelist.php.
Pokud chcete výchozí hodnotu pouze v případě, že url má nějaký parametr, můžete použít %s AlsoDefaultValuesAreEffectiveForActionCreate=Také si všimněte, že přepsání výchozích hodnot pro vytváření formulářů funguje pouze pro stránky, které byly správně navrženy (takže s parametrem action = create or presend ...) EnableDefaultValues=Povolit přizpůsobení výchozích hodnot -EnableOverwriteTranslation=Povolit použití přepsaného překladu +EnableOverwriteTranslation=Allow customization of translations GoIntoTranslationMenuToChangeThis=Překlad byl nalezen pro klíč s tímto kódem. Chcete-li tuto hodnotu změnit, musíte ji upravit z Home-Setup-translation. WarningSettingSortOrder=Upozornění, nastavení výchozího pořadí řazení může vést k technické chybě, pokud se nacházíte na stránce seznamu, pokud je pole neznámý pole. Pokud dojde k takové chybě, vráťte se na tuto stránku, abyste odstranili výchozí pořadí řazení a obnovili výchozí chování. Field=Pole @@ -645,9 +647,9 @@ Module2400Name=Události/Agenda Module2400Desc=Sledujte události. Nahrajte automatické události pro účely sledování nebo zaznamenávejte ruční události nebo schůzky. Jedná se o hlavní modul pro správné řízení vztahů se zákazníky nebo dodavateli. Module2500Name=DMS / ECM Module2500Desc=Systém správy dokumentů / elektronické správy obsahu. Automatické uspořádání vytvořených nebo uložených dokumentů. Sdílejte je, když budete potřebovat. -Module2600Name=API / Webové služby (SOAP server) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Povolit Dolibarr SOAP serveru poskytující služby API -Module2610Name=API / webové služby REST (server) +Module2610Name=API / Web services (REST server) Module2610Desc=Povolit služby API serveru poskytující Dolibarr REST Module2660Name=Call WebServices (SOAP klient) Module2660Desc=Povolit klienta webových služeb Dolibarr (lze použít k posunu dat / požadavků na externí servery. V současné době jsou podporovány pouze nákupní objednávky.) @@ -698,6 +700,7 @@ Module62000Name=Incoterms Module62000Desc=Přidat funkce pro správu Incoterms Module63000Name=Zdroje Module63000Desc=Spravujte prostředky (tiskárny, auta, místnosti, ...) pro přidělování událostí +Module94160Name=Recepce Permission11=Přečtěte si faktury zákazníků Permission12=Vytvářejte/upravujte zákaznické faktury Permission13=Invalidate customer invoices @@ -842,9 +845,9 @@ Permission286=Export kontaktů Permission291=Přečtěte tarify Permission292=Nastavení oprávnění na sazby Permission293=Upravte zákaznické tarify -Permission300=Čtěte čárové kódy -Permission301=Vytvářejte/upravujte čárové kódy -Permission302=Odstraňte čárové kódy +Permission301=Generate PDF sheets of barcodes +Permission304=Vytvářejte/upravujte čárové kódy +Permission305=Odstraňte čárové kódy Permission311=Přečtěte služby Permission312=Přiřadit službu/předplatné ke smlouvě Permission331=Přečtěte si záložky @@ -971,13 +974,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Přečtěte si obsah webových stránek Permission10002=Vytvářejte/upravujte obsah webových stránek (html a javascript) Permission10003=Vytvářejte / upravujte obsah webových stránek (dynamický php kód). Nebezpečné, musí být vyhrazeno omezeným vývojářům. @@ -1081,6 +1085,10 @@ DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Nastavení uloženo SetupNotSaved=Nastavení nebylo uloženo +OAuthServiceConfirmDeleteTitle=Delete OAuth entry +OAuthServiceConfirmDeleteMessage=Are you sure you want to delete this OAuth entry ? All existing tokens for it will also be deleted. +ErrorInEntryDeletion=Error in entry deletion +EntryDeleted=Entry deleted BackToModuleList=Zpět na seznam modulů BackToDictionaryList=Zpět na seznam slovníků TypeOfRevenueStamp=Typ daňové známky @@ -1244,6 +1252,7 @@ AreaForAdminOnly=Parametry nastavení mohou být nastaveny pouze uživateli a SystemInfoDesc=Systémové informace jsou různé technické informace, které získáte pouze v režimu pro čtení a viditelné pouze pro správce. SystemAreaForAdminOnly=Tato oblast je k dispozici pouze uživatelům správce. Oprávnění uživatele Dolibarr nemůže toto omezení změnit. CompanyFundationDesc=Upravte informace o své společnosti / organizaci. Po dokončení klikněte na tlačítko „%s“ v dolní části stránky. +MoreNetworksAvailableWithModule=More social networks may be available by enabling the module "Social networks". AccountantDesc=Pokud máte externího účetního / účetního, můžete zde upravit jeho informace. AccountantFileNumber=Účetní kód DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. @@ -1294,6 +1303,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Tento příkaz musíte spustit YourPHPDoesNotHaveSSLSupport=SSL funkce není k dispozici ve vašem PHP DownloadMoreSkins=Další skiny ke stažení SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1380,7 +1391,7 @@ GetBarCode=Získat čárový kód NumberingModules=Modely číslování DocumentModules=Modely dokumentů ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Nevybírejte generované heslo. Heslo musí být zadáno ručně. PasswordGenerationPerso=Vrátit hesla dle Vašeho osobně definované konfiguraci. SetupPerso=Podle konfigurace @@ -1434,6 +1445,10 @@ SuppliersPayment=Platby dodavatele SupplierPaymentSetup=Nastavení plateb dodavatelů InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
- Category of operations: Delivery of goods
- Category of operations: Provision of services
- Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Nastavení modulu komerčních návrhů ProposalsNumberingModules=Modely číslování komerčních nabídek @@ -1476,11 +1491,12 @@ WatermarkOnDraftContractCards=Vodoznak v návrhu smlouvy (žádný, je-li prázd ##### Members ##### MembersSetup=Nastavení modulu členů MemberMainOptions=Hlavní volby +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Správa Přihlášení pro každého člena AdherentMailRequired=K vytvoření nového člena je třeba e-mail MemberSendInformationByMailByDefault=Zaškrtávací políčko poslat mailem potvrzení členům (validace nebo nové předplatné) je ve výchozím nastavení MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Návštěvník si může vybrat z dostupných způsobů platby +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Povolit automatické připomenutí e-mailem vypršel odběr. Poznámka: Modul %s musí být povolen a správně nastaven pro odeslání připomenutí. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1742,8 +1758,8 @@ ActivateFCKeditor=Aktivujte pokročilý editor pro: FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements FCKeditorForCompany=WYSIWIG creation/edition of the field description of elements (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of the field description of products/services -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=WYSIWIG creation/edition of products description or lines for objects (lines of proposals, orders, invoices, etc...). +FCKeditorForProductDetails2=Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. FCKeditorForMailing= WYSIWIG tvorba/vydání pro hromadné eMailings (Nástroje-> eMailing) FCKeditorForUserSignature=WYSIWIG vytvoření / edice uživatelského podpisu FCKeditorForMail=Vytvoření WYSIWIG / edition pro veškerou poštu (s výjimkou Nástroje-> e-mailem) @@ -1766,7 +1782,7 @@ DetailMenuHandler=Ovládání nabídek, kde se má zobrazit nové menu DetailMenuModule=Název modulu, pokud položky nabídky pocházejí z modulu DetailType=Druh nabídky (horní nebo levý) DetailTitre=Menu štítek nebo etiketa kód pro překlad -DetailUrl=URL, kde Nabídka poslat (absolutní URL odkaz nebo externí odkaz s http://) +DetailUrl=URL where menu send you (Relative URL link or external link with https://) DetailEnabled=Podmínka pro zobrazení nebo ne DetailRight=Podmínka pro zobrazení neoprávněným šedé menu DetailLangs=Lang název souboru pro překlad kódu štítek @@ -1837,7 +1853,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Snižování zásob v POS není kompa CashDeskYouDidNotDisableStockDecease=Při prodeji z prodejního místa jste nezakázali pokles zásob. Proto je nutný sklad. CashDeskForceDecreaseStockLabel=Snížení zásob u dávkových produktů bylo vynuceno. CashDeskForceDecreaseStockDesc=Nejprve se sníží o nejstarší data o jídle a prodeji. -CashDeskReaderKeyCodeForEnter=Klíčový kód pro „Enter“ definovaný ve čtečce čárových kódů (Příklad: 13) +CashDeskReaderKeyCodeForEnter=Key ASCII code for "Enter" defined in barcode reader (Example: 13) ##### Bookmark ##### BookmarkSetup=Záložka Nastavení modulu BookmarkDesc=Tento modul umožňuje spravovat záložky. Můžete také přidat odkazy na libovolné stránky Dolibarr nebo externí webové stránky v levém menu. @@ -1875,7 +1891,7 @@ SuppliersInvoiceNumberingModel=Číslovací modely faktur dodavatelů IfSetToYesDontForgetPermission=Pokud je nastavena na nenulovou hodnotu, nezapomeňte poskytnout oprávnění skupinám nebo uživatelům povoleným pro druhé schválení ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Nastavení modulu GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Cesta k souboru obsahujícímu Maxmind ip k překladu do země.
Příklady:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation NoteOnPathLocation=Všimněte si, že Vaše IP do souboru záznamu země musí být uvnitř adresáře si můžete přečíst PHP (PHP open_basedir Zkontrolujte nastavení a oprávnění souborového systému). YouCanDownloadFreeDatFileTo=Zde si můžete stáhnout zdarma demo verzi země GeoIP Maxmind soubor na %s. YouCanDownloadAdvancedDatFileTo=Můžete si také stáhnout úplnější verzi s aktualizací, ze země GeoIP Maxmind soubor na %s. @@ -1926,6 +1942,7 @@ BackupDumpWizard=Průvodce vytvořením souboru výpisu databáze BackupZipWizard=Průvodce vytvořením adresáře archivů dokumentů SomethingMakeInstallFromWebNotPossible=Instalace externího modulu není možné z webového rozhraní z tohoto důvodu: SomethingMakeInstallFromWebNotPossible2=Z tohoto důvodu je zde popsaný proces upgradu ruční proces, který může provádět pouze privilegovaný uživatel. +InstallModuleFromWebHasBeenDisabledContactUs=Install or development of external modules or dynamic websites, from the application, is currently locked for security purpose. Please contact us if you need to enable this feature. InstallModuleFromWebHasBeenDisabledByFile=Instalace externího modulu z aplikace byla deaktivována správcem. Musíte požádat jej, aby odstranil soubor %s , aby tuto funkci povolil. ConfFileMustContainCustom=Instalace nebo sestavení externího modulu z aplikace vyžaduje uložení souborů modulu do adresáře %s . Chcete-li, aby tento adresář zpracoval Dolibarr, musíte nastavit conf / conf.php a přidat 2 směrné řádky:
$ dolibarr_main_url_root'alt '/';
$ dolibarr_main_document_root_alt = '%s / custom'; HighlightLinesOnMouseHover=Zvýrazněte řádky tabulky, když pohyb myší projde @@ -2053,6 +2070,8 @@ RemoveSpecialChars=Odstraňte speciální znaky COMPANY_AQUARIUM_CLEAN_REGEX=Filtr Regex pro vyčištění hodnoty (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Filtr Regex pro vyčištění hodnoty (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikát není povolen +RemoveSpecialWords=Clean certain words when generating sub-accounts for customers or suppliers +RemoveSpecialWordsHelp=Specify the words to be cleaned before calculating the customer or supplier account. Use a ";" between each word GDPRContact=Úředník pro ochranu údajů (DPO, ochrana dat nebo kontakt GDPR) GDPRContactDesc=If you store personal data in your Information System, you can name the contact who is responsible for the General Data Protection Regulation here HelpOnTooltip=Text nápovědy se zobrazí na popisku @@ -2080,6 +2099,7 @@ MailboxTargetDirectory=Adresář cílové schránky EmailcollectorOperations=Operace prováděné sběratelem EmailcollectorOperationsDesc=Operations are executed from top to bottom order MaxEmailCollectPerCollect=Maximální počet e-mailů shromážděných za sběr +TestCollectNow=Test collect CollectNow=Sbírat nyní ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s? DateLastCollectResult=Date of latest collect try @@ -2183,6 +2203,7 @@ ShowProjectLabel=Project Label PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Pokud chcete mít ve svém PDF duplikované texty ve 2 různých jazycích ve stejném generovaném PDF, musíte zde nastavit tento druhý jazyk, takže vygenerovaný PDF bude obsahovat 2 různé jazyky na stejné stránce, jeden vybraný při generování PDF a tento ( Podporuje to jen několik šablon PDF). Uchovávejte prázdné po dobu 1 jazyka na PDF. PDF_USE_A=Gererate PDF documents with format PDF/A instead of defaut format PDF FafaIconSocialNetworksDesc=Sem zadejte kód ikony FontAwesome. Pokud nevíte, co je FontAwesome, můžete použít obecnou hodnotu fa-address-book. @@ -2211,12 +2232,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Doporučené NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2264,7 +2285,7 @@ LateWarningAfter="Late" warning after TemplateforBusinessCards=Template for a business card in different size InventorySetup= Nastavení zásob ExportUseLowMemoryMode=Use a low memory mode -ExportUseLowMemoryModeHelp=Use the low memory mode to execute the exec of the dump (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that file is completed and error message can't be reported if it fails. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. ModuleWebhookName = Webhook ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL @@ -2288,6 +2309,8 @@ IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. IfThisCategoryIsChildOfAnother=If this category is a child of another one DarkThemeMode=Dark theme mode @@ -2307,3 +2330,28 @@ UsePassword=Use a password UseOauth=Use a OAUTH token Images=Images MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/cs_CZ/categories.lang b/htdocs/langs/cs_CZ/categories.lang index 3d18f628f50..35210a5b2ce 100644 --- a/htdocs/langs/cs_CZ/categories.lang +++ b/htdocs/langs/cs_CZ/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Tento uživatel není v žádném tagu/kategoriích ContactHasNoCategory=Tento kontakt není v žádném tagu/kategorii ProjectHasNoCategory=Tento projekt není v žádném tagu/kategorii ClassifyInCategory=Přidat do tagu/kategorie +RemoveCategory=Remove category NotCategorized=Bez tagu/kategorie CategoryExistsAtSameLevel=Tato kategorie již existuje s tímto čj ContentsVisibleByAllShort=Obsah viditelný všemi @@ -67,6 +68,7 @@ StockCategoriesShort=Značky/kategorie skladů ThisCategoryHasNoItems=Tato kategorie neobsahuje žádné položky. CategId=ID tagu/kategorie ParentCategory=Parent tag/category +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label of parent tag/category CatSupList=List of vendors tags/categories CatCusList=List of customers/prospects tags/categories @@ -86,15 +88,18 @@ DeleteFromCat=Odebrat z tagů/kategorií ExtraFieldsCategories=Doplňkové atributy CategoriesSetup=Nastavení tagů/kategorií CategorieRecursiv=Odkaz na nadřazený tag/kategorii automaticky -CategorieRecursivHelp=Pokud je volba zapnuta, při přidání produktu do podkategorie bude produkt také přidán do nadřazené kategorie. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Přidejte následující produkt/službu AddCustomerIntoCategory=Assign category to customer AddSupplierIntoCategory=Assign category to supplier +AssignCategoryTo=Assign category to ShowCategory=Zobrazit tag/kategorii ByDefaultInList=Ve výchozím nastavení je v seznamu ChooseCategory=Vyberte kategorii StocksCategoriesArea=Warehouse Categories +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Event Categories WebsitePagesCategoriesArea=Page-Container Categories KnowledgemanagementsCategoriesArea=KM article Categories UseOrOperatorForCategories=Use 'OR' operator for categories +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/cs_CZ/commercial.lang b/htdocs/langs/cs_CZ/commercial.lang index 6224ac01080..dc52389e96c 100644 --- a/htdocs/langs/cs_CZ/commercial.lang +++ b/htdocs/langs/cs_CZ/commercial.lang @@ -64,17 +64,26 @@ ActionAC_SHIP=Poslat přepravu na mail ActionAC_SUP_ORD=Pošlete objednávku e-mailem ActionAC_SUP_INV=Poslat dodavatelské faktury e-mailem ActionAC_OTH=Ostatní -ActionAC_OTH_AUTO=Automaticky vložené události +ActionAC_OTH_AUTO=Other auto ActionAC_MANUAL=Ručně vložené události ActionAC_AUTO=Automaticky vložené události -ActionAC_OTH_AUTOShort=Auto +ActionAC_OTH_AUTOShort=Jiný +ActionAC_EVENTORGANIZATION=Event organization events Stats=Prodejní statistiky StatusProsp=Stav cíle DraftPropals=Navrhnout obchodní návrhy NoLimit=No limit ToOfferALinkForOnlineSignature=Odkaz pro podpis online -WelcomeOnOnlineSignaturePage=Vítejte na stránce, abyste přijali komerční návrhy z %s -ThisScreenAllowsYouToSignDocFrom=Tato obrazovka umožňuje přijímat a podepsat nebo odmítnout nabídku/komerční návrh -ThisIsInformationOnDocumentToSign=Toto jsou informace o přijetí nebo odmítnutí dokumentu +WelcomeOnOnlineSignaturePageProposal=Vítejte na stránce, abyste přijali komerční návrhy z %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=Tato obrazovka umožňuje přijímat a podepsat nebo odmítnout nabídku/komerční návrh +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=Toto jsou informace o přijetí nebo odmítnutí dokumentu +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Podpis nabídky/obchodní nabídky %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Funkce pro podepisování online zakázána nebo dokument byl vygenerovaný dříve, než byla funkce povolena diff --git a/htdocs/langs/cs_CZ/compta.lang b/htdocs/langs/cs_CZ/compta.lang index fc62ddb9e11..686529617e0 100644 --- a/htdocs/langs/cs_CZ/compta.lang +++ b/htdocs/langs/cs_CZ/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Zůstatek (před) Balance=Zůstatek Debit=Debet Credit=Kredit +AccountingDebit=Debet +AccountingCredit=Kredit Piece=Účetnictví Doc. AmountHTVATRealReceived=Čistá částka AmountHTVATRealPaid=Čistá platba @@ -146,9 +148,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Odstranit sociální a fiskální platbu daně DeleteVAT=Delete a VAT declaration DeleteSalary=Delete a salary card +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Sociální a fiskální daně a platby CalcModeVATDebt=Režim %sDPH zápočtu na závazky%s. CalcModeVATEngagement=Režim %sDPH z rozšířených příjmů%s. @@ -242,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Zpráva o tržbách shromá TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Zpráva o tržbách zachycená podle sazby daně z prodeje není k dispozici. Tento přehled je k dispozici pouze pro fakturovaný obrat. CalculationMode=Výpočetní režim AccountancyJournal=Deník účetnických kódů -ACCOUNTING_VAT_SOLD_ACCOUNT=Účtovací účet ve výchozím nastavení pro DPH z prodeje (používá se, pokud není definováno v nastavení slovníku DPH) -ACCOUNTING_VAT_BUY_ACCOUNT=Účtovací účet ve výchozím nastavení pro DPH při nákupu (použitý, pokud není definován v nastavení slovníku DPH) -ACCOUNTING_VAT_PAY_ACCOUNT=Účtovací účet pro platby DPH -ACCOUNTING_ACCOUNT_CUSTOMER=Účtovací účet používaný pro subjekty odběratele +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Účelový účet určený na kartě subjektu bude použit pouze pro účetnictví společnosti Subledger. Ten bude použit pro účet hlavní knihy a jako výchozí hodnotu účtování společnosti Subledger, pokud není definován účet odběratelského účetnictví subjektu. -ACCOUNTING_ACCOUNT_SUPPLIER=Účet účetnictví používaný pro subjekty dodavatele +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Účelový účet určený na kartě subjektu bude použit pouze pro účetnictví společnosti Subledger. Tato položka bude použita pro hlavní účetní knihu a jako výchozí hodnotu účetnictví společnosti Subledger, pokud není definován účet externího účetního dodavatele subjektu. ConfirmCloneTax=Potvrďte klon sociální / daňové daně ConfirmCloneVAT=Confirm the clone of a VAT declaration @@ -287,9 +291,9 @@ ReportPurchaseTurnover=Fakturovaný obrat z nákupu ReportPurchaseTurnoverCollected=Shromážděný obrat z nákupu IncludeVarpaysInResults = Zahrnout různé platby do přehledů IncludeLoansInResults = Zahrnout půjčky do zpráv -InvoiceLate30Days = Invoices late (> 30 days) -InvoiceLate15Days = Invoices late (15 to 30 days) -InvoiceLateMinus15Days = Invoices late (< 15 days) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = To be collected (< 15 days) InvoiceNotLate15Days = To be collected (15 to 30 days) InvoiceNotLate30Days = To be collected (> 30 days) @@ -298,3 +302,4 @@ InvoiceToPay15Days=To pay (15 to 30 days) InvoiceToPay30Days=To pay (> 30 days) ConfirmPreselectAccount=Preselect accountancy code ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/cs_CZ/contracts.lang b/htdocs/langs/cs_CZ/contracts.lang index f638696bf6d..969de445492 100644 --- a/htdocs/langs/cs_CZ/contracts.lang +++ b/htdocs/langs/cs_CZ/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Smlouvy/Objednávky ContractsAndLine=Smlouvy a řádky smluv Contract=Smlouva ContractLine=řádek smlouvy +ContractLines=Contract lines Closing=Uzavření NoContracts=Žádné smlouvy MenuServices=Služby @@ -79,7 +80,7 @@ ConfirmDeleteContractLine=Jste si jisti, že chcete smazat tuto řádku smlouvy? MoveToAnotherContract=Přesuňte službu do jiné smlouvy. ConfirmMoveToAnotherContract=Vybral jste novou cílovou smlouvu, a potvrzujete vlastní krví, že chcete přesunout tuto službu do tohoto smluvního vztahu. ConfirmMoveToAnotherContractQuestion=Vybral jste ze stávajících smluv (z téhož subjektu) tu, na kterou chcete přesunout tuto službu? -PaymentRenewContractId=Obnovit smlouvu na řádku (číslo %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Datum expirace NoExpiredServices=Žádné expirované aktivní služby ListOfServicesToExpireWithDuration=Seznam služeb, které expirují v %s dnů @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Podepsání smlouvy kontakt se zákazn HideClosedServiceByDefault=Ve výchozím nastavení skrýt uzavřené služby ShowClosedServices=Zobrazit uzavřené služby HideClosedServices=Skrýt uzavřené služby +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/cs_CZ/cron.lang b/htdocs/langs/cs_CZ/cron.lang index c80ccf3a33b..fe8ade17b80 100644 --- a/htdocs/langs/cs_CZ/cron.lang +++ b/htdocs/langs/cs_CZ/cron.lang @@ -26,7 +26,7 @@ CronCommand=Příkaz CronList=Naplánované úlohy CronDelete=Smazat naplánované úlohy CronConfirmDelete=Jste si jisti, že chcete odstranit tyto naplánované úlohy? -CronExecute=Spuštění naplánovaných úloh +CronExecute=Launch now CronConfirmExecute=Jste si jisti, že chcete provést tyto naplánované úlohy nyní? CronInfo=Plánovací modul úloh umožňuje naplánovat úlohy, které se mají automaticky spouštět. Práce lze také spustit ručně. CronTask=Práce @@ -58,7 +58,7 @@ CronNote=Komentář CronFieldMandatory=Pole %s je povinné CronErrEndDateStartDt=Datum ukončení nemůže být před datem zahájení StatusAtInstall=Stav při instalaci modulu -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Zakázat CronTaskInactive=This job is disabled (not scheduled) CronId=Id @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Chcete-li zobrazit a upravit naplánované úloh JobDisabled=Úloha vypnuta MakeLocalDatabaseDumpShort=Záloha lokální databáze MakeLocalDatabaseDump=Vytvoření výpisu místní databáze. Parametry jsou: komprese ('gz' nebo 'bz' nebo 'none'), zálohovací typ ('mysql', 'pgsql', 'auto'), +MakeSendLocalDatabaseDumpShort=Send local database backup +MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Pozor, pokud jde o výkonnost, bez ohledu na to, co je příštím datem provedení povolených úloh, mohou být vaše úlohy zpožděny maximálně do %s hodin, než budou spuštěny. DATAPOLICYJob=Čistič dat a anonymizér JobXMustBeEnabled=Job %s must be enabled +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Last executed scheduled job NextScheduledJobExecute=Next scheduled job to execute NumberScheduledJobError=Number of scheduled jobs in error +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/cs_CZ/datapolicy.lang b/htdocs/langs/cs_CZ/datapolicy.lang new file mode 100644 index 00000000000..86620d54a7e --- /dev/null +++ b/htdocs/langs/cs_CZ/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Zákazník +DATAPOLICY_TIERS_PROSPECT = Cíl +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Dodavatel +DATAPOLICY_CONTACT_CLIENT = Zákazník +DATAPOLICY_CONTACT_PROSPECT = Cíl +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Dodavatel +DATAPOLICY_ADHERENT = Člen +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/cs_CZ/dict.lang b/htdocs/langs/cs_CZ/dict.lang index 21f4629488c..78b7e9d1fc0 100644 --- a/htdocs/langs/cs_CZ/dict.lang +++ b/htdocs/langs/cs_CZ/dict.lang @@ -21,7 +21,7 @@ CountryNL=Nizozemsko CountryHU=Maďarsko CountryRU=Rusko CountrySE=Švédsko -CountryCI=Ivoiry +CountryCI=Ivory Coast CountrySN=Senegal CountryAR=Argentina CountryCM=Kamerun @@ -250,7 +250,9 @@ CountryMF=Svatý Martin ##### Civilities ##### CivilityMME=Paní +CivilityMMEShort=Paní CivilityMR=Pan +CivilityMRShort=Pan CivilityMLE=Slečna CivilityMTRE=Hlavní CivilityDR=Lékař diff --git a/htdocs/langs/cs_CZ/ecm.lang b/htdocs/langs/cs_CZ/ecm.lang index d28e1ae4d47..c3e1db73034 100644 --- a/htdocs/langs/cs_CZ/ecm.lang +++ b/htdocs/langs/cs_CZ/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manuální adresář ECMSectionAuto=Automatický adresář ECMSectionsManual=Ruční strom ECMSectionsAuto=Automatický strom +ECMSectionsMedias=Medias tree ECMSections=Adresáře ECMRoot=Kořen ECM ECMNewSection=Nový adresář @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Počet souborů v podadresářích ECMCreationUser=Tvůrce ECMArea=Oblast DMS/ECM ECMAreaDesc=DMS/ECM (Document Management System / Electronic Content Management) umožňuje rychle ukládat, sdílet a vyhledávat všechny dokumenty v Dolibarru. -ECMAreaDesc2=* Automatické adresáře jsou vyplněny automaticky při přidávání dokumentů z karty prvku.
* Manuální adresáře lze použít k uložení dokladů, které nejsou spojené s konkrétním prvkem. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Rejstřík %s byl vymazán. ECMSectionWasCreated=Adresář %s byl vytvořen. ECMSearchByKeywords=Vyhledávání podle klíčových slov diff --git a/htdocs/langs/cs_CZ/holiday.lang b/htdocs/langs/cs_CZ/holiday.lang index a295166d4a6..f50dd4560e1 100644 --- a/htdocs/langs/cs_CZ/holiday.lang +++ b/htdocs/langs/cs_CZ/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Listy +Holidays=Leaves +Holiday=Dovolená CPTitreMenu=Dovolená MenuReportMonth=Měsíční výkaz MenuAddCP=Nová žádost o dovolenou +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Chcete-li zobrazit tuto stránku, musíte povolit modul Nechat. AddCP=Požádejte o dovolenou DateDebCP=Datum zahájení @@ -56,6 +58,7 @@ ConfirmDeleteCP=Potvrďit odstranění této žádosti o dovolenou? ErrorCantDeleteCP=Chyba: Nemáte oprávnění smazat tuto žádost o dovolenou. CantCreateCP=Nemáte právo podávat žádosti o dovolenou. InvalidValidatorCP=You must choose the approver for your leave request. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Musíte vybrat počáteční datum. NoDateFin=Musíte vybrat datum ukončení. ErrorDureeCP=Vaše žádost o dovolenou neobsahuje pracovní den. @@ -79,6 +82,8 @@ MotifCP=Důvod UserCP=Uživatel ErrorAddEventToUserCP=Došlo k chybě při přidávání požadavku na výjimečnou dovolenou. AddEventToUserOkCP=Přidání výjimečné dovolené bylo dokončeno. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Zobrazení protokolů změn LogCP=Log of all updates made to "Balance of Leave" ActionByCP=Updated by @@ -86,6 +91,13 @@ UserUpdateCP=Updated for PrevSoldeCP=Předchozí zůstatek NewSoldeCP=Nový zůstatek alreadyCPexist=Žádost o dovolenou pro toto období již byla provedena. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Skupiny +users=Uživatelé +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Beginning day of leave request LastDayOfHoliday=Ending day of leave request BoxTitleLastLeaveRequests=Nejnovější %s upravené žádosti o dovolenou @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/cs_CZ/loan.lang b/htdocs/langs/cs_CZ/loan.lang index 6811cae63d8..119e6342ac7 100644 --- a/htdocs/langs/cs_CZ/loan.lang +++ b/htdocs/langs/cs_CZ/loan.lang @@ -28,7 +28,7 @@ CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with CantModifyInterestIfScheduleIsUsed = Pokud používáte plán, nemůžete změnit zájem # Admin ConfigLoan=Konfigurace modulu úvěru -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Účetní účetní kapitál ve výchozím nastavení -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Účetní účetní zájem implicitně -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Účetní účetní pojištění implicitně +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Úprava finančního závazku diff --git a/htdocs/langs/cs_CZ/mailmanspip.lang b/htdocs/langs/cs_CZ/mailmanspip.lang index 7a570e7529d..9c2ac8fc62e 100644 --- a/htdocs/langs/cs_CZ/mailmanspip.lang +++ b/htdocs/langs/cs_CZ/mailmanspip.lang @@ -3,11 +3,11 @@ MailmanSpipSetup=Pošťák a SPIP modul nastavení MailmanTitle=Pošťák mailing list systém TestSubscribe=Chcete-li vyzkoušet předplatné pošťák seznamy TestUnSubscribe=Chcete-li otestovat odhlásit ze seznamu listonoš -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully +MailmanCreationSuccess=Test odběru byl úspěšně proveden +MailmanDeletionSuccess=Test odhlášení byl úspěšně proveden SynchroMailManEnabled=Pošťák aktualizace bude provedena SynchroSpipEnabled=Aktualizace SPIPu bude provedena -DescADHERENT_MAILMAN_ADMINPW=Pošťák heslo správce +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Pošťák heslo správce DescADHERENT_MAILMAN_URL=URL pro pošťáka předplatné DescADHERENT_MAILMAN_UNSUB_URL=URL pro pošťáka unsubscriptions DescADHERENT_MAILMAN_LISTS=Seznam (y) pro automatické nápis nových členů (oddělené čárkou) @@ -23,5 +23,5 @@ DeleteIntoSpip=Smazat z SPIP DeleteIntoSpipConfirmation=Jste si jisti, že chcete odstranit tohoto člena z SPIP? DeleteIntoSpipError=Nepodařilo se potlačit uživateli SPIP SPIPConnectionFailed=Nepodařilo se připojit k SPIPu -SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database -SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database +SuccessToAddToMailmanList=%s úspěšně přidáno do mailman listu %s nebo databáze SPIP +SuccessToRemoveToMailmanList=%s byl úspěšně odstraněn z mailman listu %s nebo databáze SPIP diff --git a/htdocs/langs/cs_CZ/mails.lang b/htdocs/langs/cs_CZ/mails.lang index 8341a08ceae..53cf8879162 100644 --- a/htdocs/langs/cs_CZ/mails.lang +++ b/htdocs/langs/cs_CZ/mails.lang @@ -7,10 +7,10 @@ MailCard=E-mailová karta MailRecipients=Příjemci MailRecipient=Příjemce MailTitle=Popis -MailFrom=Odesílatel +MailFrom=Z MailErrorsTo=Chyby MailReply=Odpovědět -MailTo=Příjemce(i) +MailTo=Na MailToUsers=Uživateli (uživatelům) MailCC=Kopírovat do MailToCCUsers=Kopírovat uživatele (e) @@ -178,3 +178,4 @@ IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact DefaultStatusEmptyMandatory=Empty but mandatory +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/cs_CZ/main.lang b/htdocs/langs/cs_CZ/main.lang index 3c96294a8fa..8ddc04c49f2 100644 --- a/htdocs/langs/cs_CZ/main.lang +++ b/htdocs/langs/cs_CZ/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -28,6 +34,7 @@ NoTemplateDefined=Pro tento typ e-mailu není k dispozici žádná šablona AvailableVariables=K dispozici substituční proměnné NoTranslation=Překlad není Translation=Překlad +Translations=Translations CurrentTimeZone=Časové pásmo PHP (server) EmptySearchString=Zadejte neprázdná kritéria vyhledávání EnterADateCriteria=Enter a date criteria @@ -199,6 +206,7 @@ Valid=Platný Approve=Schvalovat Disapprove=Neschváleno ReOpen=Znovu otevřít +OpenVerb=Otevřeno Upload=Nahrát ToLink=Odkaz Select=Vybrat @@ -216,8 +224,9 @@ UserGroup=User group UserGroups=User groups NoUserGroupDefined=Žádná uživatelská skupina není definována Password=Heslo -PasswordRetype=Zadejte znovu heslo +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Všimněte si, že v této demonstraci je mnoho funkcí / modulů zakázáno. +YourUserFile=Your user file Name=Název NameSlashCompany=Název / společnost Person=Osoba @@ -481,6 +490,7 @@ ActionsOnContact=Události pro tento kontakt / adresu ActionsOnContract=Události pro tuto smlouvu ActionsOnMember=Akce u tohoto uživatele ActionsOnProduct=Události týkající se tohoto produktu +ActionsOnAsset=Events for this fixed asset NActionsLate=%s pozdě ToDo=Dělat Completed=Dokončeno @@ -888,6 +898,9 @@ MassFilesArea=Plocha pro soubory postavený masových akcí ShowTempMassFilesArea=Show area souborů postavený masových akcí ConfirmMassDeletion=Hromadné smazání potvrzení ConfirmMassDeletionQuestion=Opravdu chcete odstranit vybraný záznam(y) %s? +ConfirmMassClone=Bulk clone confirmation +ConfirmMassCloneQuestion=Select project to clone to +ConfirmMassCloneToOneProject=Clone to project %s RelatedObjects=Související objekty ClassifyBilled=Označit jako účtováno ClassifyUnbilled=Zařadit nevyfakturované @@ -903,8 +916,8 @@ ExportFilteredList=Export filtrovaný seznam ExportList=seznam export ExportOptions=Možnosti exportu IncludeDocsAlreadyExported=Zahrnout již exportované dokumenty -ExportOfPiecesAlreadyExportedIsEnable=Export již exportovaných kusů je povolen -ExportOfPiecesAlreadyExportedIsDisable=Export již exportovaných kusů je zakázán +ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported +ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported AllExportedMovementsWereRecordedAsExported=Všechny exportované pohyby byly zaznamenány jako exportované NotAllExportedMovementsCouldBeRecordedAsExported=Ne všechny exportované pohyby nelze zaznamenat jako exportované Miscellaneous=Smíšený @@ -921,6 +934,7 @@ DirectDownloadInternalLink=Private download link PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file Download=Stažení DownloadDocument=Stáhnout dokument +DownloadSignedDocument=Download signed document ActualizeCurrency=Aktualizovat měnovou sazbu Fiscalyear=Fiskální rok ModuleBuilder=Tvůrce modulů a aplikací @@ -1046,6 +1060,7 @@ SearchIntoContracts=Smlouvy SearchIntoCustomerShipments=zásilky zákazník SearchIntoExpenseReports=Zpráva výdajů SearchIntoLeaves=Listy +SearchIntoKM=Knowledge base SearchIntoTickets=Vstupenky SearchIntoCustomerPayments=Customer payments SearchIntoVendorPayments=Platby dodavatele @@ -1117,6 +1132,7 @@ DeleteFileText=Opravdu chcete tento soubor odstranit? ShowOtherLanguages=Zobrazit další jazyky SwitchInEditModeToAddTranslation=Přepnutím v režimu úprav přidáte překlady do tohoto jazyka NotUsedForThisCustomer=Nepoužívá se pro tohoto zákazníka +NotUsedForThisVendor=Not used for this vendor AmountMustBePositive=Amount must be positive ByStatus=By status InformationMessage=Informace @@ -1137,15 +1153,29 @@ EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Pozdržen Civility=Civility -AffectTag=Affect Tag +AffectTag=Assign a Tag +AffectUser=Assign a User +SetSupervisor=Set the supervisor CreateExternalUser=Create external user -ConfirmAffectTag=Bulk Tag Affect -ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project/opportunity +TasksRole=Role assigned on each task (if used) +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=No tag type found for type of records +Rate=Sazba +SupervisorNotFound=Supervisor not found CopiedToClipboard=Copied to clipboard InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. ConfirmCancel=Are you sure you want to cancel EmailMsgID=Email MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Set to enabled SetToDisabled=Set to disabled ConfirmMassEnabling=mass enabling confirmation @@ -1174,9 +1204,21 @@ 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 +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned YourMessage=Your message YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. UrlToCheck=Url to check Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Interní uživatel +ExternalUser=Externí uživatel +NoSpecificContactAddress=No specific contact or address +NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate. +HideOnVCard=Hide %s +AddToContacts=Add address to my contacts +LastAccess=Last access +UploadAnImageToSeeAPhotoHere=Upload an image from the tab %s to see a photo here +LastPasswordChangeDate=Last password change date diff --git a/htdocs/langs/cs_CZ/members.lang b/htdocs/langs/cs_CZ/members.lang index 80249603e87..968cd40320b 100644 --- a/htdocs/langs/cs_CZ/members.lang +++ b/htdocs/langs/cs_CZ/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Další člen (jméno: %s, p ErrorUserPermissionAllowsToLinksToItselfOnly=Z bezpečnostních důvodů musíte mít oprávnění k úpravě všech uživatelů, abyste mohli člena propojit s uživatelem, který není vaším. SetLinkToUser=Odkaz na uživateli Dolibarr SetLinkToThirdParty=Odkaz na Dolibarr subjektu +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Seznam členů MembersListToValid=Seznam členů návrhu (bude ověřeno) @@ -34,7 +35,8 @@ DateSubscription=Date of membership DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID -WithoutSubscription=Without contribution +WithoutSubscription=Without membership +WaitingSubscription=Membership pending MemberId=Member Id MemberRef=Member Ref NewMember=Nový člen @@ -72,6 +74,12 @@ MemberTypeCanNotBeDeleted=Typ člena nelze smazat NewSubscription=Nový příspěvek NewSubscriptionDesc=Tento formulář umožňuje zaznamenat vaše předplatné jako nový člen nadace. Chcete-li obnovit předplatné (pokud je již členem), kontaktujte nadační místo místo e-mailem %s. Subscription=Contribution +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Trvání +GetMembershipButtonLabel=Join Subscriptions=Contributions SubscriptionLate=Pozdě SubscriptionNotReceived=Contribution never received @@ -136,7 +144,7 @@ CardContent=Obsah Vaší členské karty # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Chceme vám oznámit, že vaše žádost o členství byla přijata.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Supported values:
- Keep empty: Can link elements with any projects in the same company (default)
- "all": Can link elements with any projects, even projects of other companies
- A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
LatestProjects=Nejnovější projekty %s LatestModifiedProjects=Nejnovější %smodifikované projekty OtherFilteredTasks=Další filtrované úkoly @@ -259,7 +263,7 @@ TimeSpentInvoiced=Čas strávený účtováním TimeSpentForIntervention=Strávený čas TimeSpentForInvoice=Strávený čas OneLinePerUser=Jeden řádek na uživatele -ServiceToUseOnLines=Služba pro použití na tratích +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Faktura %s byla vygenerována z času stráveného na projektu InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project ProjectBillTimeDescription=Zkontrolujte, zda zadáváte časový rozvrh úkolů projektu A máte v úmyslu vygenerovat faktury z časového rozvrhu, abyste fakturovali zákazníkovi projektu (nekontrolujte, zda máte v úmyslu vytvořit fakturu, která není založena na zadaných časových rozvrzích). Poznámka: Chcete-li vygenerovat fakturu, přejděte na kartu „Čas strávený“ projektu a vyberte řádky, které chcete zahrnout. @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Zisk se vypočítá pomocí AddPersonToTask=Add also to tasks UsageOrganizeEvent=Usage: Event Organization PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Classify project as closed when all its tasks are completed (100%% progress) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks at 100 %% progress won't be affected: you will have to close them manually. This option only affects open projects. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them ProjectTasksWithoutTimeSpent=Project tasks without time spent FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also send us an email directly to %s. @@ -294,3 +298,4 @@ EnablePublicLeadForm=Enable the public form for contact NewLeadbyWeb=Your message or request has been recorded. We will answer or contact your soon. NewLeadForm=New contact form LeadFromPublicForm=Online lead from public form +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/cs_CZ/propal.lang b/htdocs/langs/cs_CZ/propal.lang index fa142eba82f..e100ebcd17c 100644 --- a/htdocs/langs/cs_CZ/propal.lang +++ b/htdocs/langs/cs_CZ/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Žádné návrhy nabídek CopyPropalFrom=Vytvořit obchodní nabídku zkopírováním existující nabídky CreateEmptyPropal=Vytvoření prázdného komerčního návrhu nebo ze seznamu produktů / služeb DefaultProposalDurationValidity=Doba platnosti výchozí obchodní nabídky (ve dnech) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Použijte kontakt / adresu s typem "Návrh na další kontakt", pokud je definována namísto adresy subjektu jako adresy příjemce návrhu ConfirmClonePropal=Jste si jisti, že chcete kopírovat obchodní nabídku %s ? ConfirmReOpenProp=Jste si jisti, že chcete otevřít zpět obchodní nabídku %s ? @@ -64,36 +65,54 @@ AvailabilityPeriod=Dostupné zpoždění SetAvailability=Nastavte si dostupné zpoždění AfterOrder=po objednání OtherProposals=Další nabídky + ##### Availability ##### AvailabilityTypeAV_NOW=Bezprostřední AvailabilityTypeAV_1W=1 týden AvailabilityTypeAV_2W=2 týdny AvailabilityTypeAV_3W=3 týdny AvailabilityTypeAV_1M=1 měsíc -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Zástupce následující vypracované nabídky TypeContact_propal_external_BILLING=Fakturační kontakt zákazníka TypeContact_propal_external_CUSTOMER=Kontakt se zákazníkem pro následující vypracované nabídky TypeContact_propal_external_SHIPPING=Zákaznický kontakt pro doručení + # Document models -DocModelAzurDescription=Kompletní návrhový model (stará implementace azurové šablony) -DocModelCyanDescription=Kompletní návrhový model +CantBeNoSign=cannot be set not signed +CaseFollowedBy=Případ následovaný +ConfirmMassNoSignature=Bulk Not signed confirmation +ConfirmMassNoSignatureQuestion=Are you sure you want to set not signed the selected records ? +ConfirmMassSignature=Bulk Signature confirmation +ConfirmMassSignatureQuestion=Are you sure you want to sign the selected records ? +ConfirmMassValidation=Bulk Validate confirmation +ConfirmMassValidationQuestion=Are you sure you want to validate the selected records ? +ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +ContractSigned=Contract signed +DefaultModelPropalClosed=Výchozí šablona při uzavírání obchodní nabídky (nevyfakturované) DefaultModelPropalCreate=Tvorba z výchozí šablony DefaultModelPropalToBill=Výchozí šablona při uzavírání obchodní nabídky (bude se fakturovat) -DefaultModelPropalClosed=Výchozí šablona při uzavírání obchodní nabídky (nevyfakturované) +DocModelAzurDescription=Kompletní návrhový model (stará implementace azurové šablony) +DocModelCyanDescription=Kompletní návrhový model +FichinterSigned=Intervention signed +IdProduct=Product ID +IdProposal=Proposal ID +IsNotADraft=is not a draft +LineBuyPriceHT=Buy Price Amount net of tax for line +NoSign=Odmítnout +NoSigned=set not signed +PassedInOpenStatus=has been validated +PropalAlreadyRefused=Proposal already refused +PropalAlreadySigned=Proposal already accepted +PropalRefused=Proposal refused +PropalSigned=Proposal accepted ProposalCustomerSignature=Písemný souhlas, razítko firmy, datum a podpis ProposalsStatisticsSuppliers=Statistika návrhů dodavatelů -CaseFollowedBy=Případ následovaný -SignedOnly=Podepsáno pouze -IdProposal=Proposal ID -IdProduct=Product ID -PrParentLine=Proposal Parent Line -LineBuyPriceHT=Buy Price Amount net of tax for line -SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign -PropalAlreadySigned=Proposal already accepted -PropalAlreadyRefused=Proposal already refused -PropalSigned=Proposal accepted -PropalRefused=Proposal refused -ConfirmRefusePropal=Are you sure you want to refuse this commercial proposal? +SignContract=Sign contract +SignFichinter=Sign intervention +SignPropal=Accept proposal +Signed=signed +SignedOnly=Podepsáno pouze diff --git a/htdocs/langs/cs_CZ/recruitment.lang b/htdocs/langs/cs_CZ/recruitment.lang index 745df2ae9f8..96d3a9b9b17 100644 --- a/htdocs/langs/cs_CZ/recruitment.lang +++ b/htdocs/langs/cs_CZ/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Email recruiter ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used NewCandidature=New application ListOfCandidatures=List of applications -RequestedRemuneration=Requested remuneration -ProposedRemuneration=Proposed remuneration +Remuneration=Mzda +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract proposed ContractSigned=Contract signed ContractRefused=Contract refused RecruitmentCandidature=Application JobPositions=Job positions RecruitmentCandidatures=Applications -InterviewToDo=Interview to do +InterviewToDo=Contacts to follow AnswerCandidature=Application answer YourCandidature=Your application YourCandidatureAnswerMessage=Thanks you for your application.
... @@ -74,3 +75,5 @@ JobClosedTextCanceled=The job position is closed. ExtrafieldsJobPosition=Complementary attributes (job positions) ExtrafieldsApplication=Complementary attributes (job applications) MakeOffer=Make an offer +WeAreRecruiting=We are recruiting. This is a list of open positions to be filled... +NoPositionOpen=No positions open at the moment diff --git a/htdocs/langs/cs_CZ/salaries.lang b/htdocs/langs/cs_CZ/salaries.lang index 06a31c700c0..9ef5ab93164 100644 --- a/htdocs/langs/cs_CZ/salaries.lang +++ b/htdocs/langs/cs_CZ/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Účtovací účet používaný pro třetí strany -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Účelový účet určený na uživatelské kartě bude použit pouze pro účetnictví společnosti Subledger. Ten bude použit pro hlavní knihu a jako výchozí hodnota účtování společnosti Subledger, pokud není určen uživatelský účtovací účet pro uživatele. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Účtovací účet je výchozí pro mzdové platby CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary Salary=Mzda @@ -24,3 +24,4 @@ SalariesStatistics=Statistika platů SalariesAndPayments=Platy a platby ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? FillFieldFirst=Fill employee field first +UpdateAmountWithLastSalary=Set amount with last salary diff --git a/htdocs/langs/cs_CZ/stripe.lang b/htdocs/langs/cs_CZ/stripe.lang index dfc420fc999..7c2cb64cd34 100644 --- a/htdocs/langs/cs_CZ/stripe.lang +++ b/htdocs/langs/cs_CZ/stripe.lang @@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Webhook live klíč ONLINE_PAYMENT_WAREHOUSE=Sklad, který se má použít k poklesu akcií, když je hotovo on-line platba
(TODO Pokud se volba k poklesu zásob uskuteční na akci na faktuře a on-line platba vygeneruje fakturu?) StripeLiveEnabled=Stripe live povoleno (jinak testovací režim / režim sandbox) StripeImportPayment=Platby importu Stripe -ExampleOfTestCreditCard=Příklad kreditní karty pro test: %s (platný), %s (chyba CVC), %s (uplynula), %s (poplatek selže) +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +ExampleOfTestBankAcountForSEPA=Example of bank account BAN for direct debit test: %s StripeGateways=Brána Stripe OAUTH_STRIPE_TEST_ID=Připojení klienta Stripe Connect (ca _...) OAUTH_STRIPE_LIVE_ID=Připojení klienta Stripe Connect (ca _...) @@ -61,6 +62,7 @@ DeleteACard=Smazat kartu ConfirmDeleteCard=Opravdu chcete tuto kreditní nebo debetní kartu smazat? CreateCustomerOnStripe=Vytvořte zákazníka na Stripe CreateCardOnStripe=Vytvořte kartu na Stripe +CreateBANOnStripe=Create bank on Stripe ShowInStripe=Zobrazit ve Stripe StripeUserAccountForActions=Uživatelský účet, který se má používat pro e-mailové upozornění na některé události Stripe (Stripe výplaty) StripePayoutList=Seznam páskových výplat @@ -69,3 +71,8 @@ ToOfferALinkForLiveWebhook=Odkaz na nastavení Stripe WebHook pro volání IPN ( PaymentWillBeRecordedForNextPeriod=Platba bude zaznamenána pro další období. ClickHereToTryAgain= Klikněte zde a zkuste to znovu ... CreationOfPaymentModeMustBeDoneFromStripeInterface=Vzhledem k přísným pravidlům pro ověřování zákazníků musí být karta vytvořena z backoffice Stripe. Klepnutím sem zapnete záznam zákazníka Stripe: %s +STRIPE_CARD_PRESENT=Card Present for Stripe Terminals +TERMINAL_LOCATION=Location (address) for Stripe Terminals +RequestDirectDebitWithStripe=Request Direct Debit with Stripe +STRIPE_SEPA_DIRECT_DEBIT=Enable the Direct Debit payments through Stripe + diff --git a/htdocs/langs/cs_CZ/ticket.lang b/htdocs/langs/cs_CZ/ticket.lang index 5994bc6752a..93a2528ce94 100644 --- a/htdocs/langs/cs_CZ/ticket.lang +++ b/htdocs/langs/cs_CZ/ticket.lang @@ -26,7 +26,9 @@ Permission56002=Změnit vstupenky Permission56003=Smazat vstupenky Permission56004=Správa vstupenek Permission56005=Viz vstupenky všech subjektů (neplatí pro externí uživatele, vždy se omezují na subjekt, na který se vztahují) +Permission56006=Export tickets +Tickets=Vstupenky TicketDictType=Vstupenka - Typy TicketDictCategory=Vstupenka - skupiny TicketDictSeverity=Vstupenka - závažnosti @@ -60,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Externí přispěvatel OriginEmail=Reporter Email Notify_TICKET_SENTBYMAIL=Odeslat e-mailem zprávu o lince +ExportDataset_ticket_1=Vstupenky + # Status Read=Číst Assigned=Přidělené @@ -90,8 +94,8 @@ TicketPublicAccess=Veřejné rozhraní nevyžadující identifikaci je k dispozi TicketSetupDictionaries=Typ vstupenky, závažnosti a analytické kódy lze konfigurovat ze slovníků TicketParamModule=Nastavení proměnné modulu TicketParamMail=Nastavení e-mailu -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Textová zpráva odeslaná po vytvoření vstupenky @@ -99,6 +103,8 @@ TicketNewEmailBodyHelp=Zde zadaný text bude vložen do e-mailu s potvrzením vy TicketParamPublicInterface=Nastavení veřejného rozhraní TicketsEmailMustExist=Chcete-li vytvořit letenku, požadujte existující e-mailovou adresu TicketsEmailMustExistHelp=Ve veřejném rozhraní musí být e-mailová adresa již vyplněna v databázi, aby se vytvořil nový lístek +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Veřejné rozhraní TicketUrlPublicInterfaceLabelAdmin=Alternativní adresa URL pro veřejné rozhraní TicketUrlPublicInterfaceHelpAdmin=Je možné definovat alias na webovém serveru a zpřístupnit tak veřejné rozhraní s jinou adresou URL (server musí na této nové adrese URL fungovat jako proxy server) @@ -147,6 +153,8 @@ TicketsAutoNotifyCloseHelp=When closing a ticket, you will be proposed to send a TicketWrongContact=Provided contact is not part of current ticket contacts. Email not sent. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +198,7 @@ TicketAssigned=Vstupenka je nyní přiřazena TicketChangeType=Změnit typ TicketChangeCategory=Změňte analytický kód TicketChangeSeverity=Změnit závažnost -TicketAddMessage=přidat zprávu -AddMessage=přidat zprávu +TicketAddMessage=Add private message MessageSuccessfullyAdded=Přidána vstupenka TicketMessageSuccessfullyAdded=Zpráva byla úspěšně přidána TicketMessagesList=Seznam zpráv @@ -202,8 +209,8 @@ TicketSeverity=Vážnost ShowTicket=Viz lístek RelatedTickets=Související vstupenky TicketAddIntervention=Vytvořit intervenci -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Close|Solve a ticket ConfirmCloseAticket=Potvrďte uzavření lístku ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' @@ -217,18 +224,17 @@ SendMessageByEmail=Poslat zprávu e-mailem TicketNewMessage=Nová zpráva ErrorMailRecipientIsEmptyForSendTicketMessage=Příjemce je prázdný. Neposílat žádné e-maily TicketGoIntoContactTab=Přejděte na kartu Kontakty a vyberte je -TicketMessageMailIntro=Úvod +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Tento text bude přidán pouze na začátek e-mailu a nebude uložen. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
A new answer has been added to a ticket that you follow. Here is the message:
TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Podpis -TicketMessageMailSignatureHelp=Tento text je přidán pouze na konci e-mailu a nebude uložen. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Podpis e-mailu s odpovědí -TicketMessageMailSignatureHelpAdmin=Tento text bude vložen za zprávu s odpovědí. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Tento text bude vložen za zprávu s odpovědí. TicketMessageHelp=Pouze tento text bude uložen do seznamu zpráv na kartě lístků. TicketMessageSubstitutionReplacedByGenericValues=Substituční proměnné jsou nahrazeny obecnými hodnotami. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Čas uplynul od TicketTimeToRead=Čas uplynul před čtením TicketTimeElapsedBeforeSince=Time elapsed before / since @@ -239,6 +245,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Nová zpráva byla zveřejněna na l TicketAssignedToYou=Lístek přiřazen TicketAssignedEmailBody=Byl vám přidělen lístek # %s by %s MarkMessageAsPrivate=Označit zprávu jako soukromou +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Tato zpráva se nezobrazí externím uživatelům TicketEmailOriginIssuer=Emitent při vzniku jízdenek InitialMessage=Počáteční zpráva @@ -294,7 +301,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Průběh vstupenky můžete zobrazit v k TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Neodpovídejte prosím přímo na tento e-mail! Pomocí odkazu odpovíte do rozhraní. TicketPublicInfoCreateTicket=Tento formulář vám umožňuje zaznamenat si lístek podpory v našem systému řízení. -TicketPublicPleaseBeAccuratelyDescribe=Popište prosím problém přesně. Poskytněte co nejvíce informací, abychom mohli správně identifikovat váš požadavek. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Zadejte ID sledování trasy TicketTrackId=ID veřejného sledování OneOfTicketTrackId=Jedno z vašich ID sledování diff --git a/htdocs/langs/cs_CZ/users.lang b/htdocs/langs/cs_CZ/users.lang index ac1ac080612..2ac189e660f 100644 --- a/htdocs/langs/cs_CZ/users.lang +++ b/htdocs/langs/cs_CZ/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Odstranit ze skupiny PasswordChangedAndSentTo=Heslo změněno a poslán na %s. PasswordChangeRequest=Požadavek na změnu hesla pro %s PasswordChangeRequestSent=Žádost o změnu hesla %s zaslána na %s. -IfLoginExistPasswordRequestSent=Pokud je toto přihlášení platným účtem, byl zaslán e-mail k obnovení hesla. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Pokud je tento e-mail platným účtem, byl zaslán e-mail k obnovení hesla. ConfirmPasswordReset=Potvrďte resetování hesla MenuUsersAndGroups=Uživatelé a skupiny @@ -66,9 +66,9 @@ LinkedToDolibarrUser=Link to user LinkedToDolibarrThirdParty=Link to third party CreateDolibarrLogin=Vytvoření uživatele CreateDolibarrThirdParty=Vytvořit třetí stranu -LoginAccountDisableInDolibarr=Účet byl zakázán v Dolibarr. +LoginAccountDisableInDolibarr=Account disabled in Dolibarr +PASSWORDInDolibarr=Password modified in Dolibarr UsePersonalValue=Používejte osobní hodnotu -InternalUser=Interní uživatel ExportDataset_user_1=Uživatelé a jejich vlastnosti DomainUser=Doménový uživatel %s Reactivate=Reaktivace @@ -128,3 +128,8 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows +UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book. +EnablePublicVirtualCard=Enable the public virtual user card +PublicVirtualCardUrl=Public virtual user card diff --git a/htdocs/langs/cs_CZ/website.lang b/htdocs/langs/cs_CZ/website.lang index a5c50c6b52a..f4e5557457d 100644 --- a/htdocs/langs/cs_CZ/website.lang +++ b/htdocs/langs/cs_CZ/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kód +WebsiteName=Name of the website WebsiteSetupDesc=Vytvořte zde webové stránky, které chcete používat. Poté přejděte do nabídky Webové stránky a upravte je. DeleteWebsite=Odstranit web ConfirmDeleteWebsite=Opravdu chcete tento web odstranit? Všechny její stránky a obsah budou také odstraněny. Nahrané soubory (jako do adresáře médií, modul ECM, ...) zůstanou. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Přidání v dolní části hlavičky HTML (společné pro v WEBSITE_ROBOT=Soubor pro roboty (soubor robots.txt) WEBSITE_HTACCESS=Soubor .htaccess WEBSITE_MANIFEST_JSON=Soubor manifest.json webové stránky -WEBSITE_README=Soubor README.md WEBSITE_KEYWORDSDesc=Hodnoty oddělte čárkou -EnterHereLicenseInformation=Sem zadejte metadata nebo licenční informace a vyplňte soubor README.md. Pokud distribuujete svůj web jako šablonu, bude soubor zahrnut do temptátového balíčku. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=Záhlaví HTML (pouze pro tuto stránku) PageNameAliasHelp=Název nebo alias stránky.
Tento alias je také používán k vytvoření adresy URL při běhu webových stránek z virtuálního hostitele webového serveru (jako Apacke, Nginx, ...). Pomocí tlačítka " %s " upravte tento alias. EditTheWebSiteForACommonHeader=Poznámka: Pokud chcete definovat osobní hlavičku pro všechny stránky, upravte záhlaví na úrovni webu namísto na stránce / kontejneru. @@ -42,10 +43,12 @@ ViewPageInNewTab=Zobrazit stránku v nové kartě SetAsHomePage=Nastavit jako domovskou stránku RealURL=real URL ViewWebsiteInProduction=Pohled webové stránky s použitím domácí adresy URL +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Použit Apache / Nginx / ...
vytvořit na svůj webový server (Apache, Nginx, ...) a vyhrazený virtuálního hostitele s PHP povoleno a Kořenový adresář na
%s ExampleToUseInApacheVirtualHostConfig=Příklad použití v nastavení virtuálního hostitele Apache: YouCanAlsoTestWithPHPS=  Použití s vloženým serverem PHP
Při vývoji prostředí můžete upřednostňovat testování webu pomocí integrovaného webového serveru PHP (PHP 5.5 vyžadováno) spuštěním
php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP= Provozujte svůj web s jiným poskytovatelem hostingu Dolibarr
Pokud nemáte webový server jako Apache nebo NGinx dostupný na internetu, můžete exportovat a importovat webový server na jinou instanci Dolibarr poskytovanou jiným poskytovatelem hostingu Dolibarr. integrace s modulem webových stránek. Seznam některých poskytovatelů hostingu Dolibarr najdete na https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider
If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
%s ReadPerm=Číst WritePerm=Zápis @@ -60,7 +63,7 @@ YouCanEditHtmlSourceckeditor=Zdrojový kód HTML můžete upravit pomocí tlač YouCanEditHtmlSource=
You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

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

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

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

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

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

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

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

Use a ; char as separator to extract or set several properties. OpeningHours=Oriau agor OpeningHoursDesc=Nodwch yma oriau agor arferol eich cwmni. ResourceSetup=Ffurfweddu modiwl Adnodd @@ -2171,6 +2203,7 @@ ShowProjectLabel=Label Prosiect PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Include alias in thirdparty name THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty +PDFIn2Languages=Show labels into PDF in 2 different languages PDF_USE_ALSO_LANGUAGE_CODE=Os ydych chi am i rai testunau yn eich PDF gael eu dyblygu mewn 2 iaith wahanol yn yr un PDF a gynhyrchir, rhaid i chi osod yma yr ail iaith hon felly bydd PDF a gynhyrchir yn cynnwys 2 iaith wahanol ar yr un dudalen, yr un a ddewisir wrth gynhyrchu PDF a'r un hon ( dim ond ychydig o dempledi PDF sy'n cefnogi hyn). Cadwch yn wag am 1 iaith fesul PDF. PDF_USE_A=Cynhyrchwch ddogfennau PDF gyda fformat PDF/A yn lle fformat PDF defaut FafaIconSocialNetworksDesc=Rhowch god eicon FontAwesome yma. Os nad ydych chi'n gwybod beth yw FontAwesome, gallwch ddefnyddio'r llyfr cyfeiriadau gwerth generig. @@ -2199,12 +2232,12 @@ MailToPartnership=Partneriaeth AGENDA_EVENT_DEFAULT_STATUS=Statws digwyddiad diofyn wrth greu digwyddiad o'r ffurflen YouShouldDisablePHPFunctions=Dylech analluogi swyddogaethau PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Ac eithrio os oes angen i chi redeg gorchmynion system mewn cod arfer, dylech analluogi swyddogaethau PHP -PHPFunctionsRequiredForCLI=At ddiben cragen (fel gwneud copi wrth gefn o swydd wedi'i drefnu neu redeg rhaglen anitivurs), rhaid i chi gadw swyddogaethau PHP +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=Ni chanfuwyd unrhyw ffeiliau neu gyfeiriaduron ysgrifenadwy o'r rhaglenni cyffredin yn eich cyfeiriadur gwraidd (Da) RecommendedValueIs=Argymhellir: %s Recommended=Argymhellir NotRecommended=Heb ei argymell -ARestrictedPath=Rhywfaint o lwybr cyfyngedig +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Gwiriwch am ddiweddariadau modiwlau allanol CheckForModuleUpdateHelp=Bydd y weithred hon yn cysylltu â golygyddion modiwlau allanol i wirio a oes fersiwn newydd ar gael. ModuleUpdateAvailable=Mae diweddariad ar gael @@ -2212,6 +2245,7 @@ NoExternalModuleWithUpdate=Ni chanfuwyd unrhyw ddiweddariadau ar gyfer modiwlau SwaggerDescriptionFile=Ffeil ddisgrifiad Swagger API (i'w ddefnyddio gyda redoc er enghraifft) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Rydych wedi galluogi WS API anghymeradwy. Dylech ddefnyddio REST API yn lle hynny. RandomlySelectedIfSeveral=Wedi'i ddewis ar hap os oes sawl llun ar gael +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Mae cyfrinair cronfa ddata wedi'i guddio yn y ffeil conf DatabasePasswordNotObfuscated=NID yw cyfrinair cronfa ddata wedi'i guddio yn y ffeil conf APIsAreNotEnabled=Nid yw modiwlau APIs wedi'u galluogi @@ -2251,7 +2285,7 @@ LateWarningAfter=Rhybudd "hwyr" ar ôl TemplateforBusinessCards=Templed ar gyfer cerdyn busnes mewn maint gwahanol InventorySetup= Gosod Rhestr ExportUseLowMemoryMode=Defnyddiwch fodd cof isel -ExportUseLowMemoryModeHelp=Defnyddiwch y modd cof isel i weithredu exec y dymp (cywasgu yn cael ei wneud trwy bibell yn hytrach nag i mewn i'r cof PHP). Nid yw'r dull hwn yn caniatáu gwirio bod ffeil wedi'i chwblhau ac ni ellir adrodd neges gwall os yw'n methu. +ExportUseLowMemoryModeHelp=Use the low memory mode to generate the dump file (compression is done through a pipe instead of into the PHP memory). This method does not allow to check that the file is complete and error message can't be reported if it fails. Use it if you experience not enough memory errors. ModuleWebhookName = Webhook ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL @@ -2275,7 +2309,49 @@ IconOnly=Icon only - Text on tooltip only INVOICE_ADD_ZATCA_QR_CODE=Show the ZATCA QR code on invoices INVOICE_ADD_ZATCA_QR_CODEMore=Some Arabic countries need this QR Code on their invoices INVOICE_ADD_SWISS_QR_CODE=Show the swiss QR-Bill code on invoices +INVOICE_SHOW_SHIPPING_ADDRESS=Show shipping address +INVOICE_SHOW_SHIPPING_ADDRESSMore=Compulsory mention for France UrlSocialNetworksDesc=Url link of social network. Use {socialid} for the variable part that contains the social network ID. IfThisCategoryIsChildOfAnother=If this category is a child of another one +DarkThemeMode=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes NoName=No name +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +OauthNotAvailableForAllAndHadToBeCreatedBefore=OAUTH2 authentication is not available for all hosts, and a token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_OAUTH_SERVICE=OAUTH2 authentication service +DontForgetCreateTokenOauthMod=A token with the right permissions must have been created upstream with the OAUTH module +MAIN_MAIL_SMTPS_AUTH_TYPE=Authentification method +UsePassword=Use a password +UseOauth=Use a OAUTH token +Images=Images +MaxNumberOfImagesInGetPost=Max number of images allowed in a HTML field submitted in a form +MaxNumberOfPostOnPublicPagesByIP=Max number of posts on public pages with the same IP address in a month +CIDLookupURL=The module brings an URL that can be used by an external tool to get the name of a thirdparty or contact from its phone number. URL to use is: +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s +TriggerCodes=Triggerable events +TriggerCodeInfo=Enter here the trigger code(s) that must generate a post of a web request (only external URL are allowed). You can enter several trigger codes separated by a comma. +EditableWhenDraftOnly=If unchecked, the value can only be modified when object has a draft status +CssOnEdit=Css on edit pages +CssOnView=Css on view pages +CssOnList=Css on list pages +HelpCssOnEditDesc=The Css used when editing the field.
Example: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=The Css used when viewing the field. +HelpCssOnListDesc=The Css used when field is inside a list table.
Example: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Hide the quantity ordered on the generated documents for receptions +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Show the price on the generated documents for receptions +WarningDisabled=Warning disabled +LimitsAndMitigation=Access limits and mitigation +DesktopsOnly=Desktops only +DesktopsAndSmartphones=Desktops et smartphones +AllowOnlineSign=Allow online signing +AllowExternalDownload=Allow external download (without login, using a shared link) +DeadlineDayVATSubmission=Deadline day for vat submission on the next month +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s diff --git a/htdocs/langs/cy_GB/categories.lang b/htdocs/langs/cy_GB/categories.lang index 298fa93b3b9..84ccd411a11 100644 --- a/htdocs/langs/cy_GB/categories.lang +++ b/htdocs/langs/cy_GB/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Nid yw'r aelod hwn mewn unrhyw dagiau/categorïau ContactHasNoCategory=Nid yw'r cyswllt hwn mewn unrhyw dagiau/categorïau ProjectHasNoCategory=Nid yw'r prosiect hwn mewn unrhyw dagiau/categorïau ClassifyInCategory=Ychwanegu at y tag/categori +RemoveCategory=Remove category NotCategorized=Heb dag/categori CategoryExistsAtSameLevel=Mae'r categori hwn eisoes yn bodoli gyda'r cyf ContentsVisibleByAllShort=Cynnwys yn weladwy gan bawb @@ -67,6 +68,7 @@ StockCategoriesShort=Tagiau/categorïau warws ThisCategoryHasNoItems=Nid yw'r categori hwn yn cynnwys unrhyw eitemau. CategId=ID tag/categori ParentCategory=Tag rhiant/categori +ParentCategoryID=ID of parent tag/category ParentCategoryLabel=Label y tag rhiant/categori CatSupList=Rhestr o dagiau/categorïau gwerthwyr CatCusList=Rhestr o gwsmeriaid/tagiau rhagolygon/categorïau @@ -86,7 +88,7 @@ DeleteFromCat=Tynnwch o'r tagiau/categori ExtraFieldsCategories=Priodoleddau cyflenwol CategoriesSetup=Gosod tagiau/categorïau CategorieRecursiv=Cysylltwch â thag/categori rhiant yn awtomatig -CategorieRecursivHelp=Os yw'r opsiwn ymlaen, pan fyddwch chi'n ychwanegu cynnyrch i is-gategori, bydd cynnyrch hefyd yn cael ei ychwanegu at y categori rhiant. +CategorieRecursivHelp=If option is on, when you add an object into a subcategory, the object will also be added into the parent categories. AddProductServiceIntoCategory=Ychwanegwch y cynnyrch/gwasanaeth canlynol AddCustomerIntoCategory=Neilltuo categori i gwsmer AddSupplierIntoCategory=Neilltuo categori i gyflenwr @@ -95,7 +97,9 @@ ShowCategory=Dangos tag/categori ByDefaultInList=Yn ddiofyn yn y rhestr ChooseCategory=Dewiswch gategori StocksCategoriesArea=Categorïau Warws +TicketsCategoriesArea=Tickets Categories ActionCommCategoriesArea=Categorïau Digwyddiad WebsitePagesCategoriesArea=Categorïau Cynhwysydd Tudalen KnowledgemanagementsCategoriesArea=Categorïau erthygl KM UseOrOperatorForCategories=Defnyddiwch weithredwr 'OR' ar gyfer categorïau +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/cy_GB/commercial.lang b/htdocs/langs/cy_GB/commercial.lang index 4d1455d274f..7682056b879 100644 --- a/htdocs/langs/cy_GB/commercial.lang +++ b/htdocs/langs/cy_GB/commercial.lang @@ -74,8 +74,16 @@ StatusProsp=Statws rhagolygon DraftPropals=Cynigion masnachol drafft NoLimit=Dim terfyn ToOfferALinkForOnlineSignature=Dolen ar gyfer llofnod ar-lein -WelcomeOnOnlineSignaturePage=Croeso i'r dudalen i dderbyn cynigion masnachol gan %s -ThisScreenAllowsYouToSignDocFrom=Mae'r sgrin hon yn caniatáu ichi dderbyn a llofnodi, neu wrthod, dyfynbris/cynnig masnachol -ThisIsInformationOnDocumentToSign=Gwybodaeth yw hon ar ddogfen i'w derbyn neu ei gwrthod +WelcomeOnOnlineSignaturePageProposal=Welcome to the page to accept commercial proposals from %s +WelcomeOnOnlineSignaturePageContract=Welcome to %s Contract PDF Signing Page +WelcomeOnOnlineSignaturePageFichinter=Welcome to %s Intervention PDF Signing Page +ThisScreenAllowsYouToSignDocFromProposal=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFromContract=This screen allow you to sign contract on PDF format online. +ThisScreenAllowsYouToSignDocFromFichinter=This screen allow you to sign intervention on PDF format online. +ThisIsInformationOnDocumentToSignProposal=This is information on document to accept or refuse +ThisIsInformationOnDocumentToSignContract=This is information on contract to sign +ThisIsInformationOnDocumentToSignFichinter=This is information on intervention to sign SignatureProposalRef=Llofnod y dyfynbris/cynnig masnachol %s +SignatureContractRef=Signature of contract %s +SignatureFichinterRef=Signature of intervention %s FeatureOnlineSignDisabled=Analluogwyd nodwedd ar gyfer llofnodi ar-lein neu ddogfen a gynhyrchwyd cyn i'r nodwedd gael ei galluogi diff --git a/htdocs/langs/cy_GB/compta.lang b/htdocs/langs/cy_GB/compta.lang index 9ae8b92d461..10d7388a382 100644 --- a/htdocs/langs/cy_GB/compta.lang +++ b/htdocs/langs/cy_GB/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balans (cyn) Balance=Cydbwysedd Debit=Debyd Credit=Credyd +AccountingDebit=Debit +AccountingCredit=Credit Piece=Dogfen Cyfrifo. AmountHTVATRealReceived=Net wedi'i gasglu AmountHTVATRealPaid=Talwyd net @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Nid yw'r adroddiad o'r Trosi TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Nid yw'r adroddiad ar y Trosiant a gasglwyd fesul cyfradd treth gwerthiant ar gael. Mae'r adroddiad hwn ar gael ar gyfer trosiant a anfonebwyd yn unig. CalculationMode=Modd cyfrifo AccountancyJournal=Dyddiadur cod cyfrifyddu -ACCOUNTING_VAT_SOLD_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer TAW ar werthiannau (defnyddir os nad yw wedi'i ddiffinio wrth osod geiriadur TAW) -ACCOUNTING_VAT_BUY_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer TAW ar bryniannau (defnyddir os nad yw wedi'i ddiffinio ar osod geiriadur TAW) -ACCOUNTING_VAT_PAY_ACCOUNT=Cyfrif cyfrifo yn ddiofyn ar gyfer talu TAW -ACCOUNTING_ACCOUNT_CUSTOMER=Cyfrif cyfrifo a ddefnyddir ar gyfer trydydd partïon cwsmeriaid +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Bydd y cyfrif cyfrifyddu pwrpasol a ddiffinnir ar gerdyn trydydd parti yn cael ei ddefnyddio ar gyfer cyfrifyddu Subledger yn unig. Bydd yr un hwn yn cael ei ddefnyddio ar gyfer y Cyfriflyfr Cyffredinol ac fel gwerth rhagosodedig cyfrifyddu Subledger os nad yw cyfrif cyfrifyddu cwsmer penodol ar drydydd parti wedi'i ddiffinio. -ACCOUNTING_ACCOUNT_SUPPLIER=Cyfrif cyfrifo a ddefnyddir ar gyfer trydydd parti gwerthwr +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Bydd y cyfrif cyfrifyddu pwrpasol a ddiffinnir ar gerdyn trydydd parti yn cael ei ddefnyddio ar gyfer cyfrifyddu Subledger yn unig. Bydd yr un hwn yn cael ei ddefnyddio ar gyfer y Cyfriflyfr Cyffredinol ac fel gwerth rhagosodedig cyfrifyddu Subledger os nad yw cyfrif cyfrifyddu gwerthwr pwrpasol ar drydydd parti wedi'i ddiffinio. ConfirmCloneTax=Cadarnhewch glon treth gymdeithasol/gyllidol ConfirmCloneVAT=Cadarnhau clon datganiad TAW @@ -300,3 +302,4 @@ InvoiceToPay15Days=I dalu (15 i 30 diwrnod) InvoiceToPay30Days=I dalu (> 30 diwrnod) ConfirmPreselectAccount=Rhag-ddewis cod cyfrifeg ConfirmPreselectAccountQuestion=A ydych yn siŵr eich bod am ragddewis y llinellau %s a ddewiswyd gyda'r cod cyfrifeg hwn ? +AmountPaidMustMatchAmountOfDownPayment=Amount paid must match amount of down payment diff --git a/htdocs/langs/cy_GB/contracts.lang b/htdocs/langs/cy_GB/contracts.lang index 5b2df05bc7a..a337122df87 100644 --- a/htdocs/langs/cy_GB/contracts.lang +++ b/htdocs/langs/cy_GB/contracts.lang @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=Ydych chi'n siŵr eich bod am ddileu'r llinell gontrac MoveToAnotherContract=Symud gwasanaeth i gontract arall. ConfirmMoveToAnotherContract=Dewisais gontract targed newydd a chadarnhaf fy mod am symud y gwasanaeth hwn i'r contract hwn. ConfirmMoveToAnotherContractQuestion=Dewiswch i ba gontract presennol (o'r un trydydd parti), rydych chi am symud y gwasanaeth hwn iddo? -PaymentRenewContractId=Adnewyddu'r llinell gontract (rhif %s) +PaymentRenewContractId=Renew contract %s (service %s) ExpiredSince=Dyddiad dod i ben NoExpiredServices=Dim gwasanaethau gweithredol wedi dod i ben ListOfServicesToExpireWithDuration=Rhestr o Wasanaethau i ddod i ben mewn %s diwrnod diff --git a/htdocs/langs/cy_GB/cron.lang b/htdocs/langs/cy_GB/cron.lang index c91962f9317..0f466dd0d8c 100644 --- a/htdocs/langs/cy_GB/cron.lang +++ b/htdocs/langs/cy_GB/cron.lang @@ -26,7 +26,7 @@ CronCommand=Gorchymyn CronList=Swyddi wedi'u hamserlennu CronDelete=Dileu swyddi a drefnwyd CronConfirmDelete=A ydych yn siŵr eich bod am ddileu'r swyddi hyn sydd wedi'u hamserlennu? -CronExecute=Lansio swydd a drefnwyd +CronExecute=Launch now CronConfirmExecute=A ydych yn siŵr eich bod am gyflawni'r swyddi hyn sydd wedi'u hamserlennu nawr? CronInfo=Mae modiwl swydd wedi'i amserlennu yn caniatáu amserlennu swyddi i'w gweithredu'n awtomatig. Gellir cychwyn swyddi â llaw hefyd. CronTask=Job @@ -58,7 +58,7 @@ CronNote=Sylw CronFieldMandatory=Mae meysydd %s yn orfodol CronErrEndDateStartDt=Ni all y dyddiad gorffen fod cyn y dyddiad dechrau StatusAtInstall=Statws wrth osod modiwl -CronStatusActiveBtn=Atodlen +CronStatusActiveBtn=Enable scheduling CronStatusInactiveBtn=Analluogi CronTaskInactive=Mae'r swydd hon wedi'i hanalluogi (ddim wedi'i hamserlennu) CronId=Id @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=Cronfa ddata wrth gefn leol MakeLocalDatabaseDump=Creu dympio cronfa ddata leol. Paramedrau yw: cywasgu ('gz' neu 'bz' neu 'dim'), math wrth gefn ('mysql', 'pgsql', 'auto'), 1, 'auto' neu enw ffeil i'w hadeiladu, nifer y ffeiliau wrth gefn i'w cadw MakeSendLocalDatabaseDumpShort=Anfon copi wrth gefn o gronfa ddata leol MakeSendLocalDatabaseDump=Anfon copi wrth gefn o gronfa ddata leol trwy e-bost. Paramedrau yw: i, o, pwnc, neges, enw ffeil (Enw'r ffeil a anfonwyd), hidlydd ('sql' ar gyfer copi wrth gefn o'r gronfa ddata yn unig) +BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email +CleanUnfinishedCronjobShort=Clean unfinished cronjob +CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running WarningCronDelayed=Sylw, at ddiben perfformiad, beth bynnag yw'r dyddiad nesaf ar gyfer cyflawni swyddi wedi'u galluogi, efallai y bydd eich swyddi'n cael eu gohirio hyd at uchafswm o %s awr, cyn cael eu rhedeg. DATAPOLICYJob=Glanhawr data ac anonymizer JobXMustBeEnabled=Rhaid galluogi Job %s +EmailIfError=Email for warning on error +ErrorInBatch=Error when running the job %s + # Cron Boxes LastExecutedScheduledJob=Y swydd a drefnwyd ddiwethaf a gyflawnwyd NextScheduledJobExecute=Y dasg nesaf i'w chyflawni NumberScheduledJobError=Nifer y swyddi a drefnwyd mewn camgymeriad +NumberScheduledJobNeverFinished=Number of scheduled jobs never finished diff --git a/htdocs/langs/cy_GB/datapolicy.lang b/htdocs/langs/cy_GB/datapolicy.lang new file mode 100644 index 00000000000..aad90c75e2f --- /dev/null +++ b/htdocs/langs/cy_GB/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Data Privacy Policy +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR) + +# +# Administration page +# +datapolicySetup = Module Data Privacy Policy Setup +Deletion = Deletion of data +datapolicySetupPage = Depending of laws of your countries (Example Article 5 of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.
The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below). +NB_MONTHS = %s months +ONE_YEAR = 1 year +NB_YEARS = %s years +DATAPOLICY_TIERS_CLIENT = Customer +DATAPOLICY_TIERS_PROSPECT = Prospect +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_TIERS_FOURNISSEUR = Supplier +DATAPOLICY_CONTACT_CLIENT = Customer +DATAPOLICY_CONTACT_PROSPECT = Prospect +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier +DATAPOLICY_ADHERENT = Member +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type. +DATAPOLICYMail = Emails Setup +DATAPOLICYSUBJECTMAIL = Subject of email +DATAPOLICYCONTENTMAIL = Content of the email +DATAPOLICYSUBSITUTION = You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person): +DATAPOLICYACCEPT = Message after agreement +DATAPOLICYREFUSE = Message after desagreement +SendAgreementText = You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button. +SendAgreement = Send emails +AllAgreementSend = All emails have been sent +TXTLINKDATAPOLICYACCEPT = Text for the link "agreement" +TXTLINKDATAPOLICYREFUSE = Text for the link "desagreement" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data +DATAPOLICY_consentement = Consent obtained for the processing of personal data +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portability GDPR +DATAPOLICY_PORTABILITE_TITLE = Export of personal data +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymised the %s + +# V2 +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_date = Date of agreement/desagreement GDPR +DATAPOLICY_send = Date sending agreement email +DATAPOLICYReturn = GDPR Validation +DATAPOLICY_SEND = Send GDPR email +MailSent = Email has been sent + +# ERROR +ErrorSubjectIsRequired = Error : The subject of email is required. Indicate it in the module setup +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice. +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion diff --git a/htdocs/langs/cy_GB/ecm.lang b/htdocs/langs/cy_GB/ecm.lang index ba165c03711..4375605fdd7 100644 --- a/htdocs/langs/cy_GB/ecm.lang +++ b/htdocs/langs/cy_GB/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Cyfeiriadur â llaw ECMSectionAuto=Cyfeiriadur awtomatig ECMSectionsManual=Coeden â llaw ECMSectionsAuto=Coeden awtomatig +ECMSectionsMedias=Medias tree ECMSections=Cyfeirlyfrau ECMRoot=Gwraidd ECM ECMNewSection=Cyfeiriadur newydd @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Nifer y ffeiliau mewn is-gyfeiriaduron ECMCreationUser=Creawdwr ECMArea=Ardal DMS/ECM ECMAreaDesc=Mae'r ardal DMS/ECM (System Rheoli Dogfennau / Rheoli Cynnwys Electronig) yn caniatáu ichi arbed, rhannu a chwilio'n gyflym o bob math o ddogfennau yn Dolibarr. -ECMAreaDesc2=* Mae cyfeiriaduron awtomatig yn cael eu llenwi'n awtomatig wrth ychwanegu dogfennau o gerdyn elfen.
* Gellir defnyddio cyfeiriaduron llaw i gadw dogfennau nad ydynt yn gysylltiedig ag elfen benodol. +ECMAreaDesc2a=* Manual directories can be used to save documents not linked to a particular element. +ECMAreaDesc2b=* Automatic directories are filled automatically when adding documents from the page of an element. +ECMAreaDesc3=* Medias directories are files into the subdirectory /medias of documents directory, readable by everybody with no need to be logged and no need to have the file shared explicitely. It is used to store image files from emailing or website module. ECMSectionWasRemoved=Cyfeiriadur %s wedi'i ddileu. ECMSectionWasCreated=Cyfeiriadur %s wedi'i greu. ECMSearchByKeywords=Chwilio yn ôl allweddeiriau diff --git a/htdocs/langs/cy_GB/errors.lang b/htdocs/langs/cy_GB/errors.lang index 8e58924da0f..eda9b011435 100644 --- a/htdocs/langs/cy_GB/errors.lang +++ b/htdocs/langs/cy_GB/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Mae mewngofnodi %s eisoes yn bodoli. ErrorGroupAlreadyExists=Mae grŵp %s eisoes yn bodoli. ErrorEmailAlreadyExists=Mae e-bost %s eisoes yn bodoli. ErrorRecordNotFound=Heb ganfod y cofnod. +ErrorRecordNotFoundShort=Not found ErrorFailToCopyFile=Wedi methu â chopïo ffeil ' %s ' i ' %s a09a4b739f17f '. ErrorFailToCopyDir=Wedi methu â chopïo cyfeiriadur ' %s ' i ' %s a09a4b739f17f '. ErrorFailToRenameFile=Wedi methu ag ailenwi ffeil ' %s ' i ' %s a09a4b739zf17f '. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Nid oes gan ffeil delwedd fformat a gefnogir (Nid yw eich PH ErrorBadDateFormat=Mae fformat dyddiad anghywir gan werth '%s' ErrorWrongDate=Nid yw'r dyddiad yn gywir! ErrorFailedToWriteInDir=Wedi methu ag ysgrifennu yn y cyfeiriadur %s +ErrorFailedToBuildArchive=Failed to build archive file %s ErrorFoundBadEmailInFile=Wedi dod o hyd i gystrawen e-bost anghywir ar gyfer llinellau %s yn y ffeil (llinell enghreifftiol %s gydag e-bost=%s) ErrorUserCannotBeDelete=Ni ellir dileu defnyddiwr. Efallai ei fod yn gysylltiedig ag endidau Dolibarr. ErrorFieldsRequired=Mae rhai meysydd gofynnol wedi'u gadael yn wag. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Llenwch y gwerth ar gyfer rhestr blychau ticio ErrorNoValueForRadioType=Llenwch y gwerth ar gyfer y rhestr radio ErrorBadFormatValueList=Ni all gwerth y rhestr fod â mwy nag un coma: %s , ond mae angen o leiaf un: allwedd, gwerth ErrorFieldCanNotContainSpecialCharacters=Rhaid i'r maes %s beidio â chynnwys nodau arbennig. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Ni ddylai'r maes %s gynnwys nodau arbennig, na nodau priflythrennau ac ni all gynnwys rhifau yn unig. +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field %s must not contain special characters, nor upper case characters, and must start with an alphabetical character (a-z) ErrorFieldMustHaveXChar=Rhaid i'r maes %s fod ag o leiaf %s nodau. ErrorNoAccountancyModuleLoaded=Dim modiwl cyfrifeg wedi'i actifadu ErrorExportDuplicateProfil=Mae'r enw proffil hwn eisoes yn bodoli ar gyfer y set allforio hon. @@ -95,9 +97,9 @@ ErrorWrongValueForField=Maes a0aee833365837fz0 %s : ' %s 3e %s ErrorHtmlInjectionForField=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Maes %s : ' %s ' ddim yn werth dod o hyd yn y maes %s o %s ErrorFieldRefNotIn=Maes %s : ' %s ' cyf Nid yw %s presennol +ErrorMultipleRecordFoundFromRef=Several record found when searching from ref %s. No way to know which ID to use. ErrorsOnXLines=%s gwallau wedi'u canfod ErrorFileIsInfectedWithAVirus=Nid oedd y rhaglen gwrthfeirws yn gallu dilysu'r ffeil (gallai'r ffeil fod wedi'i heintio gan firws) -ErrorSpecialCharNotAllowedForField=Ni chaniateir nodau arbennig ar gyfer maes "%s" ErrorNumRefModel=Mae cyfeiriad yn bodoli i gronfa ddata (%s) ac nid yw'n gydnaws â'r rheol rifo hon. Tynnwch y cofnod neu ailenwyd y cyfeirnod i actifadu'r modiwl hwn. ErrorQtyTooLowForThisSupplier=Swm yn rhy isel ar gyfer y gwerthwr hwn neu ddim pris wedi'i ddiffinio ar y cynnyrch hwn ar gyfer y gwerthwr hwn ErrorOrdersNotCreatedQtyTooLow=Nid yw rhai archebion wedi'u creu oherwydd niferoedd rhy isel @@ -242,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Rhaid i wrthrychau gael statws 'Gwei ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Rhaid i wrthrychau gael statws 'Drafft' neu 'Anabledd' i'w galluogi ErrorNoFieldWithAttributeShowoncombobox=Nid oes gan unrhyw faes yr eiddo 'showoncombobox' i'r diffiniad o wrthrych '%s'. Dim ffordd i ddangos y combolist. ErrorFieldRequiredForProduct=Mae angen maes '%s' ar gyfer cynnyrch %s +AlreadyTooMuchPostOnThisIPAdress=You have already posted too much on this IP address. ProblemIsInSetupOfTerminal=Problem yw gosod terfynell %s. ErrorAddAtLeastOneLineFirst=Ychwanegwch o leiaf un llinell yn gyntaf ErrorRecordAlreadyInAccountingDeletionNotPossible=Gwall, cofnod yn cael ei drosglwyddo eisoes yn cyfrifo, dileu yn bosibl. @@ -277,8 +280,8 @@ ErrorWrongFileName=Ni all enw'r ffeil fod â __SOMETHING__ ynddi ErrorNotInDictionaryPaymentConditions=Ddim yn y Geiriadur Telerau Talu, addaswch. ErrorIsNotADraft=Nid yw %s yn ddrafft ErrorExecIdFailed=Methu gweithredu gorchymyn "id" -ErrorBadCharIntoLoginName=Nod heb awdurdod yn yr enw mewngofnodi -ErrorRequestTooLarge=Gwall, cais rhy fawr +ErrorBadCharIntoLoginName=Unauthorized character in the field %s +ErrorRequestTooLarge=Error, request too large or session expired ErrorNotApproverForHoliday=Nid chi yw'r cymeradwywr ar gyfer gwyliau %s ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product variants ErrorAttributeValueIsUsedIntoProduct=This attribute value is used in one or more product variants @@ -291,6 +294,15 @@ ErrorAjaxRequestFailed=Request failed ErrorThirpdartyOrMemberidIsMandatory=Third party or Member of partnership is mandatory ErrorFailedToWriteInTempDirectory=Failed to write in temp directory ErrorQuantityIsLimitedTo=Quantity is limited to %s +ErrorFailedToLoadThirdParty=Failed to find/load thirdparty from id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=This payment mode is not a bank account +ErrorStripeCustomerNotFoundCreateFirst=Stripe customer is not set for this thirdparty (or set to a value deleted on Stripe side). Create (or re-attach) it first. +ErrorCharPlusNotSupportedByImapForSearch=IMAP search is not able to search into sender or recipient for a string containing the character + +ErrorTableNotFound=Table %s not found +ErrorValueForTooLow=Value for %s is too low +ErrorValueCantBeNull=Value for %s can't be null +ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission +ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Mae eich paramedr PHP upload_max_filesize (%s) yn uwch na pharamedr PHP post_max_size (%s). Nid yw hwn yn drefniant cyson. @@ -304,7 +316,7 @@ WarningConfFileMustBeReadOnly=Rhybudd, gall eich ffeil ffurfweddu ( htdocs/c WarningsOnXLines=Rhybuddion ar %s cofnod(au) ffynhonnell WarningNoDocumentModelActivated=Nid oes unrhyw fodel, ar gyfer cynhyrchu dogfennau, wedi'i actifadu. Bydd model yn cael ei ddewis yn ddiofyn nes i chi wirio gosodiad eich modiwl. WarningLockFileDoesNotExists=Rhybudd, unwaith y bydd y gosodiad wedi'i orffen, rhaid i chi analluogi'r offer gosod / mudo trwy ychwanegu ffeil install.lock i gyfeiriadur %s a09a4b73zf 1. Mae hepgor creu'r ffeil hon yn risg diogelwch difrifol. -WarningUntilDirRemoved=Bydd pob rhybudd diogelwch (sydd i'w weld gan ddefnyddwyr gweinyddol yn unig) yn parhau'n weithredol cyn belled â bod y bregusrwydd yn bresennol (neu fod cyson MAIN_REMOVE_INSTALL_WARNING yn cael ei ychwanegu yn Setup-> Gosodiad Arall). +WarningUntilDirRemoved=This security warning will remain active as long as the vulnerability is present. WarningCloseAlways=Rhybudd, cau yn cael ei wneud hyd yn oed os yw swm yn amrywio rhwng ffynhonnell ac elfennau targed. Galluogwch y nodwedd hon yn ofalus. WarningUsingThisBoxSlowDown=Rhybudd, gan ddefnyddio'r blwch hwn arafu o ddifrif yr holl dudalennau sy'n dangos y blwch. WarningClickToDialUserSetupNotComplete=Nid yw'r broses o osod gwybodaeth ClickToDial ar gyfer eich defnyddiwr wedi'i chwblhau (gweler y tab ClickToDial ar eich cerdyn defnyddiwr). @@ -326,6 +338,8 @@ WarningAvailableOnlyForHTTPSServers=Ar gael dim ond os ydych yn defnyddio cysyll WarningModuleXDisabledSoYouMayMissEventHere=Nid yw modiwl %s wedi'i alluogi. Felly efallai y byddwch yn colli llawer o ddigwyddiad yma. WarningPaypalPaymentNotCompatibleWithStrict=Mae'r gwerth 'Strict' yn golygu nad yw'r nodweddion talu ar-lein yn gweithio'n gywir. Defnyddiwch 'Lax' yn lle hynny. WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Warning, this will also delete all existing pages/containers of the website. You should export your website before, so you have a backup to re-import it later. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatic validation is disabled when option to decrease stock is set on "Invoice validation". # Validate RequireValidValue = Gwerth ddim yn ddilys diff --git a/htdocs/langs/cy_GB/eventorganization.lang b/htdocs/langs/cy_GB/eventorganization.lang index b15bb10faaa..74d103f7360 100644 --- a/htdocs/langs/cy_GB/eventorganization.lang +++ b/htdocs/langs/cy_GB/eventorganization.lang @@ -54,12 +54,15 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = Yn y ffurf i greu / ychwanegu mynychwr, # Object # EventOrganizationConfOrBooth= Cynhadledd Neu Booth +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Rheoli trefniadaeth digwyddiad ConferenceOrBooth = Cynhadledd Neu Booth ConferenceOrBoothTab = Cynhadledd Neu Booth AmountPaid = Swm a dalwyd DateOfRegistration = Dyddiad cofrestru ConferenceOrBoothAttendee = Mynychwr y Gynhadledd Neu Booth +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -112,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Yma, gallwch chi bleidleisio dros gynhadledd ne EvntOrgRegistrationConfHelpMessage = Yma, gallwch awgrymu cynhadledd newydd i'w hanimeiddio yn ystod y digwyddiad. EvntOrgRegistrationBoothHelpMessage = Yma, gallwch wneud cais i gael bwth yn ystod y digwyddiad. ListOfSuggestedConferences = Rhestr o gynadleddau a awgrymir -ListOfSuggestedBooths = Rhestr o fythau a awgrymir -ListOfConferencesOrBooths=Rhestr o gynadleddau neu fythau o brosiect digwyddiad +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Awgrymu cynhadledd newydd SuggestBooth = Awgrymu bwth ViewAndVote = Gweld a phleidleisio ar gyfer digwyddiadau a awgrymir PublicAttendeeSubscriptionGlobalPage = Dolen gyhoeddus i gofrestru i'r digwyddiad PublicAttendeeSubscriptionPage = Dolen gyhoeddus ar gyfer cofrestru i'r digwyddiad hwn yn unig MissingOrBadSecureKey = Mae'r allwedd ddiogelwch yn annilys neu ar goll -EvntOrgWelcomeMessage = Mae'r ffurflen hon yn eich galluogi i gofrestru fel cyfranogwr newydd i'r digwyddiad : %s +EvntOrgWelcomeMessage = This form allows you to register as a new participant to the event EvntOrgDuration = Mae'r gynhadledd hon yn dechrau ar %s ac yn gorffen ar %s. ConferenceAttendeeFee = Ffi mynychwyr y gynhadledd ar gyfer y digwyddiad : '%s' yn digwydd o %s i %s. BoothLocationFee = Lleoliad Booth ar gyfer y digwyddiad : '%s' yn digwydd o %s i %s @@ -130,7 +133,7 @@ LabelOfconference=Label y gynhadledd ConferenceIsNotConfirmed=Nid yw cofrestriad ar gael, nid yw'r gynhadledd wedi'i chadarnhau eto DateMustBeBeforeThan=rhaid i %s fod cyn %s DateMustBeAfterThan=rhaid i %s fod ar ôl %s - +MaxNbOfAttendeesReached=The maximum number of participants has been reached NewSubscription=Cofrestru OrganizationEventConfRequestWasReceived=Mae eich awgrym ar gyfer cynhadledd wedi dod i law OrganizationEventBoothRequestWasReceived=Mae eich cais am fwth wedi dod i law @@ -139,6 +142,7 @@ OrganizationEventPaymentOfRegistrationWasReceived=Mae eich taliad ar gyfer eich OrganizationEventBulkMailToAttendees=Mae hwn yn atgoffa am eich cyfranogiad yn y digwyddiad fel mynychwr OrganizationEventBulkMailToSpeakers=Dyma nodyn i'ch atgoffa o'ch cyfranogiad yn y digwyddiad fel siaradwr OrganizationEventLinkToThirdParty=Cyswllt i drydydd parti (cwsmer, cyflenwr neu bartner) +OrganizationEvenLabelName=Public name of the conference or booth NewSuggestionOfBooth=Cais am fwth NewSuggestionOfConference=Cais am gynhadledd @@ -154,7 +158,7 @@ VoteOk = Mae eich pleidlais wedi ei derbyn. AlreadyVoted = Rydych chi eisoes wedi pleidleisio dros y digwyddiad hwn. VoteError = Mae gwall wedi digwydd yn ystod y bleidlais, ceisiwch eto. -SubscriptionOk = Mae eich cofrestriad wedi'i ddilysu +SubscriptionOk=Your registration has been recorded ConfAttendeeSubscriptionConfirmation = Cadarnhad o'ch tanysgrifiad i ddigwyddiad Attendee = Mynychwr PaymentConferenceAttendee = Taliad mynychwyr y gynhadledd @@ -162,6 +166,7 @@ PaymentBoothLocation = Taliad lleoliad Booth DeleteConferenceOrBoothAttendee=Dileu mynychwr RegistrationAndPaymentWereAlreadyRecorder=Roedd cofrestriad a thaliad eisoes wedi'u cofnodi ar gyfer yr e-bost %s EmailAttendee=E-bost mynychwr +EmailCompany=Company email EmailCompanyForInvoice=E-bost cwmni (ar gyfer anfoneb, os yw'n wahanol i e-bost mynychwr) ErrorSeveralCompaniesWithEmailContactUs=Mae sawl cwmni sydd â'r e-bost hwn wedi'u canfod felly ni allwn ddilysu eich cofrestriad yn awtomatig. Cysylltwch â ni yn %s i gael dilysiad â llaw ErrorSeveralCompaniesWithNameContactUs=Mae sawl cwmni gyda'r enw hwn wedi'u canfod felly ni allwn ddilysu eich cofrestriad yn awtomatig. Cysylltwch â ni yn %s i gael dilysiad â llaw diff --git a/htdocs/langs/cy_GB/holiday.lang b/htdocs/langs/cy_GB/holiday.lang index f3872ea8296..7f203ba35fb 100644 --- a/htdocs/langs/cy_GB/holiday.lang +++ b/htdocs/langs/cy_GB/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Gadael +Holidays=Leaves +Holiday=Leave CPTitreMenu=Gadael MenuReportMonth=Datganiad misol MenuAddCP=Cais am wyliau newydd +MenuCollectiveAddCP=New collective leave request NotActiveModCP=Rhaid i chi alluogi'r modiwl Leave i weld y dudalen hon. AddCP=Gwnewch gais am wyliau DateDebCP=Dyddiad cychwyn @@ -56,6 +58,7 @@ ConfirmDeleteCP=Cadarnhau dileu'r cais hwn am ganiatâd? ErrorCantDeleteCP=Gwall nid oes gennych yr hawl i ddileu'r cais hwn am wyliau. CantCreateCP=Nid oes gennych yr hawl i wneud ceisiadau am wyliau. InvalidValidatorCP=Rhaid i chi ddewis y cymeradwywr ar gyfer eich cais am wyliau. +InvalidValidator=The user chosen isn't an approver. NoDateDebut=Rhaid i chi ddewis dyddiad cychwyn. NoDateFin=Rhaid i chi ddewis dyddiad gorffen. ErrorDureeCP=Nid yw eich cais am wyliau yn cynnwys diwrnod gwaith. @@ -79,6 +82,8 @@ MotifCP=Rheswm UserCP=Defnyddiwr ErrorAddEventToUserCP=Digwyddodd gwall wrth ychwanegu'r gwyliau eithriadol. AddEventToUserOkCP=Mae ychwanegu'r gwyliau eithriadol wedi'i gwblhau. +ErrorFieldRequiredUserOrGroup=The "group" field or the "user" field must be filled in +fusionGroupsUsers=The groups field and the user field will be merged MenuLogCP=Gweld logiau newid LogCP=Log o'r holl ddiweddariadau a wnaed i "Cydbwysedd Absenoldeb" ActionByCP=Diweddarwyd gan @@ -86,6 +91,13 @@ UserUpdateCP=Diweddarwyd ar gyfer PrevSoldeCP=Balans Blaenorol NewSoldeCP=Balans Newydd alreadyCPexist=Mae cais am wyliau eisoes wedi'i wneud ar y cyfnod hwn. +UseralreadyCPexist=A leave request has already been done on this period for %s. +groups=Groups +users=Users +AutoSendMail=Automatic mailing +NewHolidayForGroup=New collective leave request +SendRequestCollectiveCP=Send collective leave request +AutoValidationOnCreate=Automatic validation FirstDayOfHoliday=Cais am ddiwrnod cychwyn yr absenoldeb LastDayOfHoliday=Cais am ddiwrnod absenoldeb sy'n dod i ben BoxTitleLastLeaveRequests=Ceisiadau gwyliau wedi'u haddasu diweddaraf %s @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s fel arfer yn ddiwrnod gwaith DIM BlockHolidayIfNegative=Blociwch os yw'r cydbwysedd yn negyddol LeaveRequestCreationBlockedBecauseBalanceIsNegative=Mae creu'r cais hwn am wyliau wedi'i rwystro oherwydd bod eich balans yn negyddol ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Rhaid i gais am adael %s gael ei ddrafftio, ei ganslo neu ei wrthod i gael ei ddileu +IncreaseHolidays=Increase holiday +HolidayRecordsIncreased= %s holiday records increased +HolidayRecordIncreased=Holiday record increased +ConfirmMassIncreaseHoliday=Bulk holiday increase +NumberDayAddMass=Number of day to add to the selection +ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? +HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/cy_GB/loan.lang b/htdocs/langs/cy_GB/loan.lang index 9905e346b7a..99b0c7cb78d 100644 --- a/htdocs/langs/cy_GB/loan.lang +++ b/htdocs/langs/cy_GB/loan.lang @@ -28,7 +28,7 @@ CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with CantModifyInterestIfScheduleIsUsed = Ni allwch addasu llog os ydych yn defnyddio amserlen # Admin ConfigLoan=Ffurfwedd y benthyciad modiwl -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Cyfalaf cyfrif cyfrifo yn ddiofyn -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Llog cyfrif cyfrifeg yn ddiofyn -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Yswiriant cyfrif cyfrifo yn ddiofyn +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Account (from the Chart Of Account) to be used by default for capital (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Account (from the Chart Of Account) to be used by default for interest (Loan module) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Account (from the Chart Of Account) to be used by default for insurance (Loan module) CreateCalcSchedule=Golygu ymrwymiad ariannol diff --git a/htdocs/langs/cy_GB/mailmanspip.lang b/htdocs/langs/cy_GB/mailmanspip.lang index 1db1989b38a..9ec01288a34 100644 --- a/htdocs/langs/cy_GB/mailmanspip.lang +++ b/htdocs/langs/cy_GB/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Cyflawnwyd y prawf tanysgrifio yn llwyddiannus MailmanDeletionSuccess=Cyflawnwyd y prawf dad-danysgrifio yn llwyddiannus SynchroMailManEnabled=Bydd diweddariad Mailman yn cael ei berfformio SynchroSpipEnabled=Bydd diweddariad Spip yn cael ei berfformio -DescADHERENT_MAILMAN_ADMINPW=Cyfrinair gweinyddwr Mailman +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator password DescADHERENT_MAILMAN_URL=URL ar gyfer tanysgrifiadau Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL ar gyfer dad-danysgrifiadau Mailman DescADHERENT_MAILMAN_LISTS=Rhestr(au) ar gyfer arysgrif awtomatig o aelodau newydd (wedi'u gwahanu gan goma) diff --git a/htdocs/langs/cy_GB/mails.lang b/htdocs/langs/cy_GB/mails.lang index e8abe9219d3..bda452eafc9 100644 --- a/htdocs/langs/cy_GB/mails.lang +++ b/htdocs/langs/cy_GB/mails.lang @@ -7,10 +7,10 @@ MailCard=Cerdyn e-bost MailRecipients=Derbynwyr MailRecipient=Derbynnydd MailTitle=Disgrifiad -MailFrom=Anfonwr +MailFrom=From MailErrorsTo=Gwallau i MailReply=Ateb i -MailTo=Derbynnydd +MailTo=To MailToUsers=I ddefnyddiwr(wyr) MailCC=Copi i MailToCCUsers=Copïo i ddefnyddiwr(wyr) @@ -178,3 +178,4 @@ IsAnAnswer=Yn ateb e-bost cychwynnol RecordCreatedByEmailCollector=Cofnod a grëwyd gan y Casglwr E-bost %s o e-bost %s DefaultBlacklistMailingStatus=Gwerth rhagosodedig ar gyfer maes '%s' wrth greu cyswllt newydd DefaultStatusEmptyMandatory=Yn wag ond yn orfodol +WarningLimitSendByDay=WARNING: The setup or contract of your instance limits your number of emails per day to %s. Trying to send more may result in having your instance slow down or suspended. Please contact your support if you need a higher quota. diff --git a/htdocs/langs/cy_GB/main.lang b/htdocs/langs/cy_GB/main.lang index d1564b719da..3e611f62ff9 100644 --- a/htdocs/langs/cy_GB/main.lang +++ b/htdocs/langs/cy_GB/main.lang @@ -1,9 +1,15 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr +# Default for FONTFORPDF=helvetica # Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese +# msungstdlight or cid0ct are for traditional Chinese zh_TW (traditional does not render with Ubuntu pdf reader) +# stsongstdlight or cid0cs are for simplified Chinese zh_CN # To read Chinese pdf with Linux: sudo apt-get install poppler-data +# cid0jp is for Japanish +# cid0kr is for Korean +# DejaVuSans is for some Eastern languages, some Asian languages and some Arabic languages +# freemono is for ru_RU or uk_UA, uz_UZ +# freeserif is for Tamil FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -28,6 +34,7 @@ NoTemplateDefined=Nid oes templed ar gael ar gyfer y math hwn o e-bost AvailableVariables=Newidynnau amnewid sydd ar gael NoTranslation=Dim cyfieithiad Translation=Cyfieithiad +Translations=Translations CurrentTimeZone=TimeZone PHP (gweinydd) EmptySearchString=Rhowch feini prawf chwilio nad ydynt yn wag EnterADateCriteria=Rhowch feini prawf dyddiad @@ -199,6 +206,7 @@ Valid=Dilys Approve=Cymeradwyo Disapprove=Anghymeradwyo ReOpen=Ail-agor +OpenVerb=Open Upload=Llwytho i fyny ToLink=Cyswllt Select=Dewiswch @@ -216,8 +224,9 @@ UserGroup=Grŵp defnyddwyr UserGroups=Grwpiau defnyddwyr NoUserGroupDefined=Dim grŵp defnyddwyr wedi'i ddiffinio Password=Cyfrinair -PasswordRetype=Ail-deipiwch eich cyfrinair +PasswordRetype=Repeat your password NoteSomeFeaturesAreDisabled=Sylwch fod llawer o nodweddion/modiwlau wedi'u hanalluogi yn yr arddangosiad hwn. +YourUserFile=Your user file Name=Enw NameSlashCompany=Enw / Cwmni Person=Person @@ -481,6 +490,7 @@ ActionsOnContact=Digwyddiadau ar gyfer y cyswllt/cyfeiriad hwn ActionsOnContract=Digwyddiadau ar gyfer y contract hwn ActionsOnMember=Digwyddiadau am yr aelod hwn ActionsOnProduct=Digwyddiadau am y cynnyrch hwn +ActionsOnAsset=Events for this fixed asset NActionsLate=%s hwyr ToDo=Gwneud Completed=Cwblhawyd @@ -888,6 +898,9 @@ 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? +ConfirmMassClone=Bulk clone confirmation +ConfirmMassCloneQuestion=Select project to clone to +ConfirmMassCloneToOneProject=Clone to project %s RelatedObjects=Gwrthrychau Cysylltiedig ClassifyBilled=Dosbarthu wedi'i bilio ClassifyUnbilled=Dosbarthu heb ei filio @@ -903,8 +916,8 @@ 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 +ExportOfPiecesAlreadyExportedIsEnable=Documents already exported are visible and will be exported +ExportOfPiecesAlreadyExportedIsDisable=Documents already exported are hidden and won't be exported 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 @@ -921,6 +934,7 @@ DirectDownloadInternalLink=Dolen llwytho i lawr preifat PrivateDownloadLinkDesc=Mae angen i chi fod wedi mewngofnodi ac mae angen caniatâd arnoch i weld neu lawrlwytho'r ffeil Download=Lawrlwythwch DownloadDocument=Lawrlwytho dogfen +DownloadSignedDocument=Download signed document ActualizeCurrency=Diweddaru cyfradd arian cyfred Fiscalyear=Blwyddyn ariannol ModuleBuilder=Adeiladwr Modiwl a Chymhwysiad @@ -1046,6 +1060,7 @@ SearchIntoContracts=Contractau SearchIntoCustomerShipments=Cludo cwsmeriaid SearchIntoExpenseReports=Adroddiadau treuliau SearchIntoLeaves=Gadael +SearchIntoKM=Knowledge base SearchIntoTickets=Tocynnau SearchIntoCustomerPayments=Taliadau cwsmeriaid SearchIntoVendorPayments=Taliadau gwerthwr @@ -1117,6 +1132,7 @@ 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 +NotUsedForThisVendor=Not used for this vendor AmountMustBePositive=Rhaid i'r swm fod yn bositif ByStatus=Yn ôl statws InformationMessage=Gwybodaeth @@ -1137,15 +1153,29 @@ EventReminder=Nodyn Atgoffa am Ddigwyddiad UpdateForAllLines=Diweddariad ar gyfer pob llinell OnHold=Ar stop Civility=Gwareiddiad -AffectTag=Effeithio Tag +AffectTag=Assign a Tag +AffectUser=Assign a User +SetSupervisor=Set the supervisor CreateExternalUser=Creu defnyddiwr allanol -ConfirmAffectTag=Effaith Swmp Tag -ConfirmAffectTagQuestion=Ydych chi'n siŵr eich bod am effeithio ar dagiau i'r cofnod(au) a ddewiswyd %s? +ConfirmAffectTag=Bulk Tag Assignement +ConfirmAffectUser=Bulk User Assignement +ProjectRole=Role assigned on each project/opportunity +TasksRole=Role assigned on each task (if used) +ConfirmSetSupervisor=Bulk Supervisor Set +ConfirmUpdatePrice=Choose a increase/decrease price rate +ConfirmAffectTagQuestion=Are you sure you want to assign tags to the %s selected record(s)? +ConfirmAffectUserQuestion=Are you sure you want to assign users to the %s selected record(s)? +ConfirmSetSupervisorQuestion=Are you sure you want to set supervisor to the %s selected record(s)? +ConfirmUpdatePriceQuestion=Are you sure you want to update the price of the %s selected record(s)? CategTypeNotFound=Ni chanfuwyd math o dag ar gyfer y math o gofnodion +Rate=Cyfradd +SupervisorNotFound=Supervisor not found CopiedToClipboard=Wedi'i gopïo i'r clipfwrdd InformationOnLinkToContract=Dim ond cyfanswm holl linellau'r contract yw'r swm hwn. Nid oes unrhyw syniad o amser yn cael ei ystyried. ConfirmCancel=Ydych chi'n siŵr eich bod am ganslo EmailMsgID=E-bost MsgID +EmailDate=Email date +SetToStatus=Set to status %s SetToEnabled=Wedi'i osod i alluogi SetToDisabled=Wedi'i osod i analluogi ConfirmMassEnabling=cadarnhad galluogi màs @@ -1174,9 +1204,21 @@ Terminated=Terfynwyd AddLineOnPosition=Add line on position (at the end if empty) ConfirmAllocateCommercial=Assign sales representative confirmation ConfirmAllocateCommercialQuestion=Are you sure you want to assign the %s selected record(s)? -CommercialsAffected=Sales representatives affected -CommercialAffected=Sales representative affected +CommercialsAffected=Sales representatives assigned +CommercialAffected=Sales representative assigned YourMessage=Your message YourMessageHasBeenReceived=Your message has been received. We will answer or contact you as soon as possible. UrlToCheck=Url to check Automation=Automation +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent +InternalUser=Internal user +ExternalUser=External user +NoSpecificContactAddress=No specific contact or address +NoSpecificContactAddressBis=This tab is dedicated to force specific contacts or addresses for the current object. Use it only if you want to define one or several specific contacts or addresses for the object when the information on the thirdparty is not enough or not accurate. +HideOnVCard=Hide %s +AddToContacts=Add address to my contacts +LastAccess=Last access +UploadAnImageToSeeAPhotoHere=Upload an image from the tab %s to see a photo here +LastPasswordChangeDate=Last password change date diff --git a/htdocs/langs/cy_GB/members.lang b/htdocs/langs/cy_GB/members.lang index 45526b3900a..a51460a8782 100644 --- a/htdocs/langs/cy_GB/members.lang +++ b/htdocs/langs/cy_GB/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Aelod (enw: %s , login: % ErrorUserPermissionAllowsToLinksToItselfOnly=Am resymau diogelwch, rhaid i chi gael caniatâd i olygu pob defnyddiwr er mwyn gallu cysylltu aelod â defnyddiwr nad yw'n eiddo i chi. SetLinkToUser=Dolen i ddefnyddiwr o Ddolibarr SetLinkToThirdParty=Cysylltiad â thrydydd parti Dolibarr +MemberCountersArePublic=Counters of valid members are public MembersCards=Generation of cards for members MembersList=Rhestr o aelodau MembersListToValid=Rhestr o aelodau drafft (i'w dilysu) @@ -34,7 +35,8 @@ DateSubscription=Dyddiad aelodaeth DateEndSubscription=Dyddiad gorffen aelodaeth EndSubscription=Diwedd aelodaeth SubscriptionId=ID y cyfraniad -WithoutSubscription=Heb gyfraniad +WithoutSubscription=Without membership +WaitingSubscription=Membership pending MemberId=Member Id MemberRef=Member Ref NewMember=Aelod newydd @@ -72,12 +74,12 @@ MemberTypeCanNotBeDeleted=Ni ellir dileu'r math o aelod NewSubscription=Cyfraniad newydd NewSubscriptionDesc=Mae'r ffurflen hon yn caniatáu ichi gofnodi'ch tanysgrifiad fel aelod newydd o'r sefydliad. Os ydych am adnewyddu eich tanysgrifiad (os ydych eisoes yn aelod), cysylltwch â'r bwrdd sylfaen yn lle hynny trwy e-bost %s. Subscription=Cyfraniad -AnyAmountWithAdvisedAmount=Any amount with a recommended amount of %s %s -AnyAmountWithoutAdvisedAmount=Any amount +AnyAmountWithAdvisedAmount=Any amount of your choice, recommended %s +AnyAmountWithoutAdvisedAmount=Any amount of your choice CanEditAmountShort=Any amount CanEditAmountShortForValues=recommended, any amount MembershipDuration=Duration -GetMembershipButtonLabel=Get membership +GetMembershipButtonLabel=Join Subscriptions=Cyfraniadau SubscriptionLate=Hwyr SubscriptionNotReceived=Ni dderbyniwyd cyfraniad erioed @@ -205,9 +207,10 @@ NbOfSubscriptions=Nifer y cyfraniadau AmountOfSubscriptions=Swm a gasglwyd o gyfraniadau TurnoverOrBudget=Trosiant (ar gyfer cwmni) neu Gyllideb (ar gyfer sylfaen) DefaultAmount=Swm y cyfraniad rhagosodedig -CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type +CanEditAmount=Subscription amount is free +CanEditAmountDetail=Visitor can choose/edit amount of its contribution regardless of the member type AmountIsLowerToMinimumNotice=sur un dû total de %s -MEMBER_NEWFORM_PAYONLINE=Neidiwch ar dudalen talu ar-lein integredig +MEMBER_NEWFORM_PAYONLINE=After the online registration, switch automatically on the online payment page ByProperties=Wrth natur MembersStatisticsByProperties=Ystadegau aelodau yn ôl natur VATToUseForSubscriptions=Cyfradd TAW i'w defnyddio ar gyfer cyfraniadau @@ -228,3 +231,4 @@ CreateDolibarrLoginDesc=Mae creu mewngofnodi defnyddiwr ar gyfer aelodau yn cani CreateDolibarrThirdPartyDesc=Trydydd parti yw’r endid cyfreithiol a ddefnyddir ar yr anfoneb os penderfynwch gynhyrchu anfoneb ar gyfer pob cyfraniad. Byddwch yn gallu ei greu yn ddiweddarach yn ystod y broses o gofnodi'r cyfraniad. MemberFirstname=Member firstname MemberLastname=Member lastname +MemberCodeDesc=Member Code, unique for all members diff --git a/htdocs/langs/cy_GB/modulebuilder.lang b/htdocs/langs/cy_GB/modulebuilder.lang index 93e8b1657f7..394bbddb36b 100644 --- a/htdocs/langs/cy_GB/modulebuilder.lang +++ b/htdocs/langs/cy_GB/modulebuilder.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - loan +IdModule= Module id ModuleBuilderDesc=Rhaid i'r offeryn hwn gael ei ddefnyddio gan ddefnyddwyr neu ddatblygwyr profiadol yn unig. Mae'n darparu cyfleustodau i adeiladu neu olygu eich modiwl eich hun. Mae dogfennau ar gyfer datblygiad llaw amgen yma . EnterNameOfModuleDesc=Enter the name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +EnterNameOfObjectDesc=Enter the name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, the pages to list/add/edit/delete the object and the SQL files will be generated. EnterNameOfDictionaryDesc=Enter the name of the dictionary to create with no spaces. Use uppercase to separate words (For example: MyDico...). The class file, but also the SQL file will be generated. ModuleBuilderDesc2=Llwybr lle mae modiwlau'n cael eu cynhyrchu/golygu (cyfeirlyfr cyntaf ar gyfer modiwlau allanol wedi'i ddiffinio i %s): %s ModuleBuilderDesc3=Modiwlau a gynhyrchwyd/golygu a ddarganfuwyd: %s @@ -9,6 +10,7 @@ ModuleBuilderDesc4=Mae modiwl yn cael ei ganfod fel un 'golygadwy' pan fo'r ffei NewModule=Modiwl newydd NewObjectInModulebuilder=Gwrthrych newydd NewDictionary=New dictionary +ModuleName=Module name ModuleKey=Allwedd modiwl ObjectKey=Allwedd gwrthrych DicKey=Dictionary key @@ -48,11 +50,14 @@ PathToModulePackage=Llwybr i sip y modiwl/pecyn cais PathToModuleDocumentation=Llwybr i ffeil dogfennaeth y modiwl/cymhwysiad (%s) SpaceOrSpecialCharAreNotAllowed=Ni chaniateir bylchau neu nodau arbennig. FileNotYetGenerated=Ffeil heb ei chynhyrchu eto +GenerateCode=Generate code RegenerateClassAndSql=Gorfodi diweddaru ffeiliau .class a .sql RegenerateMissingFiles=Cynhyrchu ffeiliau coll SpecificationFile=Ffeil o ddogfennaeth LanguageFile=Ffeil ar gyfer iaith ObjectProperties=Priodweddau Gwrthrych +Property=Propery +PropertyDesc=A property is an attribute that characterizes an object. This attribute has a code, a label and a type with several options. ConfirmDeleteProperty=A ydych yn siŵr eich bod am ddileu'r eiddo %s ? Bydd hyn yn newid cod yn y dosbarth PHP ond hefyd yn dileu'r golofn o'r diffiniad tabl o wrthrych. NotNull=Ddim yn NULL NotNullDesc=1=Set database to NOT NULL, 0=Allow null values, -1=Allow null values by forcing value to NULL if empty ('' or 0) @@ -81,15 +86,16 @@ IsAMeasure=Yn fesur DirScanned=Cyfeiriadur wedi'i sganio NoTrigger=Dim sbardun NoWidget=Dim teclyn -GoToApiExplorer=Fforiwr API +ApiExplorer=API explorer ListOfMenusEntries=Rhestr o gofnodion dewislen ListOfDictionariesEntries=Rhestr o gofnodion geiriaduron ListOfPermissionsDefined=Rhestr o ganiatadau diffiniedig SeeExamples=Gweler enghreifftiau yma -EnabledDesc=Amod i gael y maes hwn yn weithredol (Enghreifftiau: 1 neu $conf->global-> MYMODULE_MYOPTION) -VisibleDesc=Ydy'r cae yn weladwy? (Enghreifftiau: 0=Byth yn weladwy, 1=Yn weladwy ar y rhestr a chreu/diweddaru/gweld ffurflenni, 2=Yn weladwy ar y rhestr yn unig, 3=Yn weladwy ar y ffurflen creu/diweddaru/gweld yn unig (nid y rhestr), 4=Yn weladwy ar y rhestr a diweddaru/gweld ffurflen yn unig (ddim yn creu), 5=Ffurflen gweld diwedd rhestr yn unig i'w gweld (nid creu, nid diweddaru).

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

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

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

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

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

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

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

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

Supported values:
- Keep empty: Can link elements with any projects in the same company (default)
- "all": Can link elements with any projects, even projects of other companies
- A list of third-party ids separated by commas: can link elements with any projects of these third partys (Example: 123,4795,53)
LatestProjects=Prosiectau %s diweddaraf LatestModifiedProjects=Prosiectau wedi'u haddasu %s diweddaraf OtherFilteredTasks=Tasgau eraill wedi'u hidlo @@ -282,7 +286,7 @@ ProfitIsCalculatedWith=Cyfrifir elw gan ddefnyddio AddPersonToTask=Ychwanegu at dasgau hefyd UsageOrganizeEvent=Defnydd: Trefniadaeth Digwyddiadau PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Dosbarthu'r prosiect fel un sydd ar gau pan fydd ei holl dasgau wedi'u cwblhau (cynnydd 100%%) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Sylwch: ni fydd hyn yn effeithio ar brosiectau presennol gyda'r holl dasgau ar gynnydd 100%%: bydd yn rhaid i chi eu cau â llaw. Mae'r opsiwn hwn yn effeithio ar brosiectau agored yn unig. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Note: existing projects with all tasks already set to a progress of 100 %% won't be affected: you will have to close them manually. This option only affects open projects. SelectLinesOfTimeSpentToInvoice=Dewiswch linellau o amser a dreulir sydd heb eu bilio, yna gweithred swmp "Cynhyrchu Anfoneb" i'w bilio ProjectTasksWithoutTimeSpent=Tasgau prosiect heb dreulio amser FormForNewLeadDesc=Diolch i chi lenwi'r ffurflen ganlynol i gysylltu â ni. Gallwch hefyd anfon e-bost atom yn uniongyrchol i %s . diff --git a/htdocs/langs/cy_GB/recruitment.lang b/htdocs/langs/cy_GB/recruitment.lang index a5798d61e07..d501b087afd 100644 --- a/htdocs/langs/cy_GB/recruitment.lang +++ b/htdocs/langs/cy_GB/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=Recriwtiwr e-bost ToUseAGenericEmail=I ddefnyddio e-bost generig. Os na chaiff ei ddiffinio, bydd e-bost y sawl sy'n gyfrifol am recriwtio yn cael ei ddefnyddio NewCandidature=Cais newydd ListOfCandidatures=Rhestr o geisiadau -RequestedRemuneration=Cais am dâl -ProposedRemuneration=Tâl arfaethedig +Remuneration=Salary +RequestedRemuneration=Requested salary +ProposedRemuneration=Proposed salary ContractProposed=Contract wedi'i gynnig ContractSigned=Contract wedi'i lofnodi ContractRefused=Gwrthodwyd y contract RecruitmentCandidature=Cais JobPositions=Swyddi swyddi RecruitmentCandidatures=Ceisiadau -InterviewToDo=Cyfweliad i'w wneud +InterviewToDo=Contacts to follow AnswerCandidature=Ateb cais YourCandidature=Eich cais YourCandidatureAnswerMessage=Diolch i chi am eich cais.
... diff --git a/htdocs/langs/cy_GB/salaries.lang b/htdocs/langs/cy_GB/salaries.lang index c66eb70eac6..e9c80a4b865 100644 --- a/htdocs/langs/cy_GB/salaries.lang +++ b/htdocs/langs/cy_GB/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cyfrif cyfrifo a ddefnyddir ar gyfer trydydd parti defnyddwyr -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Bydd y cyfrif cyfrifyddu pwrpasol a ddiffinnir ar gerdyn defnyddiwr yn cael ei ddefnyddio ar gyfer cyfrifyddu Subledger yn unig. Bydd yr un hwn yn cael ei ddefnyddio ar gyfer y Cyfriflyfr Cyffredinol ac fel gwerth rhagosodedig cyfrifyddu Subledger os nad yw cyfrif cyfrif defnyddiwr pwrpasol ar ddefnyddiwr wedi'i ddiffinio. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Account (from the Chart of Account) used by default for "user" third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Cyfrif cyfrifo yn ddiofyn ar gyfer taliadau cyflog CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Yn ddiofyn, gadewch yn wag yr opsiwn "Creu cyfanswm taliad yn awtomatig" wrth greu Cyflog Salary=Cyflog diff --git a/htdocs/langs/cy_GB/stocks.lang b/htdocs/langs/cy_GB/stocks.lang index 05e0ffee42d..6b59ee75b9e 100644 --- a/htdocs/langs/cy_GB/stocks.lang +++ b/htdocs/langs/cy_GB/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Dyddiad yn y dyfodol StocksByLotSerial=Stociau fesul lot/cyfres LotSerial=Llawer/Cyfresi LotSerialList=Rhestr o lot/cyfresi +SubjectToLotSerialOnly=Products subject to lot/serial only Movements=Symudiadau ErrorWarehouseRefRequired=Mae angen enw cyfeirnod warws ListOfWarehouses=Rhestr o warysau @@ -48,7 +49,7 @@ StockCorrection=Cywiro stoc CorrectStock=Stoc cywir StockTransfer=Trosglwyddo stoc TransferStock=Trosglwyddo stoc -MassStockTransferShort=Trosglwyddiad stoc torfol +MassStockTransferShort=Bulk stock change StockMovement=Symudiad stoc StockMovements=Symudiadau stoc NumberOfUnit=Nifer o unedau @@ -146,8 +147,9 @@ Replenishments=Adnewyddiadau NbOfProductBeforePeriod=Swm y cynnyrch %s mewn stoc cyn y cyfnod dethol (< %s) NbOfProductAfterPeriod=Swm y cynnyrch %s mewn stoc ar ôl cyfnod dethol (> %s) MassMovement=Symudiad torfol -SelectProductInAndOutWareHouse=Dewiswch warws ffynhonnell a warws targed, cynnyrch a maint yna cliciwch "%s". Unwaith y gwneir hyn ar gyfer yr holl symudiadau gofynnol, cliciwch ar "%s". +SelectProductInAndOutWareHouse=Select a source warehouse (optional), a target warehouse, a product and a quantity then click "%s". Once this is done for all required movements, click on "%s". RecordMovement=Trosglwyddo cofnodion +RecordMovements=Record stock movements ReceivingForSameOrder=Derbynebau ar gyfer yr archeb hon StockMovementRecorded=Symudiadau stoc wedi'u cofnodi RuleForStockAvailability=Rheolau ar ofynion stoc @@ -234,7 +236,7 @@ StockIncrease=Cynnydd stoc StockDecrease=Gostyngiad stoc InventoryForASpecificWarehouse=Rhestr ar gyfer warws penodol InventoryForASpecificProduct=Rhestr ar gyfer cynnyrch penodol -StockIsRequiredToChooseWhichLotToUse=Mae angen stoc i ddewis pa lot i'w ddefnyddio +StockIsRequiredToChooseWhichLotToUse=An existing stock is required to be able to choose which lot to use ForceTo=Llu i AlwaysShowFullArbo=Arddangos coeden lawn o warws ar naidlen o ddolenni warws (Rhybudd: Gall hyn leihau perfformiadau yn ddramatig) StockAtDatePastDesc=Yma gallwch weld y stoc (stoc go iawn) ar ddyddiad penodol yn y gorffennol @@ -265,10 +267,53 @@ ProductBarcodeDoesNotExist=Nid yw cynnyrch gyda chod bar yn bodoli WarehouseId=ID warws WarehouseRef=Warws Cyf SaveQtyFirst=Arbedwch y meintiau go iawn a ddyfeisiwyd yn gyntaf, cyn gofyn am greu'r symudiad stoc. +ToStart=Start InventoryStartedShort=Dechreuwyd ErrorOnElementsInventory=Gweithred wedi'i chanslo am y rhesymau canlynol: ErrorCantFindCodeInInventory=Methu dod o hyd i'r cod canlynol yn y rhestr eiddo QtyWasAddedToTheScannedBarcode=Llwyddiant!! Ychwanegwyd y swm at yr holl god bar y gofynnwyd amdano. Gallwch chi gau'r teclyn Sganiwr. -StockChangeDisabled=Newid ar y stoc wedi'i analluogi +StockChangeDisabled=Stock change disabled NoWarehouseDefinedForTerminal=Dim warws wedi'i ddiffinio ar gyfer terfynell ClearQtys=Clirio pob swm +ModuleStockTransferName=Advanced Stock Transfer +ModuleStockTransferDesc=Advanced management of Stock Transfer, with generation of transfer sheet +StockTransferNew=New stock transfer +StockTransferList=Stock transfers list +ConfirmValidateStockTransfer=Are you sure you want to validate this stocks transfer with reference %s ? +ConfirmDestock=Decrease of stocks with transfer %s +ConfirmDestockCancel=Cancel decrease of stocks with transfer %s +DestockAllProduct=Decrease of stocks +DestockAllProductCancel=Cancel decrease of stocks +ConfirmAddStock=Increase stocks with transfer %s +ConfirmAddStockCancel=Cancel increase of stocks with transfer %s +AddStockAllProduct=Increase of stocks +AddStockAllProductCancel=Cancel increase of stocks +DatePrevueDepart=Intended date of departure +DateReelleDepart=Real date of departure +DatePrevueArrivee=Intended date of arrival +DateReelleArrivee=Real date of arrival +HelpWarehouseStockTransferSource=If this warehouse is set, only itself and its children will be available as source warehouse +HelpWarehouseStockTransferDestination=If this warehouse is set, only itself and its children will be available as destination warehouse +LeadTimeForWarning=Lead time before alert (in days) +TypeContact_stocktransfer_internal_STFROM=Sender of stocks transfer +TypeContact_stocktransfer_internal_STDEST=Recipient of stocks transfer +TypeContact_stocktransfer_internal_STRESP=Responsible of stocks transfer +StockTransferSheet=Stocks transfer sheet +StockTransferSheetProforma=Proforma stocks transfer sheet +StockTransferDecrementation=Decrease source warehouses +StockTransferIncrementation=Increase destination warehouses +StockTransferDecrementationCancel=Cancel decrease of source warehouses +StockTransferIncrementationCancel=Cancel increase of destination warehouses +StockStransferDecremented=Source warehouses decreased +StockStransferDecrementedCancel=Decrease of source warehouses canceled +StockStransferIncremented=Closed - Stocks transfered +StockStransferIncrementedShort=Stocks transfered +StockStransferIncrementedShortCancel=Increase of destination warehouses canceled +StockTransferNoBatchForProduct=Product %s doesn't use batch, clear batch on line and retry +StockTransferSetup = Stocks Transfer module configuration +Settings=Settings +StockTransferSetupPage = Configuration page for stocks transfer module +StockTransferRightRead=Read stocks transfers +StockTransferRightCreateUpdate=Create/Update stocks transfers +StockTransferRightDelete=Delete stocks transfers +BatchNotFound=Lot / serial not found for this product diff --git a/htdocs/langs/cy_GB/stripe.lang b/htdocs/langs/cy_GB/stripe.lang index 04b1fadf885..c50c262f6b1 100644 --- a/htdocs/langs/cy_GB/stripe.lang +++ b/htdocs/langs/cy_GB/stripe.lang @@ -41,7 +41,8 @@ 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 +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +ExampleOfTestBankAcountForSEPA=Example of bank account BAN for direct debit test: %s StripeGateways=Pyrth streipen OAUTH_STRIPE_TEST_ID=ID Cleient Stripe Connect (ca_...) OAUTH_STRIPE_LIVE_ID=ID Cleient Stripe Connect (ca_...) @@ -61,6 +62,7 @@ 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 +CreateBANOnStripe=Create bank on 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 @@ -69,3 +71,8 @@ ToOfferALinkForLiveWebhook=Dolen i'r gosodiad Stripe WebHook i ffonio'r IPN (mod 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 +STRIPE_CARD_PRESENT=Card Present for Stripe Terminals +TERMINAL_LOCATION=Location (address) for Stripe Terminals +RequestDirectDebitWithStripe=Request Direct Debit with Stripe +STRIPE_SEPA_DIRECT_DEBIT=Enable the Direct Debit payments through Stripe + diff --git a/htdocs/langs/cy_GB/ticket.lang b/htdocs/langs/cy_GB/ticket.lang index 56b902682eb..cd780e29517 100644 --- a/htdocs/langs/cy_GB/ticket.lang +++ b/htdocs/langs/cy_GB/ticket.lang @@ -27,6 +27,7 @@ Permission56003=Dileu tocynnau Permission56004=Rheoli tocynnau Permission56005=Gweld tocynnau pob trydydd parti (ddim yn effeithiol ar gyfer defnyddwyr allanol, bob amser yn gyfyngedig i'r trydydd parti y maent yn dibynnu ar) +Tickets=Tickets TicketDictType=Tocyn - Mathau TicketDictCategory=Tocyn - Grwpiau TicketDictSeverity=Tocyn - Difrifoldeb @@ -90,8 +91,8 @@ TicketPublicAccess=Mae rhyngwyneb cyhoeddus nad oes angen unrhyw ddull adnabod a TicketSetupDictionaries=Gellir ffurfweddu'r math o docyn, difrifoldeb a chodau dadansoddol o eiriaduron TicketParamModule=Gosodiad newidyn modiwl TicketParamMail=Gosodiad e-bost -TicketEmailNotificationFrom=Sender e-mail for ticket answers -TicketEmailNotificationFromHelp=Sender e-mail for ticket answers sent from Dolibarr +TicketEmailNotificationFrom=Sender e-mail for notification on answers +TicketEmailNotificationFromHelp=Sender e-mail to use to send the notification email when an answer is provided inside the backoffice. For example noreply@example.com TicketEmailNotificationTo=Notify ticket creation to this e-mail address TicketEmailNotificationToHelp=If present, this e-mail address will be notified of a ticket creation TicketNewEmailBodyLabel=Neges testun wedi'i hanfon ar ôl creu tocyn @@ -99,6 +100,8 @@ TicketNewEmailBodyHelp=Bydd y testun a nodir yma yn cael ei fewnosod yn yr e-bos TicketParamPublicInterface=Gosod rhyngwyneb cyhoeddus TicketsEmailMustExist=Angen cyfeiriad e-bost presennol i greu tocyn TicketsEmailMustExistHelp=Yn y rhyngwyneb cyhoeddus, dylid llenwi'r cyfeiriad e-bost eisoes yn y gronfa ddata i greu tocyn newydd. +TicketCreateThirdPartyWithContactIfNotExist=Ask name and company name for unknown emails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Check if a thirdparty or a contact exists for the email entered. If not, ask a name and a company name to create a third party with contact. PublicInterface=Rhyngwyneb cyhoeddus TicketUrlPublicInterfaceLabelAdmin=URL amgen ar gyfer rhyngwyneb cyhoeddus TicketUrlPublicInterfaceHelpAdmin=Mae'n bosibl diffinio alias i'r gweinydd gwe a thrwy hynny sicrhau bod y rhyngwyneb cyhoeddus ag URL arall ar gael (rhaid i'r gweinydd weithredu fel dirprwy ar yr URL newydd hwn) @@ -147,6 +150,8 @@ TicketsAutoNotifyCloseHelp=Wrth gau tocyn, cynigir i chi anfon neges at un o gys TicketWrongContact=Ar yr amod nad yw cyswllt yn rhan o gysylltiadau tocynnau cyfredol. E-bost heb ei anfon. TicketChooseProductCategory=Product category for ticket support TicketChooseProductCategoryHelp=Select the product category of ticket support. This will be used to automatically link a contract to a ticket. +TicketUseCaptchaCode=Use graphical code (CAPTCHA) when creating a ticket +TicketUseCaptchaCodeHelp=Adds CAPTCHA verification when creating a new ticket. # # Index & list page @@ -190,8 +195,7 @@ TicketAssigned=Tocyn bellach wedi'i neilltuo TicketChangeType=Newid math TicketChangeCategory=Newid cod dadansoddol TicketChangeSeverity=Newid difrifoldeb -TicketAddMessage=Ychwanegu neges -AddMessage=Ychwanegu neges +TicketAddMessage=Add private message MessageSuccessfullyAdded=Ychwanegwyd y tocyn TicketMessageSuccessfullyAdded=Wedi ychwanegu'r neges yn llwyddiannus TicketMessagesList=Rhestr negeseuon @@ -202,8 +206,8 @@ TicketSeverity=Difrifoldeb ShowTicket=Gweler tocyn RelatedTickets=Tocynnau cysylltiedig TicketAddIntervention=Creu ymyrraeth -CloseTicket=Cau| Datrys tocyn -AbandonTicket=Gadael tocyn +CloseTicket=Close|Solve +AbandonTicket=Abandon CloseATicket=Cau|Datrys tocyn ConfirmCloseAticket=Cadarnhau cau tocyn ConfirmAbandonTicket=A ydych yn cadarnhau cau'r tocyn i statws 'Wedi'i adael' @@ -217,18 +221,17 @@ SendMessageByEmail=Anfon neges trwy e-bost TicketNewMessage=Neges newydd ErrorMailRecipientIsEmptyForSendTicketMessage=Mae'r derbynnydd yn wag. Dim anfon e-bost TicketGoIntoContactTab=Ewch i'r tab "Cysylltiadau" i'w dewis -TicketMessageMailIntro=Rhagymadrodd +TicketMessageMailIntro=Message header TicketMessageMailIntroHelp=Dim ond ar ddechrau'r e-bost y caiff y testun hwn ei ychwanegu ac ni fydd yn cael ei gadw. -TicketMessageMailIntroLabelAdmin=Introduction text to all ticket answers TicketMessageMailIntroText=Hello,
A new answer has been added to a ticket that you follow. Here is the message:
TicketMessageMailIntroHelpAdmin=This text will be inserted before the answer when replying to a ticket from Dolibarr -TicketMessageMailSignature=Llofnod -TicketMessageMailSignatureHelp=Dim ond ar ddiwedd yr e-bost y caiff y testun hwn ei ychwanegu ac ni fydd yn cael ei gadw. -TicketMessageMailSignatureText=Message sent by %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Llofnod yr e-bost ymateb -TicketMessageMailSignatureHelpAdmin=Bydd y testun hwn yn cael ei fewnosod ar ôl y neges ymateb. +TicketMessageMailFooter=Message footer +TicketMessageMailFooterHelp=This text is added only at the end of the message sent by email and will not be saved. +TicketMessageMailFooterText=Message sent by %s via Dolibarr +TicketMessageMailFooterHelpAdmin=This text will be inserted after the response message. TicketMessageHelp=Dim ond y testun hwn fydd yn cael ei gadw yn y rhestr negeseuon ar gerdyn tocyn. TicketMessageSubstitutionReplacedByGenericValues=Mae newidynnau amnewid yn cael eu disodli gan werthoedd generig. +ForEmailMessageWillBeCompletedWith=For email messages sent to external users, the message will be completed with TimeElapsedSince=Aeth amser heibio ers hynny TicketTimeToRead=Aeth amser heibio cyn darllen TicketTimeElapsedBeforeSince=Aeth amser heibio cyn / ers hynny @@ -239,6 +242,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Postiwyd neges newydd ar y tocyn gyda TicketAssignedToYou=Tocyn wedi'i neilltuo TicketAssignedEmailBody=Rydych chi wedi cael y tocyn #%s gan %s MarkMessageAsPrivate=Marciwch y neges yn breifat +TicketMessageSendEmailHelp=An email will be sent to all assigned contact (internal contacts, but also external contacts except if the option "%s" is checked) TicketMessagePrivateHelp=Ni fydd y neges hon yn cael ei dangos i ddefnyddwyr allanol TicketEmailOriginIssuer=Y cyhoeddwr o darddiad y tocynnau InitialMessage=Neges Cychwynnol @@ -294,7 +298,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Gallwch weld cynnydd y tocyn yn y rhyngw TicketCloseEmailBodyInfosTrackUrlCustomer=Gallwch edrych ar hanes y tocyn hwn trwy glicio ar y ddolen ganlynol TicketEmailPleaseDoNotReplyToThisEmail=Peidiwch ag ymateb yn uniongyrchol i'r e-bost hwn! Defnyddiwch y ddolen i ymateb i'r rhyngwyneb. TicketPublicInfoCreateTicket=Mae'r ffurflen hon yn eich galluogi i gofnodi tocyn cymorth yn ein system reoli. -TicketPublicPleaseBeAccuratelyDescribe=Disgrifiwch y broblem yn gywir. Darparwch y wybodaeth fwyaf posibl i'n galluogi i adnabod eich cais yn gywir. +TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe your question. Provide the most information possible to allow us to correctly identify your request. TicketPublicMsgViewLogIn=Rhowch ID olrhain tocyn TicketTrackId=ID Tracio Cyhoeddus OneOfTicketTrackId=Un o'ch ID olrhain diff --git a/htdocs/langs/cy_GB/users.lang b/htdocs/langs/cy_GB/users.lang index b3c8ba3ee69..6f2871b0d36 100644 --- a/htdocs/langs/cy_GB/users.lang +++ b/htdocs/langs/cy_GB/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Tynnu o'r grŵp PasswordChangedAndSentTo=Cyfrinair wedi'i newid a'i anfon i %s . PasswordChangeRequest=Cais i newid cyfrinair ar gyfer %s PasswordChangeRequestSent=Cais i newid cyfrinair ar gyfer %s wedi'i anfon at %s . -IfLoginExistPasswordRequestSent=Os yw'r mewngofnodi hwn yn gyfrif dilys, mae e-bost i ailosod cyfrinair wedi'i anfon. +IfLoginExistPasswordRequestSent=If this login is a valid account (with a valid email), an email to reset password has been sent. IfEmailExistPasswordRequestSent=Os yw'r e-bost hwn yn gyfrif dilys, mae e-bost i ailosod cyfrinair wedi'i anfon. ConfirmPasswordReset=Cadarnhau ailosod cyfrinair MenuUsersAndGroups=Defnyddwyr a Grwpiau @@ -66,9 +66,9 @@ LinkedToDolibarrUser=Dolen i'r defnyddiwr LinkedToDolibarrThirdParty=Dolen i drydydd parti CreateDolibarrLogin=Creu defnyddiwr CreateDolibarrThirdParty=Creu trydydd parti -LoginAccountDisableInDolibarr=Cyfrif wedi'i analluogi yn Dolibarr. +LoginAccountDisableInDolibarr=Account disabled in Dolibarr +PASSWORDInDolibarr=Password modified in Dolibarr UsePersonalValue=Defnyddiwch werth personol -InternalUser=Defnyddiwr mewnol ExportDataset_user_1=Defnyddwyr a'u priodweddau DomainUser=Defnyddiwr parth %s Reactivate=Ail-ysgogi @@ -128,3 +128,8 @@ DateLastLogin=Date last login DatePreviousLogin=Date previous login IPLastLogin=IP last login IPPreviousLogin=IP previous login +ShowAllPerms=Show all permission rows +HideAllPerms=Hide all permission rows +UserPublicPageDesc=You can enable a virtual card for this user. An url with the user profile and a barcode will be available to allow anybody with a smartphone to scan it and add your contact to its address book. +EnablePublicVirtualCard=Enable the public virtual user card +PublicVirtualCardUrl=Public virtual user card diff --git a/htdocs/langs/cy_GB/website.lang b/htdocs/langs/cy_GB/website.lang index f7636647a27..ff8eba08bf9 100644 --- a/htdocs/langs/cy_GB/website.lang +++ b/htdocs/langs/cy_GB/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Côd +WebsiteName=Name of the website WebsiteSetupDesc=Crëwch yma y gwefannau yr hoffech eu defnyddio. Yna ewch i wefannau dewislen i'w golygu. DeleteWebsite=Dileu gwefan ConfirmDeleteWebsite=Ydych chi'n siŵr eich bod am ddileu'r wefan hon? Bydd ei holl dudalennau a chynnwys hefyd yn cael eu dileu. Bydd y ffeiliau a uwchlwythwyd (fel i'r cyfeiriadur cyfryngau, y modiwl ECM, ...) yn aros. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Ychwanegiad ar waelod Pennawd HTML (cyffredin i bob tudalen) WEBSITE_ROBOT=Ffeil robot (robots.txt) WEBSITE_HTACCESS=Gwefan .htaccess ffeil WEBSITE_MANIFEST_JSON=Ffeil manifest.json gwefan -WEBSITE_README=ffeil README.md WEBSITE_KEYWORDSDesc=Defnyddiwch goma i wahanu gwerthoedd -EnterHereLicenseInformation=Rhowch meta data neu wybodaeth trwydded yma i lenwi ffeil README.md. os byddwch yn dosbarthu eich gwefan fel templed, bydd y ffeil yn cael ei chynnwys yn y pecyn temtasiwn. +EnterHereReadmeInformation=Enter here a description of the website. If you distribute your website as a template, the file will be included into the temptate package. +EnterHereLicenseInformation=Enter here the LICENSE of the code of the website. If you distribute your website as a template, the file will be included into the temptate package. HtmlHeaderPage=Pennawd HTML (penodol i'r dudalen hon yn unig) PageNameAliasHelp=Enw neu enw arall y dudalen.
Mae'r alias hwn hefyd yn cael ei ddefnyddio i greu URL SEO pan fydd gwefan yn cael ei rhedeg o westeiwr Rhithwir o weinydd Gwe (fel Apacke, Nginx, ...). Defnyddiwch y botwm " %s " i olygu'r alias hwn. EditTheWebSiteForACommonHeader=Nodyn: Os ydych chi am ddiffinio pennyn wedi'i bersonoli ar gyfer pob tudalen, golygwch y pennawd ar lefel y wefan yn lle ar y dudalen/cynhwysydd. @@ -42,6 +43,8 @@ ViewPageInNewTab=Gweld y dudalen mewn tab newydd SetAsHomePage=Gosod fel tudalen Hafan RealURL=URL go iawn ViewWebsiteInProduction=Gweld gwefan gan ddefnyddio URLs cartref +Virtualhost=Virtual host or domain name +VirtualhostDesc=The name of the Virtual host or domain (For example: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Defnyddiwch gydag Apache/NGinx/...
Creu ar eich gweinydd gwe (Apache, Nginx, ...) Gwesteiwr Rhithwir pwrpasol gyda PHP wedi'i alluogi a chyfeiriadur Root ar a0342fccfda19bz87807fcfda19b8070607 a0342fccfda19bz80z0707fc a0342fccfda19bz80z07607 a0342fccfda19bz80z0707fcf a0342fccfda19b8070607 a0342fccfda19bz80z0707fccf ExampleToUseInApacheVirtualHostConfig=Enghraifft i'w defnyddio yn setup gwesteiwr rhithwir Apache: YouCanAlsoTestWithPHPS= Defnyddio gyda PHP gweinydd hymgorffori
On datblygu amgylchedd, efallai y byddai'n well i chi i brofi safle gyda'r PHP gwreiddio weinydd y we (PHP 5.5 yn ofynnol) drwy redeg
php -S 0.0.0.0:8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%s tudalen(nau)/cynhwysydd(nau) wedi'u hadfywio RegenerateWebsiteContent=Adfywio ffeiliau storfa gwefan AllowedInFrames=Caniateir mewn Fframiau DefineListOfAltLanguagesInWebsiteProperties=Diffinio rhestr o'r holl ieithoedd sydd ar gael yn briodweddau gwefan. -GenerateSitemaps=Cynhyrchu ffeil map gwefan gwefan +GenerateSitemaps=Generate website sitemap.xml file ConfirmGenerateSitemaps=Os byddwch yn cadarnhau, byddwch yn dileu'r ffeil map gwefan bresennol... ConfirmSitemapsCreation=Cadarnhau cynhyrchu mapiau gwefan SitemapGenerated=Ffeil map gwefan %s wedi'i chynhyrchu @@ -145,3 +148,10 @@ ImportFavicon=Favicon ErrorFaviconType=Rhaid i Favicon fod yn png ErrorFaviconSize=Rhaid i Favicon fod o faint 16x16, 32x32 neu 64x64 FaviconTooltip=Uwchlwythwch ddelwedd sydd angen bod yn png (16x16, 32x32 neu 64x64) +NextContainer=Next page/container +PreviousContainer=Previous page/container +WebsiteMustBeDisabled=The website must have the status "%s" +WebpageMustBeDisabled=The web page must have the status "%s" +SetWebsiteOnlineBefore=When website is offline, all pages are offline. Change status of website first. +Booking=Booking +Reservation=Reservation diff --git a/htdocs/langs/cy_GB/withdrawals.lang b/htdocs/langs/cy_GB/withdrawals.lang index 4a5490cd041..16953ad3c87 100644 --- a/htdocs/langs/cy_GB/withdrawals.lang +++ b/htdocs/langs/cy_GB/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Anfoneb yn aros am drosglwyddiad credyd AmountToWithdraw=Swm i dynnu'n ôl AmountToTransfer=Amount to transfer NoInvoiceToWithdraw=Nid oes anfoneb ar agor ar gyfer '%s' yn aros. Ewch ar dab '%s' ar gerdyn anfoneb i wneud cais. -NoSupplierInvoiceToWithdraw=Nid oes anfoneb cyflenwr gyda 'Ceisiadau credyd uniongyrchol' yn aros. Ewch ar dab '%s' ar gerdyn anfoneb i wneud cais. +NoSupplierInvoiceToWithdraw=No supplier invoice with open '%s' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Defnyddiwr sy'n Gyfrifol WithdrawalsSetup=Gosod taliad debyd uniongyrchol CreditTransferSetup=Gosodiad trosglwyddo credyd @@ -42,6 +42,7 @@ CreditTransferStatistics=Ystadegau trosglwyddo credyd Rejects=Yn gwrthod LastWithdrawalReceipt=Derbynebau debyd uniongyrchol %s diweddaraf MakeWithdrawRequest=Gwneud cais am daliad debyd uniongyrchol +MakeWithdrawRequestStripe=Make a direct debit payment request via Stripe MakeBankTransferOrder=Gwneud cais trosglwyddo credyd WithdrawRequestsDone=%s ceisiadau taliad debyd uniongyrchol wedi'u cofnodi BankTransferRequestsDone=%s ceisiadau trosglwyddo credyd wedi'u cofnodi @@ -100,8 +101,11 @@ CreditDate=Credyd ar WithdrawalFileNotCapable=Methu cynhyrchu ffeil derbynneb tynnu'n ôl ar gyfer eich gwlad %s (Ni chefnogir eich gwlad) ShowWithdraw=Dangos Archeb Debyd Uniongyrchol IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Fodd bynnag, os oes gan yr anfoneb o leiaf un archeb talu debyd uniongyrchol heb ei phrosesu eto, ni fydd yn cael ei gosod fel un a dalwyd er mwyn caniatáu rheoli codi arian ymlaen llaw. -DoStandingOrdersBeforePayments=Mae'r tab hwn yn eich galluogi i ofyn am orchymyn talu debyd uniongyrchol. Unwaith y bydd wedi'i wneud, ewch i'r ddewislen Banc-> Taliad trwy ddebyd uniongyrchol i gynhyrchu a rheoli'r archeb debyd uniongyrchol. Pan fydd archeb debyd uniongyrchol wedi'i chau, bydd taliad ar anfonebau'n cael ei gofnodi'n awtomatig, ac anfonebau'n cael eu cau os yw'r gweddill i'w dalu yn null. -DoCreditTransferBeforePayments=Mae'r tab hwn yn caniatáu ichi ofyn am orchymyn trosglwyddo credyd. Ar ôl ei wneud, ewch i'r ddewislen Banc-> Taliad trwy drosglwyddiad credyd i gynhyrchu a rheoli'r gorchymyn trosglwyddo credyd. Pan fydd gorchymyn trosglwyddo credyd wedi'i gau, bydd taliad ar anfonebau'n cael ei gofnodi'n awtomatig, ac anfonebau'n cael eu cau os yw'r gweddill i'w dalu yn null. +DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, you can go into menu "Bank->Payment by direct debit" to generate and manage a Direct debit order file. +DoStandingOrdersBeforePayments2=You can also send a request directly to a SEPA payment processor like Stripe, ... +DoStandingOrdersBeforePayments3=When direct debit order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. +DoCreditTransferBeforePayments=This tab allows you to request a credit transfer order. Once done, go into menu "Bank->Payment by credit transfer" to generate and manage a Credit transfer order file. +DoCreditTransferBeforePayments3=When credit transfer order is closed, payment on invoices will be automatically recorded, and invoices closed if remainder to pay is null. WithdrawalFile=Ffeil archeb debyd CreditTransferFile=Ffeil trosglwyddo credyd SetToStatusSent=Gosod i statws "Ffeil Wedi'i Anfon" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Methu creu cais debyd uniongyrchol am swm gwag. SepaMandate=Mandad Debyd Uniongyrchol SEPA SepaMandateShort=Mandad SEPA PleaseReturnMandate=Dychwelwch y ffurflen fandad hon trwy e-bost i %s neu drwy'r post i -SEPALegalText=Drwy lofnodi’r ffurflen fandad hon, rydych yn awdurdodi (A) %s i anfon cyfarwyddiadau i’ch banc i ddebydu’ch cyfrif a (B) i’ch banc i ddebydu’ch cyfrif yn unol â chyfarwyddiadau %s. Fel rhan o’ch hawliau, mae gennych hawl i gael ad-daliad gan eich banc o dan delerau ac amodau eich cytundeb gyda’ch banc. Esbonnir eich hawliau o ran y mandad uchod mewn datganiad y gallwch ei gael gan eich banc. +SEPALegalText=By signing this mandate form, you authorize (A) %s and its payment service provider to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. CreditorIdentifier=Dynodwr Credydwr CreditorName=Enw Credydwr SEPAFillForm=(B) Cwblhewch yr holl feysydd sydd wedi eu nodi â * diff --git a/htdocs/langs/cy_GB/workflow.lang b/htdocs/langs/cy_GB/workflow.lang index dcffec6a9b0..6b7442731b1 100644 --- a/htdocs/langs/cy_GB/workflow.lang +++ b/htdocs/langs/cy_GB/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Dosbarthu archeb bryn descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Dosbarthwch archeb brynu ffynhonnell gysylltiedig fel y'i derbyniwyd pan ddilysir derbyniad (ac os yw'r swm a dderbynnir gan bob derbyniad yr un peth ag yn yr archeb brynu i ddiweddaru) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Dosbarthwch archeb brynu ffynhonnell gysylltiedig fel un a dderbyniwyd pan fydd derbyniad ar gau (ac os yw'r swm a dderbynnir gan bob derbynfa yr un peth ag yn yr archeb brynu i ddiweddaru) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Dosbarthu derbyniadau i "bil" pan fydd archeb cyflenwr cysylltiedig yn cael ei ddilysu +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Classify receptions to "billed" when a linked purchase invoice is validated (and if the amount of the invoice is the same as the total amount of the linked receptions) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=When creating a ticket, link available contracts of matching thirdparty descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=When linking contracts, search among those of parents companies @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Caewch yr holl ymyriadau sy'n gysylltiedi AutomaticCreation=Creu awtomatig AutomaticClassification=Dosbarthiad awtomatig # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Dosbarthu llwyth ffynhonnell gysylltiedig fel un sydd ar gau pan fydd anfoneb cwsmer yn cael ei dilysu +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked shipments) AutomaticClosing=Automatic closing AutomaticLinking=Automatic linking diff --git a/htdocs/langs/da_DK/accountancy.lang b/htdocs/langs/da_DK/accountancy.lang index b8ba3cba44c..bfce7602092 100644 --- a/htdocs/langs/da_DK/accountancy.lang +++ b/htdocs/langs/da_DK/accountancy.lang @@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Vælg linjeskift type ACCOUNTING_EXPORT_PREFIX_SPEC=Angiv præfiks for filnavnet ThisService=Denne ydelse ThisProduct=Dette produkt -DefaultForService=Forvalg ydelse -DefaultForProduct=Forvalg produkt +DefaultForService=Standard for tjenester +DefaultForProduct=Standard for produkter ProductForThisThirdparty=Produkt til denne tredjepart ServiceForThisThirdparty=Service for denne tredjepart CantSuggest=Kan ikke foreslå @@ -59,6 +59,7 @@ MainAccountForSuppliersNotDefined=Hoved kontokort for leverandører, der ikke er MainAccountForUsersNotDefined=Standardkonto for brugere, der ikke er defineret i opsætningen MainAccountForVatPaymentNotDefined=Standardkonto for momsbetaling ikke defineret i opsætningen MainAccountForSubscriptionPaymentNotDefined=Hovedkontokonto for abonnementsbetaling, der ikke er defineret i opsætningen +UserAccountNotDefined=Regnskabskonto for bruger er ikke defineret i opsætning AccountancyArea=Bogførings område AccountancyAreaDescIntro=Brugen af regnskabsmodulet sker i følgende trin: @@ -100,7 +101,8 @@ ShowAccountingAccount=Vis regnskabs konto ShowAccountingJournal=Vis kontokladde ShowAccountingAccountInLedger=Vis regnskabskonto i hovedbog ShowAccountingAccountInJournals=Vis regnskabskonto i tidsskrifter -AccountAccountingSuggest=Forelslået regnskabskonto +DataUsedToSuggestAccount=Data brugt til at foreslå konto +AccountAccountingSuggest=Konto foreslået MenuDefaultAccounts=Standardkonti MenuBankAccounts=Bankkonti MenuVatAccounts=Momskonti @@ -125,6 +127,7 @@ WriteBookKeeping=Registrer transaktioner i regnskabet Bookkeeping=Hovedbog BookkeepingSubAccount=Underkonti AccountBalance=Kontobalance +AccountBalanceSubAccount=Underkonti balance ObjectsRef=Objektreference CAHTF=Samlet købeleverandør før skat TotalExpenseReport=Rapport for samlede udgifter @@ -164,42 +167,45 @@ ACCOUNTANCY_COMBO_FOR_AUX=Aktivér kombinationsliste for datterselskabskonto (ka 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, hvilken periode er valgt som standard -ACCOUNTING_SELL_JOURNAL=Salgskladde -ACCOUNTING_PURCHASE_JOURNAL=Indkøbskladde -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diversekladde +ACCOUNTING_SELL_JOURNAL=Salgsjournal (salg og returnering) +ACCOUNTING_PURCHASE_JOURNAL=Købsjournal (køb og returnering) +ACCOUNTING_BANK_JOURNAL=Kassekladde (kvitteringer og udbetalinger) ACCOUNTING_EXPENSEREPORT_JOURNAL=Udgiftskladde -ACCOUNTING_SOCIAL_JOURNAL=Kladde for skat/afgift +ACCOUNTING_MISCELLANEOUS_JOURNAL=Almindelig journal ACCOUNTING_HAS_NEW_JOURNAL=Ny Journal +ACCOUNTING_INVENTORY_JOURNAL=Lagerjournal +ACCOUNTING_SOCIAL_JOURNAL=Kladde for skat/afgift ACCOUNTING_RESULT_PROFIT=Resultatregnskabskonto (fortjeneste) ACCOUNTING_RESULT_LOSS=Resultatregnskabskonto (tab) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Luknings journal -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Regnskabskonto ved overgangs bankoverførsel +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Konto (fra kontoplanen), der skal bruges som konto for overgangsbankoverførsler TransitionalAccount=Overgangs bankoverførsels konto -ACCOUNTING_ACCOUNT_SUSPENSE=Regnskabskonto for afventning -DONATION_ACCOUNTINGACCOUNT=Regnskabskonto til registrering af donationer -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Regnskabskonto for at registrere abonnementer +ACCOUNTING_ACCOUNT_SUSPENSE=Konto (fra kontoplanen), der skal bruges som konto for ikke-allokerede midler enten modtaget eller betalt, dvs. midler i "venter" +DONATION_ACCOUNTINGACCOUNT=Konto (fra kontoplanen), der skal bruges til at registrere donationer (donationsmodul) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Konto (fra kontoplanen), der skal bruges til at registrere medlemskabsabonnementer (Medlemsmodul - hvis medlemskab registreres uden faktura) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Regnskabskonto er som standard for at registrere kundeindbetaling +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Konto (fra kontoplanen) skal bruges som standardkonto til registrering af kundeindbetaling UseAuxiliaryAccountOnCustomerDeposit=Gem kundekonto som individuel konto i hovedbog for linjer med forudbetalinger (hvis den er deaktiveret, forbliver individuel konto for forudbetalingslinjer tomme) -ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Regnskabskonto som standard for at registrere leverandørindskud +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Konto (fra kontoplanen), der skal bruges som standard UseAuxiliaryAccountOnSupplierDeposit=Gem leverandørkonto som individuel konto i hovedbog for linjer med forudbetalinger (hvis den er deaktiveret, vil individuel konto for forudbetalingslinjer forblive tom) +ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Regnskabskonto som standard for at registrere kundebeholdt garanti -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Regnskabskonto som standard for de købte produkter (bruges hvis ikke defineret i produktarket) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Regnskabskonto som standard for de købte produkter i EØF (brugt, hvis ikke defineret i produktarket) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Regnskabskonto som standard for de købte produkter og importeret ud af EØF (brugt, hvis ikke defineret i produktarket) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Regnskabskonto som standard for solgte varer (hvis ikke defineret for varen) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Regnskabskonto som standard for de produkter, der sælges i EØF (bruges, hvis de ikke er defineret i produktarket) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Regnskabskonto som standard for de produkter, der er solgt og eksporteret ud af EØF (brugt, hvis ikke defineret i produktarket) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de produkter, der er købt i samme land (bruges, hvis det ikke er defineret i produktarket) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for produkter købt fra EF til et andet EF-land (bruges, hvis det ikke er defineret i produktarket) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de produkter, der er købt og importeret fra ethvert andet fremmed land (bruges, hvis det ikke er defineret i produktarket) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de solgte produkter (bruges, hvis det ikke er defineret i produktarket) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de produkter, der sælges fra EF til et andet EF-land (bruges, hvis det ikke er defineret i produktarket) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de produkter, der sælges og eksporteres til ethvert andet fremmed land (bruges, hvis det ikke er defineret i produktarket) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Regnskabskonto som standard for købte ydelser (hvis ikke defineret for varen) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Regnskabskonto som standard for de købte tjenester i EØF (brugt, hvis ikke defineret i servicearket) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Regnskabskonto som standard for de købte tjenester og importeret ud af EØF (brugt hvis ikke defineret i servicearket) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Regnskabskonto som standard for solgte ydelser (hvis ikke defineret for varen) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Regnskabskonto som standard for de tjenester, der sælges i EØF (bruges, hvis de ikke er defineret i servicearket) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Regnskabskonto er som standard for de tjenester, der sælges og eksporteres ud af EØF (bruges, hvis de ikke er defineret i servicearket) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de tjenester, der er købt i samme land (bruges, hvis det ikke er defineret i servicearket) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de tjenester, der er købt fra EEC til et andet EEC-land (bruges, hvis det ikke er defineret i servicearket) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de tjenester, der er købt og importeret fra et andet fremmed land (bruges, hvis det ikke er defineret i servicearket) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de solgte tjenester (bruges, hvis det ikke er defineret i servicearket) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de tjenester, der sælges fra EEC til et andet EEC-land (bruges, hvis det ikke er defineret i servicearket) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for de tjenester, der sælges og eksporteres til ethvert andet fremmed land (bruges, hvis det ikke er defineret i servicearket) Doctype=Dokumenttype Docdate=Dato @@ -214,7 +220,8 @@ Codejournal=Kladde JournalLabel=Journalmærke NumPiece=Partsnummer TransactionNumShort=Transaktionsnr. -AccountingCategory=Brugerdefineret gruppe +AccountingCategory=Brugerdefineret gruppe af konti +AccountingCategories=Brugerdefinerede grupper af konti GroupByAccountAccounting=Gruppér efter hovedkontokonto GroupBySubAccountAccounting=Gruppér efter underkonti AccountingAccountGroupsDesc=Du kan definere her nogle grupper af regnskabskonto. De vil blive brugt til personlige regnskabsrapporter. @@ -262,19 +269,20 @@ ShowSubtotalByGroup=Vis subtotal efter niveau Pcgtype=Kontoens gruppe PcgtypeDesc=Kontogruppe bruges som foruddefinerede 'filter' og 'gruppering' kriterier for nogle regnskabsrapporter. For eksempel bruges 'INKOMST' eller 'UDGIFT' som grupper til regnskabsmæssige regnskaber for produkter til at oprette omkostnings- / indkomstrapporten. +AccountingCategoriesDesc=Brugerdefineret gruppe af konti kan bruges til at gruppere regnskabskonti i ét navn for at lette filterbrug eller opbygning af tilpassede rapporter. Reconcilable=Afstemning TotalVente=Samlet omsætning ekskl. moms TotalMarge=Samlet salgsforskel -DescVentilCustomer=Her findes listen over kundefakturalinjer, der er bundet (eller ikke) til en varekonto -DescVentilMore=I de fleste tilfælde kan du, hvis du bruger foruddefinerede produkter eller tjenester, og du angiver kontonummeret på produkt- / servicekortet, vil applikationen kunne foretage hele bindingen mellem dine fakturaer og bogføringen af ​​dit kontoplan, bare i et klik med knappen "%s" . Hvis kontoen ikke er angivet på produkt- / servicekort, eller hvis du stadig har nogle linjer, der ikke er bundet til en konto, skal du lave en manuel binding fra menuen " %s". -DescVentilDoneCustomer=Her findes list over fakturalinjer bundet til kunder og deres varekonti -DescVentilTodoCustomer=Bogfør fakturaer, der ikke allerede er bogført til en varekonto -ChangeAccount=Skift regnskabskonto for vare/ydelse for valgte linjer med følgende regnskabskonto: +DescVentilCustomer=Se her listen over kundefakturalinjer, der er bundet (eller ej) til en produktkonto fra kontoplan +DescVentilMore=I de fleste tilfælde, hvis du bruger foruddefinerede produkter eller tjenester, og du angiver kontoen (fra kontoplan) på produkt-/servicekortet, vil applikationen være i stand til at foretage hele bindingen mellem dine fakturalinjer og regnskabskontoen i dit diagram af konti, bare med et enkelt klik med knappen "%s" . Hvis konto ikke var sat på produkt-/servicekort, eller hvis du stadig har nogle linjer, der ikke er bundet til en konto, skal du foretage en manuel binding fra menuen " %s ". +DescVentilDoneCustomer=Se her listen over linjer med fakturakunder og deres produktkonto fra kontoplan +DescVentilTodoCustomer=Bind fakturalinjer, der ikke allerede er bundet til en produktkonto fra kontoplan +ChangeAccount=Skift produkt-/servicekonto (fra kontoplan) for de valgte linjer med følgende konto: Vide=- -DescVentilSupplier=Se her listen over leverandørfakturelinjer, der er bundet eller endnu ikke bundet til en produktregnskabskonto (kun post, der ikke allerede er overført i regnskab, er synlig) +DescVentilSupplier=Se her listen over leverandørfakturalinjer, der er bundet eller endnu ikke bundet til en produktkonto fra kontoplan (kun post, der ikke allerede er overført i regnskabet er synlig) DescVentilDoneSupplier=Se her listen over linjer med leverandørfakturaer og deres regnskabskonto DescVentilTodoExpenseReport=Bogfør udgiftsrapportlinjer, der ikke allerede er bogført, til en gebyrkonto DescVentilExpenseReport=Her vises listen over udgiftsrapporter linjer bundet (eller ej) til en gebyrkonto @@ -286,20 +294,21 @@ DescClosure=Se her antallet af bevægelser pr. måned, der endnu ikke er valider OverviewOfMovementsNotValidated=Oversigt over bevægelser, der ikke er valideret og låst AllMovementsWereRecordedAsValidated=Alle bevægelser blev registreret som validerede og låste NotAllMovementsCouldBeRecordedAsValidated=Ikke alle bevægelser kunne registreres som validerede og låste -ValidateMovements=Valider og lås registrering... +ValidateMovements=Valider og lås bevægelser... DescValidateMovements=Enhver ændring eller sletning af skrivning, bogstaver og sletning er forbudt. Alle poster til en øvelse skal valideres, ellers er lukning ikke mulig ValidateHistory=Automatisk Bogføring AutomaticBindingDone=Automatiske bindinger udført (%s) - Automatisk binding er ikke mulig for nogle poster (%s) +DoManualBindingForFailedRecord=Du skal lave et manuelt link for %s række(r), der ikke linkes automatisk. -ErrorAccountancyCodeIsAlreadyUse=Fejl. Du kan ikke slette denne regnskabskonto, fordi den er i brug +ErrorAccountancyCodeIsAlreadyUse=Fejl, du kan ikke fjerne eller deaktivere denne kontoplan, fordi den er brugt MvtNotCorrectlyBalanced=Bevægelse ikke korrekt afbalanceret. Debet = %s & Kredit = %s Balancing=Balancing FicheVentilation=Bogførings Oversigt GeneralLedgerIsWritten=Transaktionerne er blevet bogført GeneralLedgerSomeRecordWasNotRecorded=Nogle af transaktionerne kunne ikke journaliseres. Hvis der ikke er nogen anden fejlmeddelelse, er det sandsynligvis fordi de allerede var journaliseret. NoNewRecordSaved=Ikke mere post at overføre -ListOfProductsWithoutAccountingAccount=Liste over varer, der ikke er bundet til nogen regnskabskonto +ListOfProductsWithoutAccountingAccount=Liste over produkter, der ikke er bundet til nogen kontoplan ChangeBinding=Ret Bogføring Accounted=Regnskab i hovedbog NotYetAccounted=Endnu ikke overført til regnskab @@ -322,9 +331,10 @@ AccountingJournalType1=Diverse operationer AccountingJournalType2=Salg AccountingJournalType3=Køb AccountingJournalType4=Bank -AccountingJournalType5=Udgiftsrapport +AccountingJournalType5=Udgiftsrapporter AccountingJournalType8=Beholdning AccountingJournalType9=Har nyt +GenerationOfAccountingEntries=Generering af regnskabsposteringer ErrorAccountingJournalIsAlreadyUse=Denne kladde er allerede i brug AccountingAccountForSalesTaxAreDefinedInto=Bemærk: Regnskabskonto for salgsmoms er defineret i menuen %s - %s NumberOfAccountancyEntries=Antal poster @@ -332,10 +342,14 @@ NumberOfAccountancyMovements=Antal bevægelser ACCOUNTING_DISABLE_BINDING_ON_SALES=Deaktiver binding og overførsel i regnskab ved salg (kundefakturaer tages ikke med i regnskabet) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deaktiver binding og overførsel i regnskab ved køb (leverandørfakturaer tages ikke med i regnskabet) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Deaktiver binding og overførsel i regnskab på udgiftsrapporter (udgiftsrapporter tages ikke med i regnskabet) +ACCOUNTING_ENABLE_LETTERING=Aktiver bogstavfunktionen i regnskabet +ACCOUNTING_ENABLE_AUTOLETTERING=Aktiver den automatiske bogstaver ved overførsel til regnskab ## Export +NotExportLettering=Eksporter ikke bogstaverne, når du genererer filen NotifiedExportDate=Flag eksporterede linjer som eksporteret (for at ændre en linje skal du slette hele transaktionen og overføre den til regnskab igen) NotifiedValidationDate=Valider og lås de eksporterede indgange (samme effekt som "%s"-funktionen, ændring og sletning af linjerne vil DEFINITIVT ikke være mulig) +NotifiedExportFull=Eksportere dokumenter? DateValidationAndLock=Datovalidering og lås ConfirmExportFile=Bekræftelse af genereringen af den regnskabsmæssige eksportfil? ExportDraftJournal=Eksporter udkast til kladde @@ -392,7 +406,7 @@ SaleLocal=Lokalt salg SaleExport=Eksport salg SaleEEC=Salg i EU SaleEECWithVAT=Salg i EU med en moms, der ikke er null, så vi antager, at dette IKKE er et intrakommunalt salg, og den foreslåede konto er standardproduktskontoen. -SaleEECWithoutVATNumber=Du kan fastsætte moms nummer for tredjepart eller produktkonto om nødvendigt. +SaleEECWithoutVATNumber=Salg i EEC uden moms, men tredjemands moms-id er ikke defineret. Vi falder tilbage på kontoen for standardsalg. Du kan rette tredjepartens moms-id eller ændre den produktkonto, der er foreslået til binding, hvis det er nødvendigt. ForbiddenTransactionAlreadyExported=Forbudt: Transaktionen er blevet valideret og/eller eksporteret. ForbiddenTransactionAlreadyValidated=Forbudt: Transaktionen er blevet valideret. ## Dictionary @@ -401,7 +415,11 @@ Calculated=Beregnet Formula=Formel ## Reconcile +LetteringAuto=Afstem auto +LetteringManual=Forene manual Unlettering=Uforlige +UnletteringAuto=Afstem auto +UnletteringManual=Uafstemt manual AccountancyNoLetteringModified=Ingen afstemning ændret AccountancyOneLetteringModifiedSuccessfully=Én afstemning blev ændret med succes AccountancyLetteringModifiedSuccessfully=%s afstemning blev ændret @@ -410,8 +428,9 @@ AccountancyOneUnletteringModifiedSuccessfully=Én afstemning blev ændret med su AccountancyUnletteringModifiedSuccessfully=%s afstemning blev ændret med succes ## Confirm box -ConfirmMassUnlettering=Bekræftelse af masseafstemning -ConfirmMassUnletteringQuestion=Er du sikker på, at du vil afstemme de %s valgte post(er)? +ConfirmMassUnletteringAuto=Bekræftelse af automatisk afstemning af bulk +ConfirmMassUnletteringManual=Bekræftelse af manuel afstemning af bulk +ConfirmMassUnletteringQuestion=Er du sikker på, at du vil afstemme de valgte %s-poster()? ConfirmMassDeleteBookkeepingWriting=Bekræftelse på massesletning ConfirmMassDeleteBookkeepingWritingQuestion=Dette vil slette transaktionen fra regnskabet (alle linjer relateret til den samme transaktion vil blive slettet) Er du sikker på, at du vil slette de %s valgte post(er)? @@ -431,6 +450,7 @@ 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 +ErrorArchiveAddFile=Kan ikke lægge "%s" fil i arkivet ## Import ImportAccountingEntries=Regnskabsposter @@ -451,12 +471,13 @@ FECFormatCredit=Kredit (kredit) FECFormatReconcilableCode=Forenelig kode (EcritureLet) FECFormatReconcilableDate=Afstemningsdato (DateLet) FECFormatValidateDate=Stykkets dato valideret (ValidDate) -FECFormatMulticurrencyAmount=Multicurrency-beløb (Montantdevise) +FECFormatMulticurrencyAmount=Multivaluta beløb (Montantdevise) FECFormatMulticurrencyCode=MultiValuta-kode (Idevise) DateExport=Eksport dato WarningReportNotReliable=Advarsel, denne rapport er ikke baseret på Ledger, så indeholder ikke transaktion ændret manuelt i Ledger. Hvis din journalisering er opdateret, er bogføringsvisningen mere præcis. ExpenseReportJournal=Udgifts Journal -InventoryJournal=Opgørelse Journal +DocsAlreadyExportedAreExcluded=Dokumenter, der allerede er eksporteret, er ekskluderet +ClickToHideAlreadyExportedLines=Klik for at skjule allerede eksporterede linjer NAccounts=%s konti diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index 01b6d39787a..390a3d10170 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -5,7 +5,7 @@ Foundation=Grundlag Version=Version Publisher=Udgiver VersionProgram=Program version -VersionLastInstall=Første installerede version +VersionLastInstall=Oprindeligt installerede version VersionLastUpgrade=Seneste opgraderede version VersionExperimental=Eksperimentel VersionDevelopment=Udvikling @@ -51,8 +51,6 @@ 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 @@ -293,7 +291,8 @@ MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (standardværdi i php.ini: %s) MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (standardværdi i php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Ikke defineret i PHP på Unix lignende systemer) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Ikke defineret i PHP på Unix lignende systemer) -MAIN_MAIL_EMAIL_FROM=Afsender-e-mail til automatiske e-mails (standardværdi i php.ini: %s ) +MAIN_MAIL_EMAIL_FROM=Afsender adresse for automatiske e-mails (standardværdi i php.ini: %s ) +EMailHelpMsgSPFDKIM=For at forhindre, at Dolibarr-e-mails klassificeres som spam, skal du sørge for, at serveren er autoriseret til at sende e-mails fra denne adresse ved SPF- og DKIM-konfiguration MAIN_MAIL_ERRORS_TO=E-mail brugt til fejl returnerer e-mails (felterne 'Errors-To' i sendte e-mails) MAIN_MAIL_AUTOCOPY_TO= Kopier (Bcc) alle sendte e-mails til MAIN_DISABLE_ALL_MAILS=Deaktiver al afsendelse af e-mail (til testformål eller demoer) @@ -312,7 +311,7 @@ MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Privat nøgle til DKIM signering MAIN_DISABLE_ALL_SMS=Deaktiver al SMS afsendelse (til testformål eller demoer) MAIN_SMS_SENDMODE=Metode til at bruge til at sende SMS MAIN_MAIL_SMS_FROM=Standard afsender telefonnummer til SMS-afsendelse -MAIN_MAIL_DEFAULT_FROMTYPE=Standard afsender e-mail til manuel afsendelse (bruger-e-mail eller firma-e-mail) +MAIN_MAIL_DEFAULT_FROMTYPE=Standard afsender e-mail til manuel afsendelse (bruger e-mail eller firma e-mail) UserEmail=Bruger e-mail CompanyEmail=Firma e-mail FeatureNotAvailableOnLinux=Funktionen er ikke tilgængelig på Unix lignende systemer. Test dit sendmail program lokalt. @@ -439,8 +438,10 @@ Unique=Unik Boolean=boolsk (et afkrydsningsfelt) ExtrafieldPhone = Telefon ExtrafieldPrice = Pris +ExtrafieldPriceWithCurrency=Pris med valuta ExtrafieldMail = E-mail ExtrafieldUrl = URL +ExtrafieldIP = IP ExtrafieldSelect = Vælg liste ExtrafieldSelectList = Vælg fra tabel ExtrafieldSeparator=Separator (ikke et felt) @@ -462,7 +463,7 @@ ExtrafieldParamHelpchkbxlst=Liste over værdier kommer fra en tabel
Syntaks: ExtrafieldParamHelplink=Parametre skal være ObjectName:Classpath
Syntaks: ObjectName:Classpath ExtrafieldParamHelpSeparator=Hold tom for en simpel adskiller
Indstil denne til 1 for en kollapsende separator (åben som standard for ny session, så beholdes status for hver brugersession)
Indstil denne til 2 for en kollapsende separator (skjulet som standard for ny session, så beholdes status før hver brugersession) LibraryToBuildPDF=Mappe brugt til PDF generering -LocalTaxDesc=Nogle lande kan pålægge to eller tre afgifter på hver fakturalinje. Hvis dette er tilfældet, skal du vælge typen for anden og tredje skat og dens sats. Mulige typer er:
1: lokal skat pålægges varer og tjenesteydelser uden moms (lokal skat beregnes på beløb uden moms)
2: lokal skat pålægges produkter og tjenesteydelser inklusive moms (lokal skat beregnes på beløb + hovedskat)
3: lokal afgift pålægges produkter uden moms (lokal afgift beregnes af beløb uden afgift)
4: lokal afgift pålægges produkter inklusiv moms (lokal afgift beregnes på beløb + hovedmoms)
5: lokal afgift pålægges ydelser uden moms (lokal afgift beregnes på ydelser uden moms) på beløb uden skat)
6: lokal skat pålægges ydelser inklusive moms (lokal skat beregnes på beløb + skat) +LocalTaxDesc=Nogle lande kan pålægge to eller tre afgifter på hver fakturalinje. Hvis dette er tilfældet, skal du vælge typen for anden og tredje skat og dens sats. Mulige typer er:
1: lokal skat pålægges varer og tjenesteydelser uden moms (lokal skat beregnes på beløb uden moms)
2: lokal skat pålægges produkter og tjenesteydelser inklusive moms (lokal skat beregnes på beløb + hovedskat)
3: lokal afgift pålægges produkter uden moms (lokal afgift beregnes af beløb uden afgift)
4: lokal afgift pålægges produkter inklusiv moms (lokal afgift beregnes på beløb + hovedmoms)
5: lokal afgift pålægges ydelser uden moms (lokal afgift beregnes på beløb uden skat)
6: lokal skat pålægges ydelser inklusive moms (lokal skat beregnes på beløb + skat) SMS=SMS LinkToTestClickToDial=Indtast et telefonnummer at ringe til, for at vise et link til at teste ClickToDial webadressen for bruger %s RefreshPhoneLink=Opdater link @@ -501,7 +502,8 @@ WarningPHPMail=ADVARSEL: Opsætningen til at sende e-mails fra applikationen bru WarningPHPMailA=- Brug af e-mail-tjenesteudbyderens server øger pålideligheden af din e-mail, så det øger leveringsevnen uden at blive markeret som SPAM WarningPHPMailB=- Nogle e-mail-tjenesteudbydere (som Yahoo) tillader ikke, at du sender en e-mail fra en anden server end deres egen server. Din nuværende opsætning bruger applikationens server til at sende e-mail og ikke serveren på din e-mail-udbyder, så nogle modtagere (den der er kompatibel med den restriktive DMARC protokol), vil spørge din e-mail-udbyder, om de kan acceptere din e-mail og nogle e-mail-udbydere (som Yahoo) kan svare "nej", fordi serveren ikke er deres, så få af dine sendte e-mails bliver muligvis ikke accepteret til levering (vær også forsigtig med din e-mailudbyders sendekvote). WarningPHPMailC=- Det er også interessant at bruge SMTP-serveren fra din egen e-mail-tjenesteudbyder til at sende e-mails, så alle e-mails, der sendes fra applikationen, vil også blive gemt i din "Sendte" mappe i din postkasse. -WarningPHPMailD=Det anbefales derfor også at ændre afsendelsesmetoden for e-mails til værdien "SMTP". Hvis du virkelig vil beholde standardmetoden "PHP" til at sende e-mails, skal du bare ignorere denne advarsel eller fjerne den ved at indstille MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP konstanten til 1 i Hjem - Opsætning - Øvrig opsætning. +WarningPHPMailD=Det anbefales derfor at ændre afsendelsesmetoden for e-mails til værdien "SMTP". +WarningPHPMailDbis=Hvis du virkelig vil beholde standardmetoden "PHP" til at sende e-mails, skal du bare ignorere denne advarsel eller fjerne den ved at %sklikke her%s. WarningPHPMail2=Hvis din e-mail SMTP-udbyder har brug for at begrænse e-mail klienten til nogle IP-adresser (meget sjældent), er dette IP-adressen på mailbrugeragenten (MUA) til din ERP CRM-applikation: %s. WarningPHPMailSPF=Hvis domænenavnet i din afsender e-mail adresse er beskyttet af en SPF-record (spørg din domænenavnsregistrator), skal du tilføje følgende IP-adresser i SPF-recorden for dit domænes DNS: %s. ActualMailSPFRecordFound=Faktisk SPF-post fundet (for e-mail %s): %s @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
Eksempel:
For formularen til at oprette en PageUrlForDefaultValuesList=
Eksempel:
For siden, der viser tredjeparter, er det %s.
For URL'er for eksterne moduler installeret i brugerdefineret mappe, skal du ikke inkludere "custom/", så brug en sti som mymodule/mypagelist.php og ikke custom/mymodule/mypagelist.php.
Hvis du kun ønsker standardværdi, hvis url har en eller anden parameter, kan du bruge %s AlsoDefaultValuesAreEffectiveForActionCreate=Bemærk også, at overskrivning af standardværdier til oprettelse af formularer kun virker for sider, der er designet korrekt (så med parameteren action=create or presend...) EnableDefaultValues=Aktiver tilpasning af standardværdier -EnableOverwriteTranslation=Aktiver brug af egne oversættelser +EnableOverwriteTranslation=Tillad tilpasning af oversættelser GoIntoTranslationMenuToChangeThis=Der er fundet en oversættelse til nøglen med denne kode. For at ændre denne værdi skal du redigere den fra Hjem - Opsætning - Oversættelse. WarningSettingSortOrder=Advarsel, indstilling af en standard sorteringsrækkefølge kan resultere i en teknisk fejl, når du går på listesiden, hvis feltet er et ukendt felt. Hvis du oplever en sådan fejl, skal du vende tilbage til denne side for at fjerne standardsorteringsrækkefølgen og gendanne standardadfærd. Field=Felt @@ -643,11 +645,13 @@ 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ør-relationsstyring. +Module2430Name=Bestillingskalendersystem +Module2430Desc=Giv en onlinekalender, så alle kan booke et møde, i henhold til foruddefinerede intervaller eller tilgængeligheder. Module2500Name=DMS / ECM Module2500Desc=Dokumentstyringssystem / Elektronisk indholdsstyring. Automatisk organisering af dine genererede eller gemte dokumenter. Del dem, når du har behov for det. -Module2600Name=API/webtjenester (SOAP server) +Module2600Name=API / webtjenester (SOAP-server) Module2600Desc=Aktiver Dolibarr SOAP serveren, der leverer API-tjenester -Module2610Name=API/webtjenester (REST server) +Module2610Name=API / webtjenester (REST-server) Module2610Desc=Aktiver Dolibarr REST serveren, der leverer API-tjenester Module2660Name=Ring til Web tjenesterne (SOAP klient) Module2660Desc=Aktiver Dolibarr webservice klienten (Kan bruges til at sende data/anmodninger til eksterne servere. Kun indkøbsordrer understøttes i øjeblikket.) @@ -658,6 +662,8 @@ Module2900Name=GeoIPMaxmind 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. +Module3300Name=Modulbygger +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=Aktiver sociale netværksfelter til tredjeparter og adresser (Skype, Twitter, Facebook, ...). Module4000Name=Personaleadministration @@ -698,6 +704,7 @@ Module62000Name=Incoterms Module62000Desc=Tilføj funktioner til at administrere Incoterms Module63000Name=Ressourcer Module63000Desc=Administrer ressourcer (printere, biler, lokaler, ...) til at allokere til begivenheder +Module94160Name=Modtagelse Permission11=Læs kundefakturaer Permission12=Oprette/ændre kundefakturaer Permission13=Ugyldiggør kundefakturaer @@ -842,9 +849,9 @@ Permission286=Eksporter kontakter Permission291=Læs takster Permission292=Indstil tilladelser til taksterne Permission293=Ændre kundens tariffer -Permission300=Læs stregkoder -Permission301=Opret/rediger stregkoder -Permission302=Slet stregkoder +Permission301=Generer PDF-ark med stregkoder +Permission304=Opret/rediger stregkoder +Permission305=Slet stregkoder Permission311=Læs tjenester Permission312=Tildel service/abonnement til kontrakt Permission331=Læs bogmærker @@ -971,13 +978,14 @@ Permission3301=Generer nye moduler Permission4001=Læs færdigheder/job/stilling Permission4002=Opret/ændre færdigheder/job/position Permission4003=Slet færdighed/job/stilling -Permission4020=Læs evalueringer -Permission4021=Opret/rediger din evaluering -Permission4022=Valider evaluering -Permission4023=Slet evaluering -Permission4030=Se sammenligningsmenu +Permission4021=Læs evalueringer (dine og dine underordnede) +Permission4022=Opret/ændre evalueringer +Permission4023=Valider evaluering +Permission4025=Slet evaluering +Permission4028=Se sammenligningsmenu Permission4031=Læs personlige oplysninger Permission4032=Skriv personlige oplysninger +Permission4033=Læs alle evalueringer (også dem fra brugere, der ikke er underordnede) Permission10001=Læs webside indhold Permission10002=Opret/rediger webside indhold (html og javascript indhold) Permission10003=Opret/rediger webside indhold (dynamisk php-kode). Farligt, skal forbeholdes betroede udviklere. @@ -1081,6 +1089,10 @@ DictionaryAssetDisposalType=Type af afhændelse af aktiver TypeOfUnit=Type af måleenhed SetupSaved=Opsætningen er gemt SetupNotSaved=Opsætningen er ikke gemt +OAuthServiceConfirmDeleteTitle=Slet OAuth-post +OAuthServiceConfirmDeleteMessage=Er du sikker på, at du vil slette denne OAuth-post? Alle eksisterende tokens for det vil også blive slettet. +ErrorInEntryDeletion=Fejl ved sletning af indtastning +EntryDeleted=Indlæg slettet BackToModuleList=Tilbage til modullisten BackToDictionaryList=Tilbage til ordbogslisten TypeOfRevenueStamp=Type af stempelmærker @@ -1092,10 +1104,10 @@ VATIsNotUsedExampleFR=I Frankrig betyder det foreninger, der ikke er angivet oms ##### Local Taxes ##### TypeOfSaleTaxes=Momstype LTRate=Sats -LocalTax1IsNotUsed=Brug ikke anden afgift -LocalTax1IsUsedDesc=Brug en anden type afgift (andre end den første) +LocalTax1IsNotUsed=Brug ikke sekundær afgift +LocalTax1IsUsedDesc=Brug en sekundær afgiftstype (andre end den første) LocalTax1IsNotUsedDesc=Brug ikke anden type afgift (andre end den første) -LocalTax1Management=Anden type afgift +LocalTax1Management=Sekundær afgiftstype LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= LocalTax2IsNotUsed=Brug ikke tredje type afgift @@ -1244,6 +1256,7 @@ AreaForAdminOnly=Opsætningsparametre kan kun indstilles af administratorbrug SystemInfoDesc=Systemoplysninger er diverse tekniske oplysninger, du får i skrivebeskyttet tilstand og kun synlige for administratorer. SystemAreaForAdminOnly=Dette område er kun tilgængeligt for administratorbrugere. Dolibarr brugerrettigheder kan ikke ændre denne begrænsning. CompanyFundationDesc=Rediger oplysningerne om din virksomhed/organisation. Klik på knappen "%s" nederst på siden, når du er færdig. +MoreNetworksAvailableWithModule=Flere sociale netværk kan være tilgængelige ved at aktivere modulet "Sociale netværk". AccountantDesc=Hvis du har en ekstern revisor/bogholder, kan du her redigere dennes oplysninger. AccountantFileNumber=Revisorkode DisplayDesc=Parametre, der påvirker udseendet og præsentationen af applikationen, kan ændres her. @@ -1261,6 +1274,7 @@ TriggerActiveAsModuleActive=Udløsere i denne fil er aktive, da modulet %s - Operationskategori: Levering af varer
- Operationskategori: Levering af tjenesteydelser
- Operationskategori: Blandet og levering af varer +InvoiceOptionCategoryOfOperationsYes1=Ja, under adresseblokken +InvoiceOptionCategoryOfOperationsYes2=Ja, i nederste venstre hjørne ##### Proposals ##### PropalSetup=Opsætning af tilbuds modul ProposalsNumberingModules=Tilbud nummererings format @@ -1476,11 +1496,12 @@ WatermarkOnDraftContractCards=Vandmærke på udkast til kontrakt (ingen hvis tom ##### Members ##### MembersSetup=Opsætning af medlemsmodul MemberMainOptions=Standardmuligheder +MemberCodeChecker=Muligheder for automatisk generering af medlemskoder AdherentLoginRequired= Administrer et login for hvert medlem AdherentMailRequired=E-mail påkrævet for at oprette et nyt medlem MemberSendInformationByMailByDefault=Afkrydsningsfeltet for at sende mailbekræftelse til medlemmer (validering eller nyt abonnement) er slået til som standard MemberCreateAnExternalUserForSubscriptionValidated=Opret et eksternt brugerlogin for hvert nyt medlemsabonnement, der valideres -VisitorCanChooseItsPaymentMode=Besøgende kan vælge mellem tilgængelige betalingsformer +VisitorCanChooseItsPaymentMode=Besøgende kan vælge mellem alle tilgængelige betalingsformer MEMBER_REMINDER_EMAIL=Aktiver automatisk påmindelse via e-mail om udløbne abonnementer. Bemærk: Modul %s skal være aktiveret og korrekt opsat for at sende påmindelser. MembersDocModules=Dokumentskabeloner til dokumenter genereret fra medlemsregistrering ##### LDAP setup ##### @@ -1719,7 +1740,7 @@ 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 sendt af meddelelsesmodulet +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æftelses meddelelsen NotificationDisableConfirmMessageUser=Skjul listen over modtagere (abonnerer som bruger) af meddelelser i bekræftelses meddelelsen @@ -1742,8 +1763,8 @@ 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. +FCKeditorForProductDetails=WYSIWIG oprettelse/udgave af produktbeskrivelse eller linjer til objekter (linjer med forslag, ordrer, fakturaer, osv...). +FCKeditorForProductDetails2=Advarsel: Brug af denne mulighed til dette tilfælde anbefales seriøst ikke, da det kan skabe problemer med specialtegn og sideformatering, når du bygger PDF-filer. FCKeditorForMailing= WYSIWYG oprettelse/redigering af masse e-mails (Værktøjer->e-mailing) FCKeditorForUserSignature=WYSIWYG oprettelse/redigering af brugersignatur FCKeditorForMail=WYSIWYG oprettelse/redigering af al e-mail (undtagen Værktøjer->eMailing) @@ -1766,7 +1787,7 @@ 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://) +DetailUrl=URL, hvor menuen sender dig (Relativ URL-link eller eksternt link med https://) DetailEnabled=Betingelse for at vise eller ingen adgang DetailRight=Betingelse for at vise uautoriserede grå menuer DetailLangs=Lang filnavn til etiketkodeoversættelse @@ -1810,6 +1831,9 @@ AGENDA_USE_EVENT_TYPE=Brug begivenhedstyper (administreret i menuen Opsætning - 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_EVENT_PAST_COLOR=Farve på tidligere begivenheder +AGENDA_EVENT_CURRENT_COLOR=Aktuel begivenhedsfarve +AGENDA_EVENT_FUTURE_COLOR=Fremtidig begivenhed farve 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 @@ -1837,7 +1861,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Lagerreduktion i POS er ikke kompatib 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) +CashDeskReaderKeyCodeForEnter=Nøgle ASCII-kode for "Enter" defineret i stregkodelæser (eksempel: 13) ##### Bookmark ##### 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. @@ -1875,7 +1899,7 @@ 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 +PathToGeoIPMaxmindCountryDataFile=Sti til fil, der indeholder Maxmind ip til land oversættelse NoteOnPathLocation=Bemærk, at din ip til lande-datafil skal være i en mappe, som din PHP kan læse (kontroller din PHP open_basedir opsætning og filsystemrettigheder). YouCanDownloadFreeDatFileTo=Du kan downloade en gratis demoversion af Maxmind GeoIP landefilen på %s. YouCanDownloadAdvancedDatFileTo=Du kan også downloade en mere komplet version med opdateringer, af Maxmind GeoIP landefilen på %s. @@ -1926,6 +1950,7 @@ BackupDumpWizard=Guiden til at oprette database-backupfilen BackupZipWizard=Guiden til at opbygge arkivet af dokumenter SomethingMakeInstallFromWebNotPossible=Installation af eksternt modul er ikke mulig fra webgrænsefladen af følgende årsag: SomethingMakeInstallFromWebNotPossible2=Af denne grund er processen til opgradering beskrevet her en manuel proces, som kun en privilegeret bruger kan udføre. +InstallModuleFromWebHasBeenDisabledContactUs=Installation eller udvikling af eksterne moduler eller dynamiske websteder fra applikationen er i øjeblikket låst af sikkerhedsmæssige årsager. Kontakt os venligst, hvis du har brug for at aktivere denne funktion. InstallModuleFromWebHasBeenDisabledByFile=Installation af eksternt modul fra applikationen er blevet deaktiveret af din administrator. Du skal bede ham om at fjerne filen %s for at tillade denne funktion. ConfFileMustContainCustom=Installation eller opbygning af et eksternt modul fra applikationen skal gemme modulfilerne i mappen %s. For at få denne mappe behandlet af Dolibarr, skal du konfigurere din conf/conf.php for at tilføje de 2 direktivlinjer:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Fremhæv tabellinjer, når musen bevæges over @@ -2053,6 +2078,8 @@ RemoveSpecialChars=Fjern specialtegn COMPANY_AQUARIUM_CLEAN_REGEX=Regex-filter for at rense værdi (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex-filter for at rense værdi (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikat er ikke tilladt +RemoveSpecialWords=Rengør visse ord, når du genererer underkonti til kunder eller leverandører +RemoveSpecialWordsHelp=Angiv de ord, der skal renses, før du beregner kunde- eller leverandørkontoen. Brug en ";" mellem hvert ord GDPRContact=Databeskyttelsesansvarlig (DPO, databeskyttelse eller GDPR-kontakt) GDPRContactDesc=Hvis du opbevarer personoplysninger i dit informationssystem, kan du her navngive den kontaktperson, der er ansvarlig for GDPR HelpOnTooltip=Hjælpetekst til at vise på værktøjstip @@ -2062,7 +2089,7 @@ 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 +SwapSenderAndRecipientOnPDF=Byt afsender- og modtageradresse placering i PDF-dokumenter FeatureSupportedOnTextFieldsOnly=Advarsel, funktion understøttet kun på tekstfelter og kombinationslister. Også en URL-parameter action=create eller action=edit skal indstilles ELLER sidenavn skal slutte med 'new.php' for at udløse denne funktion. EmailCollector=E-mail samler EmailCollectors=E-mail samlere @@ -2080,6 +2107,7 @@ MailboxTargetDirectory=Postkassens målmappe EmailcollectorOperations=Operationer, der skal udføres af samler EmailcollectorOperationsDesc=Operationer udføres fra top til bund MaxEmailCollectPerCollect=Maks. antal indsamlede e-mails pr. indsamling +TestCollectNow=Prøv indsamling CollectNow=Indsaml nu ConfirmCloneEmailCollector=Er du sikker på, at du vil klone e-mail samleren %s? DateLastCollectResult=Dato for seneste opsamlingsforsøg @@ -2109,6 +2137,7 @@ CodeLastResult=Seneste resultatkode NbOfEmailsInInbox=Antal e-mails i kildekataloget LoadThirdPartyFromName=Indlæs tredjepartssøgning på %s (kun indlæsning) LoadThirdPartyFromNameOrCreate=Indlæs tredjepartssøgning på %s (opret, hvis den ikke findes) +LoadContactFromEmailOrCreate=Indlæs kontaktsø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 @@ -2183,6 +2212,7 @@ ShowProjectLabel=Projektetiket PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Inkluder alias i tredjepartsnavn THIRDPARTY_ALIAS=Navn tredjepart - Alias tredjepart ALIAS_THIRDPARTY=Alias tredjepart - Navngiv tredjepart +PDFIn2Languages=Vis etiketter til PDF på 2 forskellige sprog PDF_USE_ALSO_LANGUAGE_CODE=Hvis du vil have nogle tekster i din PDF duplikeret på 2 forskellige sprog i den samme genererede PDF, skal du her indstille dette andet sprog, så genereret PDF vil indeholde 2 forskellige sprog på samme side, det der blev valgt ved generering af PDF og dette (kun få PDF-skabeloner understøtter dette). Hold tom for et sprog pr. PDF. PDF_USE_A=Generer PDF-dokumenter med formatet PDF/A i stedet for standardformatet PDF FafaIconSocialNetworksDesc=Indtast her koden for et FontAwesome-ikon. Hvis du ikke ved, hvad FontAwesome er, kan du bruge den generiske værdi fa-address-book. @@ -2211,12 +2241,12 @@ MailToPartnership=Partnerskab 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 +PHPFunctionsRequiredForCLI=Til shell-formål (som planlagt jobbackup eller kørsel af et antivirusprogram), skal du beholde PHP-funktioner NoWritableFilesFoundIntoRootDir=Der blev ikke fundet nogen skrivbare filer eller mapper for de almindelige programmer i din rodmappe (godt) RecommendedValueIs=Anbefalet: %s Recommended=Anbefalede NotRecommended=Ikke anbefalet -ARestrictedPath=Nogle begrænsede veje +ARestrictedPath=En eller anden begrænset sti til datafiler CheckForModuleUpdate=Se efter opdateringer til eksterne moduler CheckForModuleUpdateHelp=Denne handling 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 @@ -2232,19 +2262,19 @@ YouShouldSetThisToOff=Du skal indstille dette til 0 eller fra 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 onlinebetalingen -DashboardDisableGlobal=Deaktiver globalt alle tommelfingre på åbne objekter +DashboardDisableGlobal=Deaktiver globalt alle miniaturebilleder på åbne objekter 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 -DashboardDisableBlockContract=Deaktiver tommelfingeren for kontrakter -DashboardDisableBlockTicket=Deaktiver tommelfingeren for billetter -DashboardDisableBlockBank=Deaktiver tommelfingeren for banker -DashboardDisableBlockAdherent=Deaktiver tommelfingeren for medlemskaber -DashboardDisableBlockExpenseReport=Deaktiver tommelfingeren for udgiftsrapporter -DashboardDisableBlockHoliday=Deaktiver tommelfingeren for fravær +DashboardDisableBlocks=Miniaturebilleder af åbne objekter (til at behandle eller sent) på det primære dashboard +DashboardDisableBlockAgenda=Deaktiver miniaturebilleder for dagsorden +DashboardDisableBlockProject=Deaktiver miniaturebilleder for projekter +DashboardDisableBlockCustomer=Deaktiver miniaturebilleder for kunder +DashboardDisableBlockSupplier=Deaktiver miniaturebilleder for leverandører +DashboardDisableBlockContract=Deaktiver miniaturebilleder for kontrakter +DashboardDisableBlockTicket=Deaktiver miniaturebilleder for billetter +DashboardDisableBlockBank=Deaktiver miniaturebilleder for banker +DashboardDisableBlockAdherent=Deaktiver miniaturebilleder for medlemskaber +DashboardDisableBlockExpenseReport=Deaktiver miniaturebilleder for udgiftsrapporter +DashboardDisableBlockHoliday=Deaktiver miniaturebilleder for fravær EnabledCondition=Betingelse for at have felt aktiveret (hvis ikke aktiveret, vil synlighed altid være slået fra) IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Hvis du vil bruge en anden moms, skal du også aktivere den første moms IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Hvis du vil bruge en tredje moms, skal du også aktivere den første moms @@ -2264,7 +2294,7 @@ 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. +ExportUseLowMemoryModeHelp=Brug tilstanden med lav hukommelse til at generere dump-filen (komprimering sker gennem et rør i stedet for ind i PHP-hukommelsen). Denne metode tillader ikke at kontrollere, at filen er komplet, og fejlmeddelelsen kan ikke rapporteres, hvis den mislykkes. Brug det, hvis du oplever ikke nok hukommelsesfejl. ModuleWebhookName = Webhook ModuleWebhookDesc = Interface til at fange dolibarr-udløsere og sende det til en URL @@ -2288,6 +2318,8 @@ IconOnly=Kun ikon - Kun tekst som værktøjstip INVOICE_ADD_ZATCA_QR_CODE=Vis ZATCA QR-koden på fakturaer INVOICE_ADD_ZATCA_QR_CODEMore=Nogle arabiske lande har brug for denne QR-kode på deres fakturaer INVOICE_ADD_SWISS_QR_CODE=Vis den schweiziske QR-Bill-kode på fakturaer +INVOICE_SHOW_SHIPPING_ADDRESS=Vis leveringsadresse +INVOICE_SHOW_SHIPPING_ADDRESSMore=Obligatorisk omtale for Frankrig UrlSocialNetworksDesc=URL-link til socialt netværk. Brug {socialid} til den variable del, der indeholder det sociale netværks-id. IfThisCategoryIsChildOfAnother=Hvis denne kategori er en under kategori af en anden DarkThemeMode=Mørkt tematilstand @@ -2307,3 +2339,30 @@ UsePassword=Brug en adgangskode UseOauth=Brug en OAUTH token Images=Billeder MaxNumberOfImagesInGetPost=Maks. antal billeder tilladt i et HTML-felt indsendt i en formular +MaxNumberOfPostOnPublicPagesByIP=Max antal indlæg på offentlige sider med samme IP-adresse i en måned +CIDLookupURL=Modulet bringer en URL, der kan bruges af et eksternt værktøj til at hente navnet på en tredjepart eller kontakt fra dens telefonnummer. URL der skal bruges er: +ScriptIsEmpty=Scriptet er tomt +ShowHideTheNRequests=Vis/skjul %s SQL-anmodning(er) +DefinedAPathForAntivirusCommandIntoSetup=Definer en sti for et antivirusprogram til %s +TriggerCodes=Udløselige hændelser +TriggerCodeInfo=Indtast her triggerkoden(e), der skal generere et indlæg af en webanmodning (kun ekstern URL er tilladt). Du kan indtaste flere triggerkoder adskilt af et komma. +EditableWhenDraftOnly=Hvis det ikke er markeret, kan værdien kun ændres, når objektet har en kladdestatus +CssOnEdit=Css på redigeringssider +CssOnView=Css på visningssider +CssOnList=Css på listesider +HelpCssOnEditDesc=Den Css, der bruges ved redigering af feltet.
Eksempel: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=Den Css, der bruges, når du ser feltet. +HelpCssOnListDesc=Css'en, der bruges, når feltet er inde i en listetabel.
Eksempel: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Skjul den bestilte mængde på de genererede dokumenter til receptioner +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Vis prisen på de genererede dokumenter til receptioner +WarningDisabled=Advarsel deaktiveret +LimitsAndMitigation=Adgangsgrænser og afbødning +DesktopsOnly=Kun på Computer +DesktopsAndSmartphones=Desktops og smartphones +AllowOnlineSign=Tillad online signering +AllowExternalDownload=Tillad ekstern download (uden login, ved hjælp af et delt link) +DeadlineDayVATSubmission=Deadline dag for momsindsendelse den næste måned +MaxNumberOfAttachementOnForms=Maks. antal sammenføjede filer i en formular +IfDefinedUseAValueBeetween=Hvis det er defineret, skal du bruge en værdi mellem %s og %s +Reload=Genindlæs +ConfirmReload=Bekræft modulgenindlæsning diff --git a/htdocs/langs/da_DK/agenda.lang b/htdocs/langs/da_DK/agenda.lang index 8e8daa1f91d..db7b35bfd4c 100644 --- a/htdocs/langs/da_DK/agenda.lang +++ b/htdocs/langs/da_DK/agenda.lang @@ -68,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Forsendelse %s gå tilbage til udkast status ShipmentDeletedInDolibarr=Forsendelse %s slettet ShipmentCanceledInDolibarr=Forsendelse %s annulleret ReceptionValidatedInDolibarr=Modtagelse %s valideret +ReceptionDeletedInDolibarr=Modtagelse %s slettet ReceptionClassifyClosedInDolibarr=Receptionen %s klassificeret lukket OrderCreatedInDolibarr=Bestil %s oprettet OrderValidatedInDolibarr=Ordre %s bekræftet @@ -87,6 +88,7 @@ SupplierInvoiceSentByEMail=Vendor invoice %s sendt af email ShippingSentByEMail=Forsendelse %s sendt af email ShippingValidated= Forsendelse %s bekræftet InterventionSentByEMail=Intervention %s sendt af email +ProjectSentByEMail=Projekt %s sendt via e-mail ProposalDeleted=Forslag slettet OrderDeleted=Ordre slettet InvoiceDeleted=Faktura slettet diff --git a/htdocs/langs/da_DK/banks.lang b/htdocs/langs/da_DK/banks.lang index f86ad9814dc..a364de13923 100644 --- a/htdocs/langs/da_DK/banks.lang +++ b/htdocs/langs/da_DK/banks.lang @@ -112,7 +112,7 @@ TransferDesc=Brug intern overførsel til at overføre fra en konto til en anden, TransferFrom=Fra TransferTo=Til TransferFromToDone=En overførsel fra %s til %s af %s %s er blevet optaget. -CheckTransmitter=Sender +CheckTransmitter=Afsender ValidateCheckReceipt=Bekræft denne kvitteringskvittering? ConfirmValidateCheckReceipt=Er du sikker på, at du vil indsende denne checkkvittering til validering? Ingen ændringer er mulige, når de er valideret. DeleteCheckReceipt=Slet denne kvittering for kvittering? @@ -185,4 +185,3 @@ 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 8724ad4fa90..dbc3b09ee85 100644 --- a/htdocs/langs/da_DK/bills.lang +++ b/htdocs/langs/da_DK/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Statistik for kundefakturaer BillsStatisticsSuppliers=Statistik for leverandørfakturaer DisabledBecauseDispatchedInBookkeeping=Deaktiveret, fordi fakturaen blev sendt til bogføring DisabledBecauseNotLastInvoice=Deaktiveret, fordi fakturaen ikke kan sletes. Nogle fakturaer blev registreret efter denne og det vil skabe huller i bogføringen. +DisabledBecauseNotLastSituationInvoice=Deaktiveret, fordi faktura ikke kan slettes. Denne faktura er ikke den sidste i situationens fakturacyklus. DisabledBecauseNotErasable=Deaktiveret, da sletning ikke er muligt InvoiceStandard=Standardfaktura InvoiceStandardAsk=Standardfaktura InvoiceStandardDesc=Denne type faktura benyttes som standard. +InvoiceStandardShort=Standard InvoiceDeposit=Afdrag InvoiceDepositAsk=Afdrag InvoiceDepositDesc=Denne type faktura benyttes, når der er modtaget et afdrag. @@ -24,6 +26,7 @@ InvoiceProForma=Proformafaktura InvoiceProFormaAsk=Proformafaktura InvoiceProFormaDesc=Proformafakturaen ligner en ægte faktura, men har ingen regnskabsmæssig værdi. InvoiceReplacement=Erstatningsfaktura. +InvoiceReplacementShort=Udskiftning InvoiceReplacementAsk=Erstatningsfaktura for faktura InvoiceReplacementDesc=Erstatningsfaktura bruges til at annullere og erstatte en faktura uden modtaget betaling .

Bemærk! Kun fakturaer uden betaling på det kan erstattes. Hvis fakturaen du udskifter endnu ikke er lukket, lukkes den automatisk for at "forladt". InvoiceAvoir=Kreditnota @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Denne del eller ErrorInvoiceIsNotLastOfSameType=Fejl: Datoen for faktura %s er %s. Den skal være bagud eller lig med sidste dato for samme type fakturaer (%s). Skift venligst fakturadatoen. BillFrom=Fra BillTo=Til +ShippingTo=Sendes til ActionsOnBill=Handlinger for faktura RecurringInvoiceTemplate=Skabelon / tilbagevendende faktura NoQualifiedRecurringInvoiceTemplateFound=Ingen tilbagevendende fakturaskabelon er kvalificeret til generation. @@ -622,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Betaling registreret og faktura %s indstill SendEmailsRemindersOnInvoiceDueDate=Send påmindelse på mail for ubetalte fakturaer MakePaymentAndClassifyPayed=Rekordbetaling BulkPaymentNotPossibleForInvoice=Massebetaling er ikke mulig for faktura %s (dårlig type eller status) +MentionVATDebitOptionIsOn=Mulighed for at betale skat baseret på debiteringer +MentionCategoryOfOperations=Kategori af operationer +MentionCategoryOfOperations0=Levering af varer +MentionCategoryOfOperations1=Levering af tjenester +MentionCategoryOfOperations2=Blandet - Levering af varer & levering af tjenester diff --git a/htdocs/langs/da_DK/bookmarks.lang b/htdocs/langs/da_DK/bookmarks.lang index 69ae5554c6d..f559b90c755 100644 --- a/htdocs/langs/da_DK/bookmarks.lang +++ b/htdocs/langs/da_DK/bookmarks.lang @@ -3,20 +3,21 @@ AddThisPageToBookmarks=Tilføj denne side til bogmærker Bookmark=Bogmærke Bookmarks=Bogmærker ListOfBookmarks=Liste over bogmærker -EditBookmarks=Vis / rediger bogmærker +EditBookmarks=Vis/rediger bogmærker NewBookmark=Nyt bogmærke ShowBookmark=Vis bogmærke -OpenANewWindow=Åben en ny fane -ReplaceWindow=Udskift nuværende fane +OpenANewWindow=Åbn i en ny fane +ReplaceWindow=Åben i nuværende fane BookmarkTargetNewWindowShort=Ny fane BookmarkTargetReplaceWindowShort=Nuværende fane BookmarkTitle=Bogmærke navn UrlOrLink=URL BehaviourOnClick=Adfærd ved klik på URL CreateBookmark=Opret bogmærke -SetHereATitleForLink=Sæt et navn for dette bogmærke +SetHereATitleForLink=Tildel et navn til bogmærket UseAnExternalHttpLinkOrRelativeDolibarrLink=Brug et eksternt/absolut link (https://externalurl.com) eller et internt/relativt link (/mypage.php). Du kan også bruge telefon som tel:0123456. -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Vælg om den tilknyttede side skal åbnes i den aktuelle fane eller en ny fane -BookmarksManagement=Bogmærker forvaltning +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Vælg om bogmærket skal åbne i denne fane eller en ny fane +BookmarksManagement=Bogmærke styring BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=Ingen bogmærker defineret +NoBookmarkFound=Intet bogmærke fundet diff --git a/htdocs/langs/da_DK/boxes.lang b/htdocs/langs/da_DK/boxes.lang index 94690fc1693..8bdaee3825d 100644 --- a/htdocs/langs/da_DK/boxes.lang +++ b/htdocs/langs/da_DK/boxes.lang @@ -24,6 +24,7 @@ BoxFicheInter=Latest interventions BoxCurrentAccounts=Open accounts balance BoxTitleMemberNextBirthdays=Fødselsdage i denne måned (medlemmer) BoxTitleMembersByType=Medlemmer efter type og status +BoxTitleMembersByTags=Medlemmer efter tags og status BoxTitleMembersSubscriptionsByYear=Medlemmer Abonnementer efter år BoxTitleLastRssInfos=Latest %s news from %s BoxTitleLastProducts=Produkter / tjenester: sidst %s ændret @@ -44,8 +45,10 @@ BoxTitleSupplierOrdersAwaitingReception=Leverandør ordrer afventer modtagelse BoxTitleLastModifiedContacts=Kontakter / Adresser: senest %s ændret BoxMyLastBookmarks=Bogmærker: seneste %s BoxOldestExpiredServices=Ældste aktive udløbne tjenester +BoxOldestActions=Ældste begivenheder at lave BoxLastExpiredServices=Latest %s oldest contacts with active expired services BoxTitleLastActionsToDo=Latest %s actions to do +BoxTitleOldestActionsToDo=Ældste %s hændelser at gøre, ikke afsluttet BoxTitleLastContracts=Seneste %s kontrakter, der blev ændret BoxTitleLastModifiedDonations=Seneste %s donationer, som blev ændret BoxTitleLastModifiedExpenses=Seneste %s udgiftsrapporter, der blev ændret @@ -82,7 +85,7 @@ BoxCustomersInvoicesPerMonth=Kundefakturaer pr. Måned BoxSuppliersInvoicesPerMonth=Leverandørfakturaer per måned BoxCustomersOrdersPerMonth=Salgsordrer pr. Måned BoxSuppliersOrdersPerMonth=Levenradør ordrer per måned -BoxProposalsPerMonth=Proposals per month +BoxProposalsPerMonth=Forslag pr. måned NoTooLowStockProducts=Ingen produkter er under den lave lagergrænse BoxProductDistribution=Produkter / Services Distribution ForObject=På %s @@ -96,7 +99,7 @@ BoxTitleLatestModifiedCandidatures=Seneste %s ændrede jobansøgninger ForCustomersInvoices=Kundernes fakturaer ForCustomersOrders=Customers orders ForProposals=Tilbud -LastXMonthRolling=The latest %s month rolling +LastXMonthRolling=Den seneste %s måned rullende ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Box blev tilføjet til dit instrumentbræt BoxTitleUserBirthdaysOfMonth=Fødselsdage i denne måned (brugere) diff --git a/htdocs/langs/da_DK/commercial.lang b/htdocs/langs/da_DK/commercial.lang index 30b4092a6bb..f21ebd3d946 100644 --- a/htdocs/langs/da_DK/commercial.lang +++ b/htdocs/langs/da_DK/commercial.lang @@ -64,17 +64,26 @@ ActionAC_SHIP=Send forsendelse med posten ActionAC_SUP_ORD=Send indkøbsordre via post ActionAC_SUP_INV=Send sælgerfaktura pr. Post ActionAC_OTH=Andet -ActionAC_OTH_AUTO=Automatisk oprettede begivenheder +ActionAC_OTH_AUTO=Anden bil ActionAC_MANUAL=Manuelt oprettede begivenheder ActionAC_AUTO=Automatisk oprettede begivenheder -ActionAC_OTH_AUTOShort=Auto +ActionAC_OTH_AUTOShort=Andre +ActionAC_EVENTORGANIZATION=Begivenheder til organisering af begivenheder Stats=Salgsstatistik StatusProsp=Status på tredjepart DraftPropals=Udkast for tilbud NoLimit=Ingen grænse ToOfferALinkForOnlineSignature=Link til online signatur -WelcomeOnOnlineSignaturePage=Velkommen til siden for at acceptere kommercielle forslag fra %s -ThisScreenAllowsYouToSignDocFrom=Denne skærm giver dig mulighed for at acceptere og underskrive eller nægte et tilbud / kommercielt forslag -ThisIsInformationOnDocumentToSign=Dette er oplysninger om dokumentet for at acceptere eller afvise +WelcomeOnOnlineSignaturePageProposal=Velkommen til siden for at acceptere kommercielle forslag fra %s +WelcomeOnOnlineSignaturePageContract=Velkommen til %s kontrakt PDF-signeringsside +WelcomeOnOnlineSignaturePageFichinter=Velkommen til %s Intervention PDF-signeringsside +ThisScreenAllowsYouToSignDocFromProposal=Denne skærm giver dig mulighed for at acceptere og underskrive eller afvise et tilbud/kommercielt forslag +ThisScreenAllowsYouToSignDocFromContract=Denne skærm giver dig mulighed for at underskrive kontrakt i PDF-format online. +ThisScreenAllowsYouToSignDocFromFichinter=Denne skærm giver dig mulighed for at underskrive intervention i PDF-format online. +ThisIsInformationOnDocumentToSignProposal=Dette er information på dokument, der skal accepteres eller afvises +ThisIsInformationOnDocumentToSignContract=Dette er oplysninger om kontrakten, der skal underskrives +ThisIsInformationOnDocumentToSignFichinter=Dette er information om indgreb, der skal underskrives SignatureProposalRef=Underskrift af tilbud / kommercielt forslag %s +SignatureContractRef=Underskrift af kontrakt %s +SignatureFichinterRef=Underskrift af intervention %s FeatureOnlineSignDisabled=Funktion til online-signering deaktiveret eller dokument genereret, før funktionen blev aktiveret diff --git a/htdocs/langs/da_DK/companies.lang b/htdocs/langs/da_DK/companies.lang index 0ff30706b14..cf3f69cbe95 100644 --- a/htdocs/langs/da_DK/companies.lang +++ b/htdocs/langs/da_DK/companies.lang @@ -95,7 +95,7 @@ OverAllOrders=Ordrer OverAllInvoices=Fakturaer OverAllSupplierProposals=Prisforespørgsler ##### Local Taxes ##### -LocalTax1IsUsed=Brug anden skat +LocalTax1IsUsed=Brug sekundær skat LocalTax1IsUsedES= RE anvendes LocalTax1IsNotUsedES= RE anvendes ikke LocalTax2IsUsed=Brug tredje skat @@ -312,12 +312,12 @@ CustomerRelativeDiscountShort=Relativ rabat CustomerAbsoluteDiscountShort=Absolut rabat CompanyHasRelativeDiscount=Denne kunde har en standardrabat på %s%% CompanyHasNoRelativeDiscount=Denne kunde har som standard ingen rabat -HasRelativeDiscountFromSupplier=Du har en standardrabat på %s%% fra denne leverandør -HasNoRelativeDiscountFromSupplier=Du har ingen standard rabat fra denne leverandør +HasRelativeDiscountFromSupplier=Du har en standardrabat på %s%% hos denne leverandør +HasNoRelativeDiscountFromSupplier=Ingen standard relativ rabat hos denne leverandør CompanyHasAbsoluteDiscount=Denne kunde har tilgodehavender (kreditnotaer eller forudbetalinger) for %s %s CompanyHasDownPaymentOrCommercialDiscount=Denne kunde har tilgængelige rabatter (kommercielle, forudbetalinger) for %s %s CompanyHasCreditNote=Denne kunde har stadig kreditnotaer for %s %s -HasNoAbsoluteDiscountFromSupplier=Du har ingen rabat tilgængelig fra denne sælger +HasNoAbsoluteDiscountFromSupplier=Ingen rabat/kredit tilgængelig fra denne leverandør HasAbsoluteDiscountFromSupplier=Du har tilgængelige rabatter (kreditnotaer eller forudbetalinger) for %s %s fra denne leverandør HasDownPaymentOrCommercialDiscountFromSupplier=Du har tilgængelige rabatter (kommercielle, forudbetalinger) for %s %s fra denne leverandør HasCreditNoteFromSupplier=Du har kreditnotaer for %s %s fra denne leverandør @@ -444,7 +444,7 @@ AddAddress=Tilføj adresse SupplierCategory=Leverandør kategori JuridicalStatus200=Uafhængig DeleteFile=Slet fil -ConfirmDeleteFile=Er du sikker på du vil slette denne fil? +ConfirmDeleteFile=Er du sikker på, at du vil slette denne fil %s ? AllocateCommercial=Tildelt til en salgsrepræsentant Organization=Organisationen FiscalYearInformation=Regnskabsår @@ -498,3 +498,8 @@ RestOfEurope=Resten af Europa (EØF) OutOfEurope=Uden for Europa (EØF) CurrentOutstandingBillLate=Aktuel udestående regninger i restance BecarefullChangeThirdpartyBeforeAddProductToInvoice=Vær forsigtig, afhængigt af dine produkt prisindstillinger bør du ændre tredjepart, før du tilføjer produkt til POS. +EmailAlreadyExistsPleaseRewriteYourCompanyName=e-mail eksisterer allerede, skriv venligst dit firmanavn +TwoRecordsOfCompanyName=der findes mere end én registrering for denne virksomhed, kontakt os venligst for at fuldføre din partnerskabsanmodning +CompanySection=Virksomhedssektion +ShowSocialNetworks=Vis sociale netværk +HideSocialNetworks=Skjul sociale netværk diff --git a/htdocs/langs/da_DK/compta.lang b/htdocs/langs/da_DK/compta.lang index 4aea7252db8..d1b894d0ed3 100644 --- a/htdocs/langs/da_DK/compta.lang +++ b/htdocs/langs/da_DK/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Balance (før) Balance=Balance Debit=Debet Credit=Kredit +AccountingDebit=Debet +AccountingCredit=Kredit Piece=Regnskabsdokumenter. AmountHTVATRealReceived=Netto modtaget AmountHTVATRealPaid=Netto udbetalt @@ -244,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=Rapporten om omsætning inds TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Rapporten om omsætning indsamlet pr. Salgsskattesats er ikke tilgængelig. Denne rapport er kun tilgængelig for omsætning faktureret. CalculationMode=Udregningsmåde AccountancyJournal=Regnskabskladde -ACCOUNTING_VAT_SOLD_ACCOUNT=Regnskabskonto som standard for moms på salg (brugt hvis ikke defineret i momsordbog opsætning) -ACCOUNTING_VAT_BUY_ACCOUNT=Startdart regnskabskonto for moms ved køb (Bliver brugt, hvis det ikke er defineret i moms opsætning) -ACCOUNTING_VAT_PAY_ACCOUNT=Regnskabskonto som standard for betaling af moms -ACCOUNTING_ACCOUNT_CUSTOMER=Regnskabskonto anvendt til kundens tredjepart +ACCOUNTING_VAT_SOLD_ACCOUNT=Konto (fra kontoplanen) skal bruges som standardkonto for moms ved salg (bruges, hvis det ikke er defineret i opsætning af momsordbog) +ACCOUNTING_VAT_BUY_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto for moms på køb (bruges, hvis det ikke er defineret i opsætning af momsordbog) +ACCOUNTING_VAT_PAY_ACCOUNT=Konto (fra kontoplanen), der skal bruges som standardkonto til betaling af moms +ACCOUNTING_ACCOUNT_CUSTOMER=Konto (fra kontoplanen) brugt til "kunde" tredjeparter ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Den dedikerede regnskabskonto, der er defineret på tredjepartskort, anvendes kun til underkonto. Denne vil blive brugt til bogføring og som standardværdi af underkontos regnskab, hvis dedikeret kundekonto på tredjepart ikke er defineret. -ACCOUNTING_ACCOUNT_SUPPLIER=Regnskabskonto anvendt til leverandør tredjepart +ACCOUNTING_ACCOUNT_SUPPLIER=Konto (fra kontoplanen) brugt til "leverandørens" tredjeparter ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Den dedikerede regnskabskonto, der er defineret på tredjepartskort, vil kun blive anvendt til kassekladden. Denne vil blive brugt til regnskabet og som standardværdi i bogholderi regnskabet, hvis dedikeret leverandør regnskabskonto på tredjepart ikke er defineret. ConfirmCloneTax=Bekræft klonen af ​​en social / skattemæssig afgift ConfirmCloneVAT=Bekræft klonen på en momsangivelse @@ -300,3 +302,4 @@ InvoiceToPay15Days=At betale (15 til 30 dage) InvoiceToPay30Days=At betale (> 30 dage) ConfirmPreselectAccount=Forudvælg regnskabskode ConfirmPreselectAccountQuestion=Er du sikker på, at du vil forudvælge de %s valgte linjer med denne regnskabskode? +AmountPaidMustMatchAmountOfDownPayment=Det indbetalte beløb skal svare til udbetalingsbeløbet diff --git a/htdocs/langs/da_DK/contracts.lang b/htdocs/langs/da_DK/contracts.lang index bd9ebcfaa5c..62d97e4028f 100644 --- a/htdocs/langs/da_DK/contracts.lang +++ b/htdocs/langs/da_DK/contracts.lang @@ -2,46 +2,47 @@ ContractsArea=Kontrakter område ListOfContracts=Liste over kontrakter AllContracts=Alle kontrakter -ContractCard=Kontrakt-kortet -ContractStatusNotRunning=Ikke kører +ContractCard=Kontrakt kort +ContractStatusNotRunning=Stoppet ContractStatusDraft=Udkast ContractStatusValidated=Bekræftet ContractStatusClosed=Lukket -ServiceStatusInitial=Ikke kører -ServiceStatusRunning=Kørsel -ServiceStatusNotLate=Kører, ikke er udløbet +ServiceStatusInitial=Stoppet +ServiceStatusRunning=Aktiv +ServiceStatusNotLate=Aktiv, ikke er udløbet ServiceStatusNotLateShort=Ikke er udløbet -ServiceStatusLate=Kører, er udløbet +ServiceStatusLate=Aktiv, er udløbet ServiceStatusLateShort=Udløbet ServiceStatusClosed=Lukket -ShowContractOfService=Show contract of service +ShowContractOfService=Vis service kontrakt Contracts=Kontrakter -ContractsSubscriptions=Contracts/Subscriptions -ContractsAndLine=Contracts and line of contracts +ContractsSubscriptions=Kontrakter +ContractsAndLine=Kontrakter og kontrakt linjer Contract=Kontrakt -ContractLine=Contract line -Closing=Closing +ContractLine=Kontrakt linje +ContractLines=Kontraktlinjer +Closing=Lukning NoContracts=Ingen kontrakter -MenuServices=Services +MenuServices=Tjenester MenuInactiveServices=Tjenester, der ikke er aktive MenuRunningServices=Kørsel tjenester MenuExpiredServices=Udløbet tjenester MenuClosedServices=Lukket tjenester NewContract=Ny kontrakt NewContractSubscription=Ny kontrakt eller abonnement -AddContract=Create contract +AddContract=Opret kontrakt DeleteAContract=Slet en kontrakt ActivateAllOnContract=Aktivér alle tjenester CloseAContract=Luk en kontrakt -ConfirmDeleteAContract=Are you sure you want to delete this contract and all its services? -ConfirmValidateContract=Are you sure you want to validate this contract under name %s? -ConfirmActivateAllOnContract=Dette åbner alle tjenester (endnu ikke aktiv). Er du sikker på at du vil åbne alle tjenester? +ConfirmDeleteAContract=Er du sikker på, at du vil slette denne kontrakt og alle dens tjenester? +ConfirmValidateContract=Er du sikker på, at du vil validere denne kontrakt under navnet %s ? +ConfirmActivateAllOnContract=Dette vil åbne alle tjenester (endnu ikke aktive). Er du sikker på, at du vil åbne alle tjenester? ConfirmCloseContract=Dette lukker alle tjenester (udløbet eller ej). Er du sikker på, at du vil lukke denne kontrakt? -ConfirmCloseService=Are you sure you want to close this service with date %s? +ConfirmCloseService=Er du sikker på, at du vil lukke denne tjeneste med dato %s ? ValidateAContract=Bekræfte en kontrakt ActivateService=Aktivér service ConfirmActivateService=Are you sure you want to activate this service with date %s? -RefContract=Contract reference +RefContract=Kontrakt reference DateContract=Kontrakt dato DateServiceActivate=Forkyndelsesdato aktivering ListOfServices=Liste over tjenesteydelser @@ -52,8 +53,8 @@ ListOfRunningServices=Liste over kører tjenester NotActivatedServices=Ikke aktiverede tjenester (blandt bekræftet kontrakter) BoardNotActivatedServices=Tjenester for at aktivere blandt bekræftet kontrakter BoardNotActivatedServicesShort=Tjenester, der skal aktiveres -LastContracts=Latest %s contracts -LastModifiedServices=Latest %s modified services +LastContracts=Seneste %s kontrakter +LastModifiedServices=Seneste %s ændrede tjenester ContractStartDate=Startdato ContractEndDate=Slutdato DateStartPlanned=Planlagt startdato @@ -76,18 +77,18 @@ ActivateAllContracts=Aktivér alle kontrakt linjer CloseAllContracts=Luk alle kontrakter DeleteContractLine=Slet en kontrakt linje ConfirmDeleteContractLine=Are you sure you want to delete this contract line? -MoveToAnotherContract=Flyt tjeneste i en anden kontrakt. +MoveToAnotherContract=Flyt tjeneste til en anden kontrakt. ConfirmMoveToAnotherContract=Jeg choosed nyt mål kontrakt og bekræfte, jeg ønsker at flytte denne tjeneste i denne kontrakt. -ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Forny kontrakten linje (antal %s) +ConfirmMoveToAnotherContractQuestion=Vælg i hvilken eksisterende kontrakt (fra samme tredjepart), du vil flytte denne service til? +PaymentRenewContractId=Forny kontrakt %s (service %s) ExpiredSince=Udløbsdatoen NoExpiredServices=Ingen udløbne aktive tjenester -ListOfServicesToExpireWithDuration=List of Services to expire in %s days -ListOfServicesToExpireWithDurationNeg=List of Services expired from more than %s days -ListOfServicesToExpire=List of Services to expire -NoteListOfYourExpiredServices=This list contains only services of contracts for third parties you are linked to as a sale representative. -StandardContractsTemplate=Standard contracts template -ContactNameAndSignature=For %s, name and signature: +ListOfServicesToExpireWithDuration=Liste over tjenester, der udløber om %s dage +ListOfServicesToExpireWithDurationNeg=Liste over tjenester er udløbet efter mere end %s dage +ListOfServicesToExpire=Liste over tjenester, der udløber +NoteListOfYourExpiredServices=Denne liste indeholder kun tjenester af kontrakter for tredjeparter, du er knyttet til som salgsrepræsentant. +StandardContractsTemplate=Skabelon for standard kontrakter +ContactNameAndSignature=For %s, navn og signatur: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. ConfirmCloneContract=Er du sikker på at du vil klone kontrakten %s ? LowerDateEndPlannedShort=Lavere planlagt slutdato for aktive tjenester @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Undertegnelse kontrakt kunde kontakt HideClosedServiceByDefault=Skjul lukkede tjenester som standard ShowClosedServices=Vis lukkede tjenester HideClosedServices=Skjul lukkede tjenester +UserStartingService=Bruger start service +UserClosingService=Brugerlukningstjeneste diff --git a/htdocs/langs/da_DK/cron.lang b/htdocs/langs/da_DK/cron.lang index 2be612cb99e..2229d0e6860 100644 --- a/htdocs/langs/da_DK/cron.lang +++ b/htdocs/langs/da_DK/cron.lang @@ -11,7 +11,7 @@ URLToLaunchCronJobs=URL til at kontrollere og starte kvalificerede cron-job fra OrToLaunchASpecificJob=Eller for at kontrollere og starte et bestemt job fra en browser KeyForCronAccess=Security key for URL to launch cron jobs FileToLaunchCronJobs=Kommandolinje for at kontrollere og starte kvalificerede cron-job -CronExplainHowToRunUnix=On Unix environment you should use the following crontab entry to run the command line each 5 minutes +CronExplainHowToRunUnix=På Unix systemer skal du bruge den følgende crontab instilling for at afvikle kommandolinien hvert 5 minut CronExplainHowToRunWin=På Microsoft (tm) Windows-miljø kan du bruge Scheduled Task-værktøjer til at køre kommandolinjen hvert 5. minut CronMethodDoesNotExists=Class %s does not contains any method %s CronMethodNotAllowed=Metode %s af klasse %s er i sortliste over forbudte metoder @@ -26,7 +26,7 @@ CronCommand=Command CronList=Scheduled jobs CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job +CronExecute=Start nu CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job @@ -58,8 +58,8 @@ CronNote=Kommentar CronFieldMandatory=Fields %s is mandatory CronErrEndDateStartDt=End date cannot be before start date StatusAtInstall=Status ved modul installation -CronStatusActiveBtn=Tidsplan -CronStatusInactiveBtn=Deaktivere +CronStatusActiveBtn=Aktiver planlægning +CronStatusInactiveBtn=Deaktiver CronTaskInactive=Dette job er deaktiveret (ikke planlagt) CronId=Id CronClassFile=Filename with class @@ -82,10 +82,19 @@ UseMenuModuleToolsToAddCronJobs=Gå til menuen "Hjem - Administrati JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Opret en lokal database dump. Parametre er: komprimering ('gz' eller 'bz' eller 'ingen'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' eller filnavn til opbygning, antal backupfiler +MakeSendLocalDatabaseDumpShort=Send backup af lokal database +MakeSendLocalDatabaseDump=Send lokal database backup via e-mail. Parametre er: til, fra, emne, besked, filnavn (navn på fil sendt), filter ('sql' kun til backup af database) +BackupIsTooLargeSend=Beklager, sidste backup-fil er for stor til at kunne sendes via e-mail +CleanUnfinishedCronjobShort=Rens ufærdige cronjob +CleanUnfinishedCronjob=Ren cronjob sidder fast i behandlingen, når processen ikke længere kører WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. DATAPOLICYJob=Datarenser og anonymizer JobXMustBeEnabled=Job %s skal være aktiveret +EmailIfError=E-mail for advarsel om fejl +ErrorInBatch=Fejl ved kørsel af jobbet %s + # Cron Boxes LastExecutedScheduledJob=Sidste udførte planlagte job NextScheduledJobExecute=Næste planlagte job, der skal udføres NumberScheduledJobError=Antal planlagte job med fejl +NumberScheduledJobNeverFinished=Antal planlagte job, der aldrig blev afsluttet diff --git a/htdocs/langs/da_DK/datapolicy.lang b/htdocs/langs/da_DK/datapolicy.lang new file mode 100644 index 00000000000..32196dd32c1 --- /dev/null +++ b/htdocs/langs/da_DK/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Databeskyttelsespolitik +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Modul til at administrere databeskyttelse (overensstemmelse med GDPR) + +# +# Administration page +# +datapolicySetup = Opsætning af moduldatabeskyttelsespolitik +Deletion = Sletning af data +datapolicySetupPage = Afhængigt af lovene i dine lande (eksempel artikel 5 i GDPR), skal personoplysninger opbevares i en periode, der ikke overstiger det, der er nødvendigt for de formål, hvortil de blev indsamlet, undtagen til arkivformål.
Sletningen vil ske automatisk efter en vis varighed uden begivenhed (den varighed, som du vil have angivet nedenfor). +NB_MONTHS = %s måneder +ONE_YEAR = 1 år +NB_YEARS = %s års +DATAPOLICY_TIERS_CLIENT = Kunde +DATAPOLICY_TIERS_PROSPECT = Kundeemne +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospekt/kunde +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Heller kunde/kunde +DATAPOLICY_TIERS_FOURNISSEUR = Leverandør +DATAPOLICY_CONTACT_CLIENT = Kunde +DATAPOLICY_CONTACT_PROSPECT = Kundeemne +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Kundeemne/kunde +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Heller kunde/kunde +DATAPOLICY_CONTACT_FOURNISSEUR = Leverandør +DATAPOLICY_ADHERENT = Medlem +DATAPOLICY_Tooltip_SETUP = Kontakttype - Angiv dine valg for hver type. +DATAPOLICYMail = Opsætning af e-mails +DATAPOLICYSUBJECTMAIL = Emne for e-mail +DATAPOLICYCONTENTMAIL = Indholdet af e-mailen +DATAPOLICYSUBSITUTION = Du kan bruge følgende variabler i din e-mail (LINKACCEPT giver mulighed for at oprette et link, der registrerer personens aftale, LINKREFUSED gør det muligt at registrere personens afslag): +DATAPOLICYACCEPT = Meddelelse efter aftale +DATAPOLICYREFUSE = Besked efter uenighed +SendAgreementText = Du kan sende en GDPR-e-mail til alle dine relevante kontakter (som endnu ikke har modtaget en e-mail, og som du ikke har registreret noget om deres GDPR-aftale for). For at gøre dette skal du bruge følgende knap. +SendAgreement = Send emails +AllAgreementSend = Alle e-mails er blevet sendt +TXTLINKDATAPOLICYACCEPT = Tekst til linket "aftale" +TXTLINKDATAPOLICYREFUSE = Tekst til linket "uenighed" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR: Behandling af personoplysninger +DATAPOLICY_consentement = Indhentet samtykke til behandling af personoplysninger +DATAPOLICY_opposition_traitement = Modsætter sig behandlingen af hans personoplysninger +DATAPOLICY_opposition_prospection = Modsætter sig behandlingen af hans personoplysninger med henblik på efterforskning + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymiser en tredjepart +DATAPOLICY_POPUP_ANONYME_TEXTE = Du kan ikke slette denne kontakt fra Dolibarr, fordi der er relaterede emner. I overensstemmelse med GDPR vil du gøre alle disse data anonyme for at respektere dine forpligtelser. Vil du fortsætte? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Portabilitet GDPR +DATAPOLICY_PORTABILITE_TITLE = Eksport af personlige data +DATAPOLICY_PORTABILITE_CONFIRMATION = Du ønsker at eksportere denne kontakts personlige data. Er du sikker ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymiseret %s + +# V2 +DATAPOLICYReturn = GDPR-validering +DATAPOLICY_date = Dato for aftale/uenighed GDPR +DATAPOLICY_send = Dato for afsendelse af aftale-e-mail +DATAPOLICYReturn = GDPR-validering +DATAPOLICY_SEND = Send GDPR-e-mail +MailSent = Emailen er sendt + +# ERROR +ErrorSubjectIsRequired = Fejl: Emnet for e-mail er påkrævet. Angiv det i modulopsætningen +=På grund af et teknisk problem kunne vi ikke registrere dit valg. Det beklager vi. Kontakt os for at sende os dit valg. +NUMBER_MONTH_BEFORE_DELETION = Antal måneder før sletning diff --git a/htdocs/langs/da_DK/deliveries.lang b/htdocs/langs/da_DK/deliveries.lang index f5bb5bc9ae1..8c0b00db4b6 100644 --- a/htdocs/langs/da_DK/deliveries.lang +++ b/htdocs/langs/da_DK/deliveries.lang @@ -22,7 +22,7 @@ NameAndSignature=Navn og underskrift: ToAndDate=Til___________________________________ om ____ / _____ / __________ GoodStatusDeclaration=Har modtaget varerne over i god stand, Deliverer=Befrier: -Sender=Sender +Sender=Afsender Recipient=Modtager ErrorStockIsNotEnough=Der er ikke nok lager Shippable=Fragtvarer diff --git a/htdocs/langs/da_DK/dict.lang b/htdocs/langs/da_DK/dict.lang index 94b4c8d49fe..524f307efc5 100644 --- a/htdocs/langs/da_DK/dict.lang +++ b/htdocs/langs/da_DK/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Mrs +CivilityMMEShort=Mrs CivilityMR=Mr. +CivilityMRShort=Mr. CivilityMLE=Ms CivilityMTRE=Mester CivilityDR=Doctor diff --git a/htdocs/langs/da_DK/ecm.lang b/htdocs/langs/da_DK/ecm.lang index de4857728d0..aadd50b447c 100644 --- a/htdocs/langs/da_DK/ecm.lang +++ b/htdocs/langs/da_DK/ecm.lang @@ -5,6 +5,7 @@ ECMSectionManual=Manual bibliotek ECMSectionAuto=Automatisk bibliotek ECMSectionsManual=Manual abonnentfortegnelser ECMSectionsAuto=Automatisk abonnentfortegnelser +ECMSectionsMedias=Medias træ ECMSections=Abonnentfortegnelser ECMRoot=ECM Root ECMNewSection=Ny mappe @@ -16,7 +17,9 @@ ECMNbOfFilesInSubDir=Number of files in sub-directories ECMCreationUser=Creator ECMArea=DMS / ECM område ECMAreaDesc=DMS / ECM (Document Management System / Electronic Content Management) -området giver dig mulighed for at gemme, dele og søge hurtigt alle slags dokumenter i Dolibarr. -ECMAreaDesc2=* Automatisk abonnentfortegnelser fyldes automatisk, når tilføjelse af dokumenter fra kort af et element.
* Manual mapper kan bruges til at gemme dokumenter, der ikke er knyttet til et bestemt element. +ECMAreaDesc2a=* Manual mapper kan bruges til at gemme dokumenter, der ikke er knyttet til et bestemt element. +ECMAreaDesc2b=* Automatiske mapper udfyldes automatisk, når du tilføjer dokumenter fra siden af et element. +ECMAreaDesc3=* Medias mapper er filer i underbiblioteket /medias i dokumentbiblioteket, læsbare af alle uden behov for at blive logget og uden behov for at få filen delt eksplicit. Det bruges til at gemme billedfiler fra e-mail eller webstedsmodul. ECMSectionWasRemoved=Directory %s er blevet slettet. ECMSectionWasCreated=Katalog %s er blevet oprettet. ECMSearchByKeywords=Søg på nøgleord diff --git a/htdocs/langs/da_DK/errors.lang b/htdocs/langs/da_DK/errors.lang index 95df5333b5e..94d7ff0f677 100644 --- a/htdocs/langs/da_DK/errors.lang +++ b/htdocs/langs/da_DK/errors.lang @@ -3,7 +3,7 @@ # No errors NoErrorCommitIsDone=Ingen fejl, vi begår # Errors -ErrorButCommitIsDone=Errors found but we validate despite this +ErrorButCommitIsDone=Fejl fundet, men vi validerer til trods ErrorBadEMail=E-mail %s er forkert ErrorBadMXDomain=E-mail %s synes forkert (domæne har ingen gyldig MX-post) ErrorBadUrl=Url %s er forkert @@ -13,210 +13,212 @@ ErrorTitleAlreadyExists=Titel %s findes allerede. ErrorLoginAlreadyExists=Log ind %s eksisterer allerede. ErrorGroupAlreadyExists=Gruppe %s eksisterer allerede. ErrorEmailAlreadyExists=E-mail %s findes allerede. -ErrorRecordNotFound=Optag ikke fundet. -ErrorFailToCopyFile=Kunne ikke kopiere filen "%s" til "%s". -ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. -ErrorFailToRenameFile=Kunne ikke omdøbe filen '%s' til '%s'. -ErrorFailToDeleteFile=Det lykkedes ikke at fjerne filen ' %s'. -ErrorFailToCreateFile=Kunne ikke oprette filen ' %s'. -ErrorFailToRenameDir=Kunne ikke omdøbe mappe ' %s' i' %s'. -ErrorFailToCreateDir=Kunne ikke oprette mappen ' %s'. -ErrorFailToDeleteDir=Det lykkedes ikke at slette mappen ' %s'. -ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. -ErrorFailToGenerateFile=Failed to generate file '%s'. +ErrorRecordNotFound=Post ikke fundet. +ErrorRecordNotFoundShort=Ikke fundet +ErrorFailToCopyFile=Kunne ikke kopiere filen '%s' til '%s'. +ErrorFailToCopyDir=Kunne ikke kopiere mappen '%s' til '%s'. +ErrorFailToRenameFile=Kunne ikke omdøbe filen '%s' til '%s'. +ErrorFailToDeleteFile=Det lykkedes ikke at fjerne filen '%s'. +ErrorFailToCreateFile=Kunne ikke oprette filen '%s'. +ErrorFailToRenameDir=Kunne ikke omdøbe mappen '%s' til '%s'. +ErrorFailToCreateDir=Kunne ikke oprette mappen '%s'. +ErrorFailToDeleteDir=Det lykkedes ikke at slette mappen '%s'. +ErrorFailToMakeReplacementInto=Det lykkedes ikke at foretage erstatning i filen '%s'. +ErrorFailToGenerateFile=Oprettelse af filen '%s' mislykkedes. ErrorThisContactIsAlreadyDefinedAsThisType=Denne kontaktperson er allerede defineret som kontaktperson for denne type. -ErrorCashAccountAcceptsOnlyCashMoney=Denne bankkonto er et kontant-konto, så det accepterer betaling af type cash only. -ErrorFromToAccountsMustDiffers=Kilde og mål bankkonti skal være anderledes. -ErrorBadThirdPartyName=Dårlig værdi for tredjeparts navn +ErrorCashAccountAcceptsOnlyCashMoney=Denne bankkonto er en kontant-konto, så den accepterer kun betaling af typen kontant. +ErrorFromToAccountsMustDiffers=Fra og til bankkonti skal være forskellige. +ErrorBadThirdPartyName=Forkert værdi for tredjeparts navn ForbiddenBySetupRules=Forbudt ifølge opsætnings regler -ErrorProdIdIsMandatory=The %s is mandatory +ErrorProdIdIsMandatory= %s er obligatorisk ErrorAccountancyCodeCustomerIsMandatory=Regnskabskoden for kunden %s er obligatorisk -ErrorBadCustomerCodeSyntax=Bad syntaks for kunde-kode -ErrorBadBarCodeSyntax=Dårlig syntaks til stregkode. Måske angiver du en dårlig stregkodetype, eller definerer du en stregkodemaske til nummerering, der ikke svarer til den scannede værdi. +ErrorBadCustomerCodeSyntax=Forkert syntaks for kunde-kode +ErrorBadBarCodeSyntax=Forkert syntaks til stregkode. Måske angiver du en forkert stregkodetype, eller har defineret en stregkodemaske til nummerering, der ikke svarer til den scannede værdi. ErrorCustomerCodeRequired=Kundekode kræves ErrorBarCodeRequired=Stregkode påkrævet ErrorCustomerCodeAlreadyUsed=Kundekoden anvendes allerede ErrorBarCodeAlreadyUsed=Stregkode allerede brugt ErrorPrefixRequired=Prefix kræves -ErrorBadSupplierCodeSyntax=Dårlig syntax for leverandør kode +ErrorBadSupplierCodeSyntax=Forkert syntax for leverandør kode ErrorSupplierCodeRequired=Leverandørkode kræves ErrorSupplierCodeAlreadyUsed=Leverandørkode allerede brugt -ErrorBadParameters=Bad parametre +ErrorBadParameters=Forkerte parametre ErrorWrongParameters=Forkerte eller manglende parametre -ErrorBadValueForParameter=Wrong value '%s' for parameter '%s' -ErrorBadImageFormat=Image file has not a supported format (Your PHP does not support functions to convert images of this format) +ErrorBadValueForParameter=Forkert værdi '%s' for parameter '%s' +ErrorBadImageFormat=Billedfilen har ikke et understøttet format (Din PHP understøtter ikke konvertering af billeder med dette format) ErrorBadDateFormat=Værdi '%s' har forkert datoformat -ErrorWrongDate=Date is not correct! +ErrorWrongDate=Dato er forkert! ErrorFailedToWriteInDir=Det lykkedes ikke at skrive i mappen %s -ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=Fundet forkerte e-mail-syntaks for %s linjer i filen (f.eks line %s med email= %s) +ErrorFailedToBuildArchive=Kunne ikke bygge arkivfilen %s +ErrorFoundBadEmailInFile=Fundet forkerte e-mail syntaks for %s linjer i filen (f.eks. linje %s med email=%s) ErrorUserCannotBeDelete=Bruger kan ikke slettes. Måske er det forbundet med Dolibarr enheder. ErrorFieldsRequired=Nogle obligatoriske felter er efterladt tomme. ErrorSubjectIsRequired=E-mail-emnet er påkrævet -ErrorFailedToCreateDir=Det lykkedes ikke at oprette en mappe. Kontroller, at web-serveren bruger har tilladelse til at skrive i Dolibarr dokumenter bibliotek. Hvis parameter safe_mode er aktiveret på dette PHP, kontrollere, at Dolibarr php filer ejer til web-serveren bruger (eller gruppe). +ErrorFailedToCreateDir=Det lykkedes ikke at oprette en mappe. Kontroller, at web-server bruger har tilladelse til at skrive i Dolibarr dokument mappen. Hvis parameteren safe_mode er aktiveret i PHP, kontroller at Dolibarr php filer ejes af web-server bruger (eller gruppe). ErrorNoMailDefinedForThisUser=Ingen e-mail defineret for denne bruger ErrorSetupOfEmailsNotComplete=Opsætningen af e-mails er ikke afsluttet -ErrorFeatureNeedJavascript=Denne funktion kræver, at javascript aktiveres for at fungere. Skift dette i setup - display. -ErrorTopMenuMustHaveAParentWithId0=En menu af type 'Top' kan ikke have en forælder menuen. Sæt 0 i moderselskabet menu eller vælge en menu af typen »Venstre«. +ErrorFeatureNeedJavascript=Denne funktion kræver, at javascript aktiveres for at fungere. Skift dette i Opsætning - Udseende. +ErrorTopMenuMustHaveAParentWithId0=En menu af type 'Top' kan ikke have en moder menu. Angiv 0 i moder menu eller vælg en menu af typen »Venstre«. ErrorLeftMenuMustHaveAParentId=En menu af typen »Venstre« skal have en forælder id. -ErrorFileNotFound=Filen blev ikke fundet (Forkert sti, forkerte tilladelser eller adgang nægtet ved openbasedir parameter) -ErrorDirNotFound=Directory %s ikke fundet (Bad sti, forkerte rettigheder eller adgang nægtet af PHP openbasedir eller safe_mode parameter) -ErrorFunctionNotAvailableInPHP=Funktion %s er påkrævet for denne funktion, men er ikke tilgængelig i denne version / opsætning af PHP. +ErrorFileNotFound=Filen%s blev ikke fundet (Forkert sti, forkerte tilladelser eller adgang nægtet af PHP openbasedir eller safe_mode parameter) +ErrorDirNotFound=Mappen %s ikke fundet (Forkert sti, forkerte rettigheder eller adgang nægtet af PHP openbasedir eller safe_mode parameter) +ErrorFunctionNotAvailableInPHP=Funktionen %s er påkrævet for denne funktion, men er ikke tilgængelig i denne version/opsætning af PHP. ErrorDirAlreadyExists=En mappe med dette navn findes allerede. ErrorFileAlreadyExists=En fil med dette navn findes allerede. -ErrorDestinationAlreadyExists=En anden fil med navnet %s findes allerede. +ErrorDestinationAlreadyExists=En anden fil med navnet %s findes allerede. ErrorPartialFile=Fil ikke modtaget helt af serveren. -ErrorNoTmpDir=Midlertidig directy %s ikke eksisterer. -ErrorUploadBlockedByAddon=Upload blokeret af en PHP / Apache plugin. +ErrorNoTmpDir=Midlertidig mappe %s eksisterer ikke. +ErrorUploadBlockedByAddon=Upload blokeret af et PHP / Apache plugin. ErrorFileSizeTooLarge=Filstørrelsen er for stor, eller filen er ikke angivet. ErrorFieldTooLong=Feltet%s er for langt. -ErrorSizeTooLongForIntType=Størrelse for lang tid for int type (%s cifre maksimum) -ErrorSizeTooLongForVarcharType=Størrelse for lang tid for streng type (%s tegn maksimum) -ErrorNoValueForSelectType=Please fill value for select list -ErrorNoValueForCheckBoxType=Please fill value for checkbox list -ErrorNoValueForRadioType=Please fill value for radio list -ErrorBadFormatValueList=The list value cannot have more than one comma: %s, but need at least one: key,value -ErrorFieldCanNotContainSpecialCharacters=Feltet %s må ikke indeholde specialtegn. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Feltet %s må ikke indeholde specialtegn eller store bogstaver og må ikke indeholde kun tal. -ErrorFieldMustHaveXChar=Feltet %s skal have mindst %s tegn. +ErrorSizeTooLongForIntType=Størrelse for lang for typen heltal (%s cifre maksimum) +ErrorSizeTooLongForVarcharType=Størrelse for lang for typen streng (%s tegn maksimum) +ErrorNoValueForSelectType=Venligst udfyld værdi for valgte liste +ErrorNoValueForCheckBoxType=Venligst udfyld værdi for afkrydsnings listen +ErrorNoValueForRadioType=Venligst udfyld værdien for alternativ listen +ErrorBadFormatValueList=Værdien kan ikke have mere end et komma: %s, men skal have mindst et: key,value +ErrorFieldCanNotContainSpecialCharacters=Feltet %s må ikke indeholde specialtegn. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Feltet %s må ikke indeholde specialtegn eller store bogstaver og skal starte med et alfabetisk tegn (a-z) +ErrorFieldMustHaveXChar=Feltet %s skal have mindst %s tegn. ErrorNoAccountancyModuleLoaded=Intet regnskabsmodul aktiveret -ErrorExportDuplicateProfil=This profile name already exists for this export set. -ErrorLDAPSetupNotComplete=Dolibarr-LDAP matchende er ikke komplet. -ErrorLDAPMakeManualTest=A. LDIF-fil er blevet genereret i mappen %s. Prøv at indlæse den manuelt fra kommandolinjen for at få flere informationer om fejl. +ErrorExportDuplicateProfil=Dette profilnavn eksisterer allerede i denne eksport samling. +ErrorLDAPSetupNotComplete=Dolibarr-LDAP match er ikke fuldført. +ErrorLDAPMakeManualTest=En .ldif-fil er blevet genereret i mappen %s. Prøv at indlæse den manuelt fra kommandolinjen for at få flere informationer om fejl. ErrorCantSaveADoneUserWithZeroPercentage=Kan ikke gemme en handling med "status ikke startet", hvis feltet "udført af" også er udfyldt. ErrorRefAlreadyExists=Reference %s findes allerede. -ErrorPleaseTypeBankTransactionReportName=Indtast venligst kontoudskriftsnavnet, hvor indgangen skal rapporteres (Format YYYYMM eller YYYYMMDD) -ErrorRecordHasChildren=Kunne ikke slette rekord, da det har nogle børneposter. +ErrorPleaseTypeBankTransactionReportName=Indtast venligst kontoudskriftsnavnet, hvor transactionen skal rapporteres (Format ÅÅÅÅMM eller ÅÅÅÅMMDD) +ErrorRecordHasChildren=Kunne ikke slette posten, da den har nogle underposter ErrorRecordHasAtLeastOneChildOfType=Objekt %s har mindst et barn af typen %s -ErrorRecordIsUsedCantDelete=Kan ikke slette rekord. Den er allerede brugt eller inkluderet i et andet objekt. -ErrorModuleRequireJavascript=Javascript må ikke være deaktiveret for at få denne funktion til at fungere. For at aktivere / deaktivere Javascript, skal du gå til menuen Home-> Setup-> Display. -ErrorPasswordsMustMatch=Begge har skrevet passwords skal matche hinanden -ErrorContactEMail=Der opstod en teknisk fejl. Kontakt administratoren til følgende e-mail %s og giv fejlkoden %s i din besked eller tilføj en skærmkopi af denne side. +ErrorRecordIsUsedCantDelete=Kan ikke slette posten. Den er allerede brugt eller inkluderet i et andet objekt. +ErrorModuleRequireJavascript=Hvis denne funktion skal fungere må Javascript ikke være deaktiveret. For at aktivere / deaktivere Javascript, skal du gå til menuen Hjem -> Opsætning -> Udseende. +ErrorPasswordsMustMatch=De angivne adgangskoder skal matche hinanden +ErrorContactEMail=Der opstod en teknisk fejl. Kontakt administratoren på følgende e-mail %s og oplys fejlkoden %s i din besked eller tilføj en skærmkopi af denne side. ErrorWrongValueForField=Felt%s: '%s' stemmer ikke overens med regex-reglen%s ErrorHtmlInjectionForField=Felt %s: Værdien '%s indeholder skadelig data, som ikke er tilladt. ErrorFieldValueNotIn=Felt %s: '%s' er ikke en værdi fundet i felt %saf %s ErrorFieldRefNotIn=Felt%s: '%s' er ikke en %s eksisterende ref +ErrorMultipleRecordFoundFromRef=Flere poster fundet ved søgning fra ref %s . Ingen måde at vide, hvilket ID du skal bruge. ErrorsOnXLines=%s fundne fejl -ErrorFileIsInfectedWithAVirus=Det antivirusprogram var ikke i stand til at bekræfte filen (filen kan være inficeret med en virus) -ErrorSpecialCharNotAllowedForField=Specialtegn er ikke tilladt for feltet "%s" -ErrorNumRefModel=En henvisning findes i databasen (%s) og er ikke kompatible med denne nummerering regel. Fjern optage eller omdøbt henvisning til aktivere dette modul. +ErrorFileIsInfectedWithAVirus=Antivirusprogrammet var ikke i stand til at kontrollere filen (filen kan være inficeret med en virus) +ErrorNumRefModel=En henvisning findes i databasen (%s) og er ikke kompatibel med denne nummerering regel. Fjern registrering eller omdøb henvisning for aktivere dette modul. ErrorQtyTooLowForThisSupplier=Mængden for lav for denne leverandør eller ingen pris defineret på dette produkt for denne leverandør ErrorOrdersNotCreatedQtyTooLow=Nogle ordrer er ikke blevet oprettet på grund af for lave mængder -ErrorModuleSetupNotComplete=Opsætning af modul %s ser ud til at være ufuldstændig. Gå videre - Opsætning - Moduler, for at gennemføres. +ErrorModuleSetupNotComplete=Opsætning af modulet %s ser ud til at være ufuldstændig. Gå til Hjem -> Opsætning -> Moduler, for at fuldføre. ErrorBadMask=Fejl på maske -ErrorBadMaskFailedToLocatePosOfSequence=Fejl, maske uden loebenummeret -ErrorBadMaskBadRazMonth=Fejl, dårlig reset værdi -ErrorMaxNumberReachForThisMask=Maksimalt antal nåede til denne maske -ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits +ErrorBadMaskFailedToLocatePosOfSequence=Fejl, maske uden løbenummer +ErrorBadMaskBadRazMonth=Fejl, forkert nulstillingsværdi +ErrorMaxNumberReachForThisMask=Maksimalt antal nået for denne maske +ErrorCounterMustHaveMoreThan3Digits=Tæller skal have mere en 3 cifre ErrorSelectAtLeastOne=Fejl, vælg mindst en post. -ErrorDeleteNotPossibleLineIsConsolidated=Slet ikke muligt, fordi rekord er knyttet til en banktransaktion, der er forliget -ErrorProdIdAlreadyExist=%s er tildelt til et andet tredjeland -ErrorFailedToSendPassword=Det lykkedes ikke at sende password -ErrorFailedToLoadRSSFile=Ikke formår at få RSS-feed. Prøv at tilføje konstant MAIN_SIMPLEXMLLOAD_DEBUG hvis fejlmeddelelser ikke giver nok information. -ErrorForbidden=Access denied.
You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user. -ErrorForbidden2=Tilladelse til dette login kan defineres af din Dolibarr administrator fra menuen %s-> %s. -ErrorForbidden3=Det ser ud til, at Dolibarr ikke bruges gennem en godkendt session. Se på Dolibarr installationsdokumentation for at vide mere om, hvordan man administrerer godkendelser (htaccess, mod_auth eller andet ...). -ErrorForbidden4=Bemærk: Ryd dine browsercookies for at ødelægge eksisterende sessioner for dette login. -ErrorNoImagickReadimage=Class Imagick findes ikke i dette PHP. Ingen forhåndsvisning kan være tilgængelig. Administratorer kan deaktivere denne fane fra menuen Setup - Display. -ErrorRecordAlreadyExists=Optag allerede findes +ErrorDeleteNotPossibleLineIsConsolidated=Ikke muligt at slette, fordi posten er knyttet til en banktransaktion, der er forliget +ErrorProdIdAlreadyExist=%s er tildelt til en anden tredjepart +ErrorFailedToSendPassword=Det lykkedes ikke at sende adgangskode +ErrorFailedToLoadRSSFile=Kan ikke læse RSS-feed. Prøv at tilføje konstanten MAIN_SIMPLEXMLLOAD_DEBUG hvis fejlmeddelelserne ikke giver nok information. +ErrorForbidden=Adgang nægtet.
Du prøver at tilgå en side, område eller funktion for et deaktiveret modul eller uden at være i en autoriseret session eller som ikke er tilladt for din bruger. +ErrorForbidden2=Tilladelse for dette login kan defineres af din Dolibarr administrator fra menuen %s-> %s. +ErrorForbidden3=Det ser ud til, at Dolibarr ikke bruges gennem en godkendt session. Tag et kig på Dolibarr installationsdokumentationen for at lære mere om, hvordan man administrerer godkendelser (htaccess, mod_auth eller andet ...). +ErrorForbidden4=Bemærk: Ryd dine browsercookies for at slette eksisterende sessioner for dette login. +ErrorNoImagickReadimage=Biblioteket Imagick findes ikke i dette PHP. Ingen forhåndsvisning kan være tilgængelig. Administratorer kan deaktivere denne fane fra menuen Opsætning -> Udseende. +ErrorRecordAlreadyExists=Posten findes allerede ErrorLabelAlreadyExists=Denne etiket eksisterer allerede -ErrorCantReadFile=Kunne ikke læse filen ' %s' -ErrorCantReadDir=Kunne ikke læse directory ' %s' -ErrorBadLoginPassword=Bad værdi for brugernavn eller password +ErrorCantReadFile=Kunne ikke læse filen '%s' +ErrorCantReadDir=Kunne ikke læse mappen '%s' +ErrorBadLoginPassword=Forkert værdi for brugernavn eller adgangskode ErrorLoginDisabled=Din konto er blevet deaktiveret ErrorFailedToRunExternalCommand=Kunne ikke køre ekstern kommando. Kontroller, at den er tilgængelig og kan køres af din PHP-serverbruger. Kontroller også, at kommandoen ikke er beskyttet på shell-niveau af et sikkerhedslag som apparmor. -ErrorFailedToChangePassword=Det lykkedes ikke at ændre password -ErrorLoginDoesNotExists=Bruger med login %s kunne ikke findes. +ErrorFailedToChangePassword=Det lykkedes ikke at ændre adgangskode +ErrorLoginDoesNotExists=Bruger med navnet %s kunne ikke findes. ErrorLoginHasNoEmail=Denne bruger har ingen e-mail-adresse. Processen afbrydes. -ErrorBadValueForCode=Bad værdi former for kode. Prøv igen med en ny værdi ... -ErrorBothFieldCantBeNegative=Fields %s og %s kan ikke være både negative -ErrorFieldCantBeNegativeOnInvoice=Feltet %skan ikke være negativt på denne type faktura. Hvis du har brug for at tilføje en rabat linje, bare oprette rabatten først (fra marken '%s' i tredjeparts-kort), og anvende det til fakturaen. -ErrorLinesCantBeNegativeForOneVATRate=Det samlede antal linjer (netto af skat) kan ikke være negativt for en given ikke null momssats (Fundet en negativ sum for momssats %s %%). -ErrorLinesCantBeNegativeOnDeposits=Linjer kan ikke være negative i et depositum. Du vil stå over for problemer, når du bliver nødt til at forbruge deponering i endelige faktura, hvis du gør det. -ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative -ErrorWebServerUserHasNotPermission=Brugerkonto %s anvendes til at udføre web-server har ikke tilladelse til at -ErrorNoActivatedBarcode=Ingen stregkode aktiveret typen -ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to zip/unzip %s file in this PHP -ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package -ErrorModuleFileRequired=You must select a Dolibarr module package file -ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal -ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base -ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base -ErrorNewValueCantMatchOldValue=New value can't be equal to old one -ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process. -ErrorToConnectToMysqlCheckInstance=Forbindelse til database fejler. Check databaseserveren kører (for eksempel med mysql / mariadb kan du starte det fra kommandolinjen med 'sudo service mysql start'). -ErrorFailedToAddContact=Failed to add contact +ErrorBadValueForCode=Ugyldig værdi for sikkerheds kode. Prøv igen med en ny værdi ... +ErrorBothFieldCantBeNegative=Felterne %s og %s kan ikke begge være negative +ErrorFieldCantBeNegativeOnInvoice=Feltet %skan ikke være negativt på denne type faktura. Hvis du har brug for at tilføje en rabat linje, opret rabatten først (fra feltet '%s' i tredjeparts-kort), og anvend det til fakturaen. +ErrorLinesCantBeNegativeForOneVATRate=Det samlede antal linjer (netto af skat) kan ikke være negativt for en given ikke nul-momssats (Fandt en negativ sum for momssats %s %%). +ErrorLinesCantBeNegativeOnDeposits=Linjer kan ikke være negative for et depositum. Du vil opleve problemer, når du bliver nødt til at bruge deponering i den endelige faktura, hvis du gør det. +ErrorQtyForCustomerInvoiceCantBeNegative=Mængde for linjen på kunde fakturaer kan ikke være negativ +ErrorWebServerUserHasNotPermission=Brugerkonto %s der anvendes til at starte web-server har ikke tilladelse til dette +ErrorNoActivatedBarcode=Ingen stregkode type aktiveret +ErrUnzipFails=Udpakning fejlede for %s med ZipArchive +ErrNoZipEngine=Modul til pakning/udpakning af %s findes ikke i PHP +ErrorFileMustBeADolibarrPackage=Filen %s skal være en Dolibarr zip pakke +ErrorModuleFileRequired=Du skal vælge en Dolibarr modul pakke fil +ErrorPhpCurlNotInstalled=PHP CURL modulet er ikke installeret, dette er nødvendigt for at kommunikere med Paypal +ErrorFailedToAddToMailmanList=Tilføjelsen af posten %s til Mailman listen %s eller SPIP basen fejlede +ErrorFailedToRemoveToMailmanList=Sletning af posten %s fra Mailman listen %s eller SPIP basen fejlede +ErrorNewValueCantMatchOldValue=Den nye værdi kan ikke være magen til den gamle +ErrorFailedToValidatePasswordReset=Gendannelse af adgangskode fejlede. Måske gendannelsen allerede er udført (dette link kan kun bruges én gang). Hvis ikke, prøv at genstarte gendannelses processen. +ErrorToConnectToMysqlCheckInstance=Forbindelse til database fejler. Kontroller at databaseserveren kører (for eksempel, med mysql/mariadb, kan du starte den fra kommandolinjen med 'sudo service mysql start'). +ErrorFailedToAddContact=Tilføjelse af kontakt fejlede ErrorDateMustBeBeforeToday=Datoen skal være før end i dag ErrorDateMustBeInFuture=Datoen skal være efter dags dato -ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode. -ErrorPHPNeedModule=Error, your PHP must have module %s installed to use this feature. -ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s -ErrorWarehouseMustDiffers=Source and target warehouses must differs -ErrorBadFormat=Bad format! -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. -ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused. -ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled +ErrorPaymentModeDefinedToWithoutSetup=En betalingsmetode var sat til typen %s men opsætningen af faktura modulet er ikke fuldført til at angive information der skal vises for denne betalingsmetode. +ErrorPHPNeedModule=Fejl, din PHP skal have modulet %s installeret for at benytte denne funktion. +ErrorOpenIDSetupNotComplete=Do hare opsat din Dolibarr konfigurations fil til at tillade OpenID autentificering, men URL'en til OpenID servicen er ikke defineret i konstanten %s +ErrorWarehouseMustDiffers=Kilde og destinations varehus skal være forskellige +ErrorBadFormat=Forkert format! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Fejl, dette medlem er endnu ikke knyttet til en tredjepart. Knyt medlem til en eksisterende tredjepart eller opret en ny tredjepart før oprettelsen af et abonnement med faktura. +ErrorThereIsSomeDeliveries=Fejl, der er knyttet leverancer til denne forsendelse. Sletning nægtet. +ErrorCantDeletePaymentReconciliated=Kan ikke slette en betaling der har oprettet en bank postering som var forsonet. ErrorCantDeletePaymentSharedWithPayedInvoice=Kan ikke slette en betaling deles af mindst én faktura med status Betalt -ErrorPriceExpression1=Cannot assign to constant '%s' -ErrorPriceExpression2=Cannot redefine built-in function '%s' -ErrorPriceExpression3=Undefined variable '%s' in function definition -ErrorPriceExpression4=Illegal character '%s' -ErrorPriceExpression5=Unexpected '%s' -ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected) -ErrorPriceExpression8=Unexpected operator '%s' -ErrorPriceExpression9=An unexpected error occured +ErrorPriceExpression1=Kan ikke tilføjes til konstant '%s' +ErrorPriceExpression2=Kan ikke omdefinere en indbygget funktion '%s' +ErrorPriceExpression3=Udefineret variabel '%s' i funktions beskrivelsen +ErrorPriceExpression4=Ugyldigt tegn '%s' +ErrorPriceExpression5=Uventet '%s' +ErrorPriceExpression6=Ugyldigt antal argumenter (%s angivet, %s forventet) +ErrorPriceExpression8=Uventet operatør '%s' +ErrorPriceExpression9=En uventet fejl er opstået ErrorPriceExpression10=Operatør '%s' mangler operand -ErrorPriceExpression11=Expecting '%s' -ErrorPriceExpression14=Division by zero -ErrorPriceExpression17=Undefined variable '%s' -ErrorPriceExpression19=Expression not found -ErrorPriceExpression20=Empty expression -ErrorPriceExpression21=Empty result '%s' -ErrorPriceExpression22=Negative result '%s' +ErrorPriceExpression11=Forventer '%s' +ErrorPriceExpression14=Deling med nul +ErrorPriceExpression17=Ikke defineret variabel '%s' +ErrorPriceExpression19=Udtryk ikke fundet +ErrorPriceExpression20=Tomt udtryk +ErrorPriceExpression21=Tomt resultat '%s' +ErrorPriceExpression22=Negativt resultat '%s' ErrorPriceExpression23=Ukendt eller ikke-sæt variabel '%s' i %s ErrorPriceExpression24=Variabel '%s' eksisterer men har ingen værdi -ErrorPriceExpressionInternal=Internal error '%s' -ErrorPriceExpressionUnknown=Unknown error '%s' -ErrorSrcAndTargetWarehouseMustDiffers=Source and target warehouses must differs -ErrorTryToMakeMoveOnProductRequiringBatchData=Fejl, forsøger at lave en lagerbevægelse uden parti / seriel information på produkt '%s', der kræver meget parti / seriel information -ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified (approved or denied) before being allowed to do this action -ErrorCantSetReceptionToTotalDoneWithReceptionDenied=All recorded receptions must first be verified (approved) before being allowed to do this action -ErrorGlobalVariableUpdater0=HTTP request failed with error '%s' -ErrorGlobalVariableUpdater1=Invalid JSON format '%s' -ErrorGlobalVariableUpdater2=Missing parameter '%s' -ErrorGlobalVariableUpdater3=The requested data was not found in result -ErrorGlobalVariableUpdater4=SOAP client failed with error '%s' -ErrorGlobalVariableUpdater5=No global variable selected -ErrorFieldMustBeANumeric=Field %s must be a numeric value -ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided +ErrorPriceExpressionInternal=Intern fejl '%s' +ErrorPriceExpressionUnknown=Ukendt fejl '%s' +ErrorSrcAndTargetWarehouseMustDiffers=Kilde og destinations varehus skal være forskellige +ErrorTryToMakeMoveOnProductRequiringBatchData=Fejl, forsøger at lave en lagerbevægelse uden parti/serie information på produkt '%s', der kræver parti/serie information +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Alle registrerede modtagelser skal først verificeres (godkendes eller afvises), før de får lov til at udføre denne handling +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Alle registrerede modtagelser skal først verificeres (godkendes), før de får lov til at udføre denne handling +ErrorGlobalVariableUpdater0=HTTP-anmodning mislykkedes med fejlen '%s' +ErrorGlobalVariableUpdater1=Ugyldigt JSON-format '%s' +ErrorGlobalVariableUpdater2=Manglende parameter '%s' +ErrorGlobalVariableUpdater3=De anmodede data blev ikke fundet i resultatet +ErrorGlobalVariableUpdater4=SOAP-klient mislykkedes med fejlen '%s' +ErrorGlobalVariableUpdater5=Ingen global variabel valgt +ErrorFieldMustBeANumeric=Feltet %s skal være en numerisk værdi +ErrorMandatoryParametersNotProvided=Obligatoriske parametre er ikke angivet ErrorOppStatusRequiredIfAmount=Du angiver et estimeret beløb for denne kundeemne. Så du skal også indtaste dets status. -ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s -ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) +ErrorFailedToLoadModuleDescriptorForXXX=Kunne ikke indlæse modulbeskrivelsesklassen for %s +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Dårlig definition af menuarray i modulbeskrivelse (dårlig værdi for nøglen fk_menu) ErrorSavingChanges=Der er opstået en fejl, når ændringerne gemmes -ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship -ErrorFileMustHaveFormat=File must have format %s +ErrorWarehouseRequiredIntoShipmentLine=Lager er påkrævet på linjen for at sende +ErrorFileMustHaveFormat=Filen skal have formatet %s ErrorFilenameCantStartWithDot=Filnavn kan ikke starte med et '.' ErrorSupplierCountryIsNotDefined=Land for denne sælger er ikke defineret. Rett dette først. -ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled. -ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order. -ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice. -ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment. -ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. -ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. -ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) -ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorsThirdpartyMerge=Kunne ikke flette de to poster. Anmodning annulleret. +ErrorStockIsNotEnoughToAddProductOnOrder=Lagerbeholdning er ikke nok til at produkt %s kan tilføje det til en ny ordre. +ErrorStockIsNotEnoughToAddProductOnInvoice=Lagerbeholdning er ikke nok til, at produkt %s kan tilføje det til en ny faktura. +ErrorStockIsNotEnoughToAddProductOnShipment=Lager er ikke nok til at produkt %s kan tilføje det til en ny forsendelse. +ErrorStockIsNotEnoughToAddProductOnProposal=Lager er ikke nok til at produkt %s kan tilføje det i et nyt forslag. +ErrorFailedToLoadLoginFileForMode=Kunne ikke hente login-nøglen til tilstanden '%s'. +ErrorModuleNotFound=Modulets fil blev ikke fundet. +ErrorFieldAccountNotDefinedForBankLine=Værdi for regnskabskonto ikke defineret for kildelinje-id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Værdi for regnskabskonto ikke defineret for faktura-id %s (%s) ErrorFieldAccountNotDefinedForLine=Værdi for regnskabskonto ikke defineret for linjen (%s) -ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s -ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. -ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. -ErrorTaskAlreadyAssigned=Task already assigned to user -ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. +ErrorBankStatementNameMustFollowRegex=Fejl, navn på kontoudtog skal følge følgende syntaksregel %s +ErrorPhpMailDelivery=Tjek, at du ikke bruger et for højt antal modtagere, og at dit e-mailindhold ikke ligner spam. Bed også din administrator om at kontrollere firewall- og serverlogfilerne for at få mere fuldstændig information. +ErrorUserNotAssignedToTask=Bruger skal tildeles opgave for at kunne indtaste tidsforbrug. +ErrorTaskAlreadyAssigned=Opgaven er allerede tildelt brugeren +ErrorModuleFileSeemsToHaveAWrongFormat=Modulpakken ser ud til at have et forkert format. ErrorModuleFileSeemsToHaveAWrongFormat2=Der skal mindst findes et obligatorisk bibliotek i zip modulet: %s eller %s -ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s -ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. -ErrorNoWarehouseDefined=Error, no warehouses defined. -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorFilenameDosNotMatchDolibarrPackageRules=Navnet på modulpakken ( %s ) stemmer ikke overens med forventet navnesyntaks: %s 9z0 a010z0 +ErrorDuplicateTrigger=Fejl, dubleret triggernavn %s. Allerede indlæst fra %s. +ErrorNoWarehouseDefined=Fejl, ingen varehuse defineret. +ErrorBadLinkSourceSetButBadValueForRef=Linket du bruger er ikke gyldigt. En 'kilde' til betaling er defineret, men værdien for 'ref' er ikke gyldig. ErrorTooManyErrorsProcessStopped=For mange fejl. Processen blev stoppet. ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Massbekræftelse er ikke mulig, når indstillingen for at øge/reducere lager er indstillet på denne handling (du skal bekræfte en for en, så du kan definere lageret for at øge / formindske) ErrorObjectMustHaveStatusDraftToBeValidated=Objekt %s skal have status 'Udkast', der skal bekræftes. @@ -228,7 +230,7 @@ ErrorFileNotFoundWithSharedLink=Filen blev ikke fundet. Det kan være, at dele n ErrorProductBarCodeAlreadyExists=Produktets stregkode %s eksisterer allerede på en anden produktreference. ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Bemærk også, at det ikke er muligt at bruge sæt til automatisk forøgelse / formindskelse af underprodukter, når mindst et underprodukt (eller underprodukt af underprodukter) har brug for et serienummer / lotnummer. ErrorDescRequiredForFreeProductLines=Beskrivelse er obligatorisk for linjer med gratis produkt -ErrorAPageWithThisNameOrAliasAlreadyExists=Siden / beholderen %s har samme navn eller alternativt alias som den, du forsøger at bruge +ErrorAPageWithThisNameOrAliasAlreadyExists=Siden / beholderen %s har samme navn eller alternativt alias som den, du forsøger at bruge ErrorDuringChartLoad=Fejl ved indlæsning af kontoplan. Hvis nogle konti ikke blev indlæst, kan du stadig indtaste dem manuelt. ErrorBadSyntaxForParamKeyForContent=Dårlig syntaks for parameternøgleindhold. Skal have en værdi, der starter med %s eller %s ErrorVariableKeyForContentMustBeSet=Fejl, konstanten med navn %s(med tekstindhold, der skal vises) eller %s(med ekstern url til at vises) skal sættes. @@ -242,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Objekter skal have status 'Aktiv' fo ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objekter skal have status 'Udkast' eller 'Deaktiveret' for at være aktiveret ErrorNoFieldWithAttributeShowoncombobox=Ingen felter har egenskaben 'showoncombobox' til definition af objektet '%s'. Ingen måde at vise kombinationen på. ErrorFieldRequiredForProduct=Felt '%s' kræves for produktet %s +AlreadyTooMuchPostOnThisIPAdress=Du har allerede skrevet for meget på denne IP-adresse. ProblemIsInSetupOfTerminal=Problemet er ved opsætning af terminalen %s. ErrorAddAtLeastOneLineFirst=Tilføj mindst en linje først ErrorRecordAlreadyInAccountingDeletionNotPossible=Fejl, posten er allerede overført i regnskab, sletning er ikke mulig. @@ -277,8 +280,8 @@ ErrorWrongFileName=Filens navn kan ikke indeholde __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Ikke i ordbogen om betalingsbetingelser, bedes du ændre. ErrorIsNotADraft=%s er ikke et udkast ErrorExecIdFailed=Kan ikke udføre kommandoen "id" -ErrorBadCharIntoLoginName=Ikke godkendt tegn i login-navnet -ErrorRequestTooLarge=Fejl, anmodningen er for stor +ErrorBadCharIntoLoginName=Uautoriseret tegn i feltet %s +ErrorRequestTooLarge=Fejl, anmodningen er for stor, eller sessionen er udløbet ErrorNotApproverForHoliday=Du er ikke godkender for orlov %s ErrorAttributeIsUsedIntoProduct=Denne attribut bruges i en eller flere produktvarianter ErrorAttributeValueIsUsedIntoProduct=Denne attributværdi bruges i en eller flere produktvarianter @@ -291,10 +294,20 @@ ErrorAjaxRequestFailed=Anmodningen mislykkedes ErrorThirpdartyOrMemberidIsMandatory=Tredjepart eller medlem af partnerskab er obligatorisk ErrorFailedToWriteInTempDirectory=Kunne ikke skrive i midlertidigt bibliotek ErrorQuantityIsLimitedTo=Mængden er begrænset til %s +ErrorFailedToLoadThirdParty=Kunne ikke finde/indlæse tredjepart fra id=%s, email=%s, name=%s +ErrorThisPaymentModeIsNotSepa=Denne betalingsmetode er ikke en bankkonto +ErrorStripeCustomerNotFoundCreateFirst=Stripe-kunde er ikke indstillet til denne tredjepart (eller indstillet til en værdi slettet på Stripe-siden). Opret (eller vedhæft igen) det først. +ErrorCharPlusNotSupportedByImapForSearch=IMAP-søgning er ikke i stand til at søge i afsender eller modtager efter en streng, der indeholder tegnet + +ErrorTableNotFound=Tabel %s blev ikke fundet +ErrorValueForTooLow=Værdien for %s er for lav +ErrorValueCantBeNull=Værdien for %s kan ikke være 0 +ErrorDateOfMovementLowerThanDateOfFileTransmission=Datoen for banktransaktionen må ikke være lavere end datoen for filoverførslen +ErrorTooMuchFileInForm=For mange filer i form, det maksimale antal er %s fil(er) +ErrorSessionInvalidatedAfterPasswordChange=Sessionen blev ugyldiggjort efter en ændring af adgangskode, status eller gyldighedsdatoer. Log venligst på igen. # 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. +WarningPasswordSetWithNoAccount=Der blev angivet en adgangskode til dette medlem. Der blev dog ikke oprettet en brugerkonto. Så denne adgangskode er gemt, men kan ikke bruges til at logge ind på Dolibarr. Det kan bruges af et eksternt modul/interface, men hvis du ikke behøver at definere noget login eller adgangskode for et medlem, kan du deaktivere muligheden "Administrer et login for hvert medlem" fra medlemsmodulets opsætning. Hvis du har brug for at administrere et login, men ikke har brug for nogen adgangskode, kan du holde dette felt tomt for at undgå denne advarsel. Bemærk: E-mail kan også bruges som login, hvis medlemmet er knyttet til en bruger. WarningMandatorySetupNotComplete=Klik her for at indstille hovedparametre WarningEnableYourModulesApplications=Klik her for at aktivere dine moduler og applikationer WarningSafeModeOnCheckExecDir=Advarsel, PHP option safe_mode er på så kommandoen skal opbevares i en mappe angivet af php parameter safe_mode_exec_dir. @@ -304,17 +317,18 @@ WarningConfFileMustBeReadOnly=Advarsel, config fil (htdocs / conf / conf.php) WarningsOnXLines=Advarsler om %s kildelinjer WarningNoDocumentModelActivated=Ingen model til dokumentgenerering er blevet aktiveret. En model vælges som standard, indtil du tjekker din modulopsætning. WarningLockFileDoesNotExists=Advarsel, når installationen er afsluttet, skal du deaktivere installations- / migreringsværktøjerne ved at tilføje en fil install.lock i biblioteket%s. At udelade oprettelsen af denne fil er en alvorlig sikkerhedsrisiko. -WarningUntilDirRemoved=Alle sikkerhedsadvarsler (kun synlige for adminbrugere) forbliver aktive, så længe sårbarheden er til stede (eller den konstante MAIN_REMOVE_INSTALL_WARNING er tilføjet i Setup-> Other Setup). -WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. -WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box. +WarningUntilDirRemoved=Denne sikkerhedsadvarsel forbliver aktiv, så længe sårbarheden er til stede. +WarningCloseAlways=Advarsel, lukning udføres, selvom mængden er forskellig mellem kilde- og målelementer. Aktiver denne funktion med forsigtighed. +WarningUsingThisBoxSlowDown=Advarsel, brug af denne boks langsommere seriøst alle sider, der viser boksen. WarningClickToDialUserSetupNotComplete=Opsætning af ClickToDial-oplysninger til din bruger er ikke komplet (se fanen ClickToDial på dit brugerkort). -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers. +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Funktion deaktiveret, når skærmopsætning er optimeret til blinde personer eller tekstbrowsere. WarningPaymentDateLowerThanInvoiceDate=Betalingsdato (%s) er tidligere end faktura dato (%s) for faktura %s. -WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. -WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. -WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. -WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language -WarningNumberOfRecipientIsRestrictedInMassAction=Advarsel, antallet af forskellige modtagere er begrænset til %s , når du bruger massehandlingerne på lister +WarningTooManyDataPleaseUseMoreFilters=For mange data (mere end %s linjer). Brug venligst flere filtre eller indstil konstanten %s til en højere grænse. +WarningSomeLinesWithNullHourlyRate=Nogle tidspunkter blev registreret af nogle brugere, mens deres timepris ikke var defineret. Der blev brugt en værdi på 0 %s pr. time, men dette kan resultere i forkert værdiansættelse af brugt tid. +WarningYourLoginWasModifiedPleaseLogin=Dit login blev ændret. Af sikkerhedsmæssige årsager skal du logge ind med dit nye login før næste handling. +WarningYourPasswordWasModifiedPleaseLogin=Din adgangskode blev ændret. Af sikkerhedsmæssige årsager skal du logge ind nu med din nye adgangskode. +WarningAnEntryAlreadyExistForTransKey=Der findes allerede en post for oversættelsesnøglen for dette sprog +WarningNumberOfRecipientIsRestrictedInMassAction=Advarsel, antallet af forskellige modtagere er begrænset til %s, når du bruger massehandlingerne på lister WarningDateOfLineMustBeInExpenseReportRange=Advarsel, datoen for linjen ligger ikke inden for udgiftsrapporten WarningProjectDraft=Projektet er stadig i kladdetilstand. Glem ikke at validere det, hvis du planlægger at bruge opgaver. WarningProjectClosed=Projektet er lukket. Du skal genåbne det først. @@ -326,11 +340,13 @@ WarningAvailableOnlyForHTTPSServers=Kun tilgængelig, hvis du bruger HTTPS-sikre WarningModuleXDisabledSoYouMayMissEventHere=Modul %s er ikke aktiveret. Så du går måske glip af en masse begivenheder her. WarningPaypalPaymentNotCompatibleWithStrict=Værdien 'Strict' gør, at onlinebetalingsfunktionerne ikke fungerer korrekt. Brug 'Lax' i stedet. WarningThemeForcedTo=Advarsel, temaet er blevet tvunget til %s af skjult konstant MAIN_FORCETHEME +WarningPagesWillBeDeleted=Advarsel, dette vil også slette alle eksisterende sider/containere på hjemmesiden. Du bør eksportere dit websted før, så du har en sikkerhedskopi til at genimportere det senere. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Automatisk validering er deaktiveret, når muligheden for at reducere lager er indstillet på "Fakturavalidering". # Validate RequireValidValue = Værdien er ikke gyldig RequireAtLeastXString = Kræver mindst %s karakter (er) -RequireXStringMax = Kræver maks. Tegn på %s +RequireXStringMax = Kræver maks. %s tegn RequireAtLeastXDigits = Kræver mindst %s ciffer (er) RequireXDigitsMax = Kræver %s ciffer (er) maks RequireValidNumeric = Kræver en numerisk værdi diff --git a/htdocs/langs/da_DK/eventorganization.lang b/htdocs/langs/da_DK/eventorganization.lang index caf0e3e0d1b..d6a594121db 100644 --- a/htdocs/langs/da_DK/eventorganization.lang +++ b/htdocs/langs/da_DK/eventorganization.lang @@ -54,6 +54,7 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = I formularen til at oprette/tilføje en # Object # EventOrganizationConfOrBooth= Konference eller stand +EventOrganizationConfOrBoothes=Konferencer eller stande ManageOrganizeEvent = Administrer tilrettelæggelsen af en begivenhed ConferenceOrBooth = Konference eller stand ConferenceOrBoothTab = Konference eller stand @@ -114,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Her kan du stemme på en konference eller fores EvntOrgRegistrationConfHelpMessage = Her kan du foreslå en ny konference for at animere under arrangementet. EvntOrgRegistrationBoothHelpMessage = Her kan du ansøge om at få en bod under arrangementet. ListOfSuggestedConferences = Liste over foreslåede konferencer -ListOfSuggestedBooths = Liste over foreslåede stand -ListOfConferencesOrBooths=Liste over konferencer eller boder med eventprojekt +ListOfSuggestedBooths=Foreslåede stande +ListOfConferencesOrBooths=Konferencer eller stande af eventprojekt SuggestConference = Foreslå en ny konference SuggestBooth = Foreslå en kabine ViewAndVote = Se og stem på foreslåede begivenheder PublicAttendeeSubscriptionGlobalPage = Offentligt link til registrering til arrangementet PublicAttendeeSubscriptionPage = Offentligt link til registrering til denne begivenhed MissingOrBadSecureKey = Sikkerhedsnøglen er ugyldig eller mangler -EvntOrgWelcomeMessage = Denne formular giver dig mulighed for at registrere dig som en ny deltager til begivenheden: %s +EvntOrgWelcomeMessage = Denne formular giver dig mulighed for at tilmelde dig som ny deltager til arrangementet EvntOrgDuration = Denne konference starter på %s og slutter på %s. ConferenceAttendeeFee = Konferencedeltagergebyr for begivenheden: '%s', der forekommer fra %s til %s. BoothLocationFee = Standplacering for begivenheden: '%s' der forekommer fra %s til %s @@ -132,7 +133,7 @@ LabelOfconference=Konference label ConferenceIsNotConfirmed=Tilmelding ikke tilgængelig, konference er ikke bekræftet endnu DateMustBeBeforeThan=%s skal være før %s DateMustBeAfterThan=%s skal være efter %s - +MaxNbOfAttendeesReached=Det maksimale antal deltagere er nået NewSubscription=Registrering OrganizationEventConfRequestWasReceived=Dit forslag til en konference er modtaget OrganizationEventBoothRequestWasReceived=Din anmodning om en bod er modtaget @@ -157,7 +158,7 @@ VoteOk = Din stemme er blevet accepteret. AlreadyVoted = Du har allerede stemt på denne begivenhed. VoteError = Der opstod en fejl under afstemningen. Prøv igen. -SubscriptionOk = Din registrering er valideret +SubscriptionOk=Din registrering er blevet registreret ConfAttendeeSubscriptionConfirmation = Bekræftelse af dit abonnement på en begivenhed Attendee = Deltager PaymentConferenceAttendee = Konference deltager betaling @@ -165,8 +166,11 @@ PaymentBoothLocation = Betaling af standplacering DeleteConferenceOrBoothAttendee=Fjern deltager RegistrationAndPaymentWereAlreadyRecorder=En registrering og en betaling blev allerede registreret for e -mailen %s EmailAttendee=E -mail til deltager +EmailCompany=Firma e-mail EmailCompanyForInvoice=Firmaets e -mail (for faktura, hvis den er forskellig fra deltagerens e -mail) ErrorSeveralCompaniesWithEmailContactUs=Flere virksomheder med denne e -mail er fundet, så vi kan ikke automatisk validere din registrering. Kontakt os venligst på %s for en manuel validering ErrorSeveralCompaniesWithNameContactUs=Flere virksomheder med dette navn er fundet, så vi kan ikke automatisk validere din registrering. Kontakt os venligst på %s for en manuel validering NoPublicActionsAllowedForThisEvent=Ingen offentlige handlinger er åbne for offentligheden for denne begivenhed MaxNbOfAttendees=Max antal deltagere +DateStartEvent=Begivenhedens startdato +DateEndEvent=Begivenheds slutdato diff --git a/htdocs/langs/da_DK/exports.lang b/htdocs/langs/da_DK/exports.lang index 5df2c640794..59fcbd6d319 100644 --- a/htdocs/langs/da_DK/exports.lang +++ b/htdocs/langs/da_DK/exports.lang @@ -18,6 +18,7 @@ ExportableFields=Exportable felter ExportedFields=Eksporteres felter ImportModelName=Import Profilnavn ImportModelSaved=Importprofil gemt som %s . +ImportProfile=Import profil DatasetToExport=Datasæt til eksport DatasetToImport=Datasæt til at importere ChooseFieldsOrdersAndTitle=Vælg felter ordre ... @@ -53,6 +54,7 @@ TypeOfLineServiceOrProduct=Strækningstype (0= produkt, 1= tjeneste) FileWithDataToImport=Fil med data til at importere FileToImport=Kildefilen til at importere FileMustHaveOneOfFollowingFormat=Fil, der skal importeres, skal have et af følgende formater +DownloadEmptyExampleShort=Download en prøvefil DownloadEmptyExample=Download en skabelonfil med eksempler og information om felter, du kan importere StarAreMandatory=I skabelonfilen er alle felter med en * obligatoriske felter ChooseFormatOfFileToImport=Vælg det filformat, der skal bruges som importfilformat, ved at klikke på ikonet %s for at vælge det ... @@ -82,7 +84,7 @@ SelectFormat=Vælg denne import filformat RunImportFile=Importer data NowClickToRunTheImport=Kontroller resultaterne af importsimuleringen. Korrigér eventuelle fejl og genprøve.
Når simuleringen rapporterer, er der ingen fejl, du kan fortsætte med at importere dataene til databasen. DataLoadedWithId=De importerede data har et ekstra felt i hver databasetabel med dette import-id :%s, for at tillade, at de kan søges i tilfælde af at undersøge et problem, der er relateret til denne import. -ErrorMissingMandatoryValue=Obligatoriske data er tomme i kildefilen for feltet %s . +ErrorMissingMandatoryValue=Obligatoriske data er tomme i kildefilen i kolonne %s. TooMuchErrors=Der er stadig %s andre kildelinjer med fejl, men output er begrænset. TooMuchWarnings=Der er stadig %s andre kildelinjer med advarsler, men output er begrænset. EmptyLine=Tom linje (vil blive kasseret) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Du kan finde alle de importerede poster i din data NbOfLinesOK=Antallet af linjer uden fejl og ingen advarsler: %s. NbOfLinesImported=Antallet af linjer med held importeret: %s. DataComeFromNoWhere=Værdi at indsætte kommer fra ingenting i kildefilen. -DataComeFromFileFieldNb=Værdi at indsætte kommer fra feltnummer %s i kildefilen. -DataComeFromIdFoundFromRef=Værdi, der kommer fra feltnummer %s af kildefilen, vil blive brugt til at finde id'et af det overordnede objekt, der skal bruges (så objektet %s , der har referencen fra kildefilen skal eksistere i databasen). -DataComeFromIdFoundFromCodeId=Kode, der kommer fra feltnummer %s af kildefilen, vil blive brugt til at finde identifikations-id'ets id, der skal bruges (så koden fra kildefilen skal eksistere i ordbogen %s ). Bemærk, at hvis du kender id, kan du også bruge det i kildefilen i stedet for koden. Importen skal fungere i begge tilfælde. +DataComeFromFileFieldNb=Værdien, der skal indsættes, kommer fra kolonne %s i kildefilen. +DataComeFromIdFoundFromRef=Værdien, der kommer fra kildefilen, vil blive brugt til at finde id'et for det overordnede objekt, der skal bruges (så objektet %s , der har ref. fra kildefilen, skal eksistere i databasen). +DataComeFromIdFoundFromCodeId=Værdien af kode, der kommer fra kildefilen, vil blive brugt til at finde id'et for det overordnede objekt, der skal bruges (så koden fra kildefilen skal findes i ordbogen %s ). Bemærk, at hvis du kender id'et, kan du også bruge det i kildefilen i stedet for koden. Import bør fungere i begge tilfælde. DataIsInsertedInto=Data kommer fra kildefilen vil blive indsat i følgende felt: DataIDSourceIsInsertedInto=Id'et for det overordnede objekt, der blev fundet ved hjælp af dataene i kildefilen, indsættes i følgende felt: DataCodeIDSourceIsInsertedInto=Id'et for den overordnede linje, der blev fundet fra kode, indsættes i følgende felt: @@ -132,9 +134,14 @@ FormatControlRule=Format control rule ## imports updates KeysToUseForUpdates=Nøgle (kolonne), der skal bruges til opdatering eksisterende data NbInsert=Number of inserted lines: %s +NbInsertSim=Antal linjer, der vil blive indsat: %s NbUpdate=Number of updated lines: %s +NbUpdateSim=Antal linjer, der vil blive opdateret: %s MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s StocksWithBatch=Lager og placering (lager) af produkter med batch / serienummer WarningFirstImportedLine=Den eller de første linjer vil ikke blive importeret med det aktuelle valg NotUsedFields=Felter i databasen er ikke brugt SelectImportFieldsSource = Vælg de kildefil felter, du vil importere, og deres målfelt i databasen ved at vælge felterne i hvert udvalgte felt, eller vælg en foruddefineret importprofil: +MandatoryTargetFieldsNotMapped=Nogle obligatoriske målfelter er ikke forbundet +AllTargetMandatoryFieldsAreMapped=Alle målfelter, der skal have en obligatorisk værdi, er forbundet +ResultOfSimulationNoError=Resultat af simulering: Ingen fejl diff --git a/htdocs/langs/da_DK/holiday.lang b/htdocs/langs/da_DK/holiday.lang index b9168e3dec9..584bc165a40 100644 --- a/htdocs/langs/da_DK/holiday.lang +++ b/htdocs/langs/da_DK/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Ferie/Fravær +Holidays=Blade +Holiday=Ferie/Fravær CPTitreMenu=Ferie/Fravær MenuReportMonth=Månedlig opgørelse MenuAddCP=Ny forespørgsel +MenuCollectiveAddCP=Ny kollektiv fraværssanmodning NotActiveModCP=Du skal aktivere modulet Ferie/Fravær for at se denne side. AddCP=Lav en forespørgsel DateDebCP=Startdato @@ -56,6 +58,7 @@ ConfirmDeleteCP=Bekræft sletning af denne forespørgsel? ErrorCantDeleteCP=Fejl, du har ikke rettigheder til at slette denne forespørgsel. CantCreateCP=Du har ikke rettigheder til at lave denne forespørgsel. InvalidValidatorCP=Du skal vælge godkenderen til din fraværsforespørgsel. +InvalidValidator=Den valgte bruger kan ikke godkende. NoDateDebut=Du skal vælge en startdato. NoDateFin=Du skal vælge en slutdato. ErrorDureeCP=Din forespørgsel indeholder ikke en arbejdsdag. @@ -79,6 +82,8 @@ MotifCP=Årsag UserCP=Bruger ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. +ErrorFieldRequiredUserOrGroup="Gruppe"-feltet eller "bruger"-feltet skal udfyldes +fusionGroupsUsers=Gruppefeltet og brugerfeltet vil blive flettet MenuLogCP=View change logs LogCP=Log over alle opdateringer til "Status af Fraværsdage" ActionByCP=Opdateret af @@ -86,10 +91,17 @@ UserUpdateCP=Opdateret til PrevSoldeCP=Foregående Balance NewSoldeCP=Ny Balance alreadyCPexist=A leave request has already been done on this period. +UseralreadyCPexist=Der er allerede lavet en fraværssanmodning på denne periode for %s. +groups=Grupper +users=Brugere +AutoSendMail=Automatisk forsendelse +NewHolidayForGroup=Ny kollektiv fraværssanmodning +SendRequestCollectiveCP=Send kollektiv fraværssanmodning +AutoValidationOnCreate=Automatisk validering FirstDayOfHoliday=Begyndelsesdag for orlovsanmodning LastDayOfHoliday=Afslutningsdag for orlovsanmodning BoxTitleLastLeaveRequests=Latest %s modified leave requests -HolidaysMonthlyUpdate=Monthly update +HolidaysMonthlyUpdate=Månedlig opdatering ManualUpdate=Manual update HolidaysCancelation=Fraværs anmodning annullering EmployeeLastname=Medarbejderens efternavn @@ -101,7 +113,7 @@ HalfDay=Halv dag NotTheAssignedApprover=Du er ikke den tildelte godkender LEAVE_PAID=Betalt fravær LEAVE_SICK=Sygefravær -LEAVE_OTHER=Anden fravær +LEAVE_OTHER=Andet fravær LEAVE_PAID_FR=Betalt fravær ## Configuration du Module ## LastUpdateCP=Sidste automatiske opdatering af orlovstildeling @@ -137,3 +149,10 @@ XIsAUsualNonWorkingDay=%s er sædvanligvis en IKKE arbejdsdag BlockHolidayIfNegative=Bloker hvis saldoen er negativ LeaveRequestCreationBlockedBecauseBalanceIsNegative=Oprettelsen af denne orlovsanmodning er blokeret, fordi din saldo er negativ ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Efter lad spørgsmål %s skal være udkast, annulleret eller nægtet at blive slettet +IncreaseHolidays=Forøg ferie +HolidayRecordsIncreased= %s ferierekorder steg +HolidayRecordIncreased=Ferierekord steg +ConfirmMassIncreaseHoliday=Masseferiestigning +NumberDayAddMass=Antal dage, der skal føjes til udvalget +ConfirmMassIncreaseHolidayQuestion=Er du sikker på, at du vil øge ferien for de(n) valgte post(er) %s? +HolidayQtyNotModified=Saldo af resterende dage for %s er ikke blevet ændret diff --git a/htdocs/langs/da_DK/interventions.lang b/htdocs/langs/da_DK/interventions.lang index da458e14a36..4784f2f4fe5 100644 --- a/htdocs/langs/da_DK/interventions.lang +++ b/htdocs/langs/da_DK/interventions.lang @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Er du sikker på, at du vil åbne interventionen % GenerateInter=Generer intervention FichinterNoContractLinked=Intervention %s er blevet oprettet uden en tilknyttet kontrakt. ErrorFicheinterCompanyDoesNotExist=Virksomheden eksisterer ikke. Intervention er ikke blevet oprettet. +NextDateToIntervention=Dato for næste interventionsgeneration +NoIntervention=Ingen indgriben diff --git a/htdocs/langs/da_DK/loan.lang b/htdocs/langs/da_DK/loan.lang index d5d4fe3846f..239af7bf93c 100644 --- a/htdocs/langs/da_DK/loan.lang +++ b/htdocs/langs/da_DK/loan.lang @@ -28,7 +28,7 @@ CantUseScheduleWithLoanStartedToPaid = Kan ikke generere en tidslinje for et lå CantModifyInterestIfScheduleIsUsed = Du kan ikke ændre renten, hvis du bruger tidsplanen # Admin 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 +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Konto (fra kontoplanen) skal som standard bruges til kapital (lånemodul) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Konto (fra kontoplanen) bruges som standard til renter (lånemodul) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Konto (fra kontoplanen) skal som standard bruges til forsikring (lånemodul) CreateCalcSchedule=Rediger økonomisk forpligtelse diff --git a/htdocs/langs/da_DK/mailmanspip.lang b/htdocs/langs/da_DK/mailmanspip.lang index b0f19f96de9..1ab8040172c 100644 --- a/htdocs/langs/da_DK/mailmanspip.lang +++ b/htdocs/langs/da_DK/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Abonnements testen blev udført med succes MailmanDeletionSuccess=Unsubscription test blev udført med succes SynchroMailManEnabled=En Mailman opdatering vil blive udført SynchroSpipEnabled=En Spip opdatering vil blive udført -DescADHERENT_MAILMAN_ADMINPW=Mailman administrator adgangskode +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Mailman administrator adgangskode DescADHERENT_MAILMAN_URL=URL til Mailman abonnementer DescADHERENT_MAILMAN_UNSUB_URL=URL til Mailman abonnementer DescADHERENT_MAILMAN_LISTS=Liste (r) til automatisk registrering af nye medlemmer (adskilt af komma) diff --git a/htdocs/langs/da_DK/mails.lang b/htdocs/langs/da_DK/mails.lang index 4bdc2bca9ee..990dd9266d7 100644 --- a/htdocs/langs/da_DK/mails.lang +++ b/htdocs/langs/da_DK/mails.lang @@ -7,10 +7,10 @@ MailCard=Emailing kortet MailRecipients=Modtagere MailRecipient=Recipient MailTitle=Titel -MailFrom=Sender +MailFrom=Fra MailErrorsTo=Fejl MailReply=Besvar -MailTo=Receiver (r) +MailTo=Til MailToUsers=Til bruger (e) MailCC=Kopier til MailToCCUsers=Kopier til brugere (e) @@ -117,14 +117,14 @@ ToAddRecipientsChooseHere=Hvis du vil tilføje modtagere, skal du vælge i disse NbOfEMailingsReceived=Masse emailings modtaget NbOfEMailingsSend=Mass emailings sent IdRecord=ID record -DeliveryReceipt=Delivery Ack. +DeliveryReceipt=Leverings Bekr. YouCanUseCommaSeparatorForSeveralRecipients=Du kan bruge comma separator til at angive flere modtagere. TagCheckMail=Track mail opening TagUnsubscribe=Unsubscribe link TagSignature=Signatur af afsender EMailRecipient=Modtagers E-mail TagMailtoEmail=Modtager E-mail (herunder html "mailto:" link) -NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile. +NoEmailSentBadSenderOrRecipientEmail=E-mail blev ikke sendt. Ugyldig afsender eller modtager adresse. Kontroller bruger profilen. # Module Notifications Notifications=Adviséringer NotificationsAuto=Underretninger Auto. diff --git a/htdocs/langs/da_DK/main.lang b/htdocs/langs/da_DK/main.lang index e3f0cd0a967..98efad1705a 100644 --- a/htdocs/langs/da_DK/main.lang +++ b/htdocs/langs/da_DK/main.lang @@ -25,7 +25,7 @@ FormatHourShort=%H:%M FormatHourShortDuration=%H:%M FormatDateTextShort=%d %b %Y FormatDateText=%d %B %Y -FormatDateHourShort=%d/%m/%Y %H:%M +FormatDateHourShort=%d/%m/%Y %H:%M%p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M @@ -34,6 +34,7 @@ NoTemplateDefined=Ingen skabelon tilgængelig for denne e-mailtype AvailableVariables=Tilgængelige substitutionsvariabler NoTranslation=Ingen oversættelse Translation=Oversættelse +Translations=Oversættelser CurrentTimeZone=Tidszone PHP (server) EmptySearchString=Indtast ikke tomme søgekriterier EnterADateCriteria=Indtast et datokriterie @@ -82,7 +83,7 @@ SeeAlso=Se også %s SeeHere=Se her ClickHere=Klik her Here=Her -Apply=Ansøge +Apply=Anvend BackgroundColorByDefault=Standard baggrundsfarve FileRenamed=Filen blev omdøbt FileGenerated=Filen blev genereret @@ -173,7 +174,7 @@ ConfirmSendCardByMail=Vil du virkelig sende indholdet af dette kort med post til Delete=Slet Remove=Fjerne Resiliate=Deaktiver -Cancel=Afbestille +Cancel=Annuller Modify=Ret Edit=Redigere Validate=Valider @@ -205,6 +206,7 @@ Valid=Gyldig Approve=Godkende Disapprove=Afvis ReOpen=Genåbne +OpenVerb=Åben Upload=Upload ToLink=Link Select=Vælg @@ -222,8 +224,9 @@ UserGroup=Brugergruppe UserGroups=Brugergrupper NoUserGroupDefined=Ingen brugergruppe defineret Password=Adgangskode -PasswordRetype=Indtast din adgangskode igen +PasswordRetype=Gentag din adgangskode NoteSomeFeaturesAreDisabled=Bemærk, at mange funktioner/moduler er deaktiveret i denne demonstration. +YourUserFile=Din brugerfil Name=Navn NameSlashCompany=Navn/virksomhed Person=Person @@ -487,6 +490,7 @@ ActionsOnContact=Begivenheder for denne kontakt / adresse ActionsOnContract=Begivenheder for denne kontrakt ActionsOnMember=Begivenheder for denne medlem ActionsOnProduct=Begivenheder omkring dette produkt +ActionsOnAsset=Begivenheder for dette anlægsaktiv NActionsLate=%s sent ToDo=At gøre Completed=Afsluttet @@ -808,6 +812,7 @@ URLPhoto=Url af foto/logo SetLinkToAnotherThirdParty=Link til en anden tredjepart LinkTo=Link til LinkToProposal=Link til forslag +LinkToExpedition= Link til ekspeditionen LinkToOrder=Link til ordre LinkToInvoice=Link til faktura LinkToTemplateInvoice=Link til skabelonfaktura @@ -893,6 +898,9 @@ MassFilesArea=Område for filer opbygget af massehandlinger ShowTempMassFilesArea=Vis område af filer bygget af massehandlinger ConfirmMassDeletion=Bekræftelse på massesletning ConfirmMassDeletionQuestion=Er du sikker på, at du vil slette den/de valgt/valgte %s post(er)? +ConfirmMassClone=Bulk klon bekræftelse +ConfirmMassCloneQuestion=Vælg det projekt, der skal klones til +ConfirmMassCloneToOneProject=Klon for at projektere %s RelatedObjects=Relaterede objekter ClassifyBilled=Klassificere faktureret ClassifyUnbilled=Klassificer Ikke faktureret @@ -908,8 +916,8 @@ ExportFilteredList=Eksporter filtreret liste ExportList=Eksportliste ExportOptions=Eksport indstillinger IncludeDocsAlreadyExported=Inkluder dokumenter, der allerede er eksporteret -ExportOfPiecesAlreadyExportedIsEnable=Eksport af allerede eksporterede stykker er aktiveret -ExportOfPiecesAlreadyExportedIsDisable=Eksport af allerede eksporterede stykker er deaktiveret +ExportOfPiecesAlreadyExportedIsEnable=Dokumenter, der allerede er eksporteret, er synlige og vil blive eksporteret +ExportOfPiecesAlreadyExportedIsDisable=Dokumenter, der allerede er eksporteret, er skjulte og vil ikke blive eksporteret AllExportedMovementsWereRecordedAsExported=Alle eksporterede bevægelser blev registreret som eksporteret NotAllExportedMovementsCouldBeRecordedAsExported=Ikke alle eksporterede bevægelser kunne registreres som eksporteret Miscellaneous=Diverse @@ -926,6 +934,7 @@ DirectDownloadInternalLink=Privat downloadlink PrivateDownloadLinkDesc=Du skal være logget, og du skal have tilladelse til at se eller downloade filen Download=Hent DownloadDocument=Hent dokument +DownloadSignedDocument=Download underskrevet dokument ActualizeCurrency=Opdater valutakurs Fiscalyear=Regnskabsår ModuleBuilder=Modul og applikationsbygger @@ -1051,6 +1060,7 @@ SearchIntoContracts=Kontrakter SearchIntoCustomerShipments=Kundeforsendelser SearchIntoExpenseReports=Udgiftsrapporter SearchIntoLeaves=Forlade +SearchIntoKM=Videnbase SearchIntoTickets=Opgaver SearchIntoCustomerPayments=Kundebetalinger SearchIntoVendorPayments=Leverandørbetalinger @@ -1094,7 +1104,7 @@ ToApprove=At godkende GlobalOpenedElemView=Globalt overblik NoArticlesFoundForTheKeyword=Ingen artikler fundet for nøgleordet ' %s ' NoArticlesFoundForTheCategory=Der blev ikke fundet nogen artikel for denne kategori -ToAcceptRefuse=At acceptere | nægte +ToAcceptRefuse=Til godkendelse | afslag ContactDefault_agenda=Begivenhed ContactDefault_commande=Ordre ContactDefault_contrat=Kontrakt @@ -1122,6 +1132,7 @@ DeleteFileText=Vil du virkelig slette denne fil? ShowOtherLanguages=Vis andre sprog SwitchInEditModeToAddTranslation=Skift i redigeringsfunktion for at tilføje oversættelser til dette sprog NotUsedForThisCustomer=Ikke brugt til denne kunde +NotUsedForThisVendor=Ikke brugt til denne leverandør AmountMustBePositive=Beløbet skal være positivt ByStatus=Efter status InformationMessage=Information @@ -1142,15 +1153,29 @@ EventReminder=Påmindelse om begivenhed UpdateForAllLines=Opdatering til alle linjer OnHold=Afventer Civility=Høflighed -AffectTag=Påvirke tags +AffectTag=Tildel et tag +AffectUser=Tildel en bruger +SetSupervisor=Indstil vejlederen CreateExternalUser=Opret ekstern bruger -ConfirmAffectTag=Bulk Tags påvirker -ConfirmAffectTagQuestion=Er du sikker på, at du vil påvirke tags til den %s valgte post (er)? +ConfirmAffectTag=Bulk Tag Tildeling +ConfirmAffectUser=Massebrugertildeling +ProjectRole=Rolle tildelt på hvert projekt/mulighed +TasksRole=Rolle tildelt hver opgave (hvis brugt) +ConfirmSetSupervisor=Bulk supervisor sæt +ConfirmUpdatePrice=Vælg en stigning/reduktionspris +ConfirmAffectTagQuestion=Er du sikker på, at du vil tildele tags til de(n) valgte post(er) %s? +ConfirmAffectUserQuestion=Er du sikker på, at du vil tildele brugere til den eller de valgte %s-poster? +ConfirmSetSupervisorQuestion=Er du sikker på, at du vil indstille supervisor til de(n) valgte %s(e) post(er)? +ConfirmUpdatePriceQuestion=Er du sikker på, at du vil opdatere prisen på den eller de valgte post(er) %s? CategTypeNotFound=Ingen tag-type fundet for typen af poster +Rate=Sats +SupervisorNotFound=Supervisor ikke fundet CopiedToClipboard=Kopieret til udklipsholderen InformationOnLinkToContract=Dette beløb er kun summen af alle linjer i kontrakten. Der tages ikke hensyn til tid. ConfirmCancel=Er du sikker på at du vil annullere EmailMsgID=E-mail MsgID +EmailDate=E-mail dato +SetToStatus=Indstil til status %s SetToEnabled=Indstil til aktiveret SetToDisabled=Indstillet til deaktiveret ConfirmMassEnabling=masse muliggør bekræftelse @@ -1179,11 +1204,21 @@ 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 +CommercialsAffected=Salgsrepræsentanter tildelt +CommercialAffected=Salgsrepræsentant tildelt YourMessage=Din besked YourMessageHasBeenReceived=Din besked er modtaget. Vi svarer eller kontakter dig hurtigst muligt. UrlToCheck=Url for at tjekke Automation=Automatisering CreatedByEmailCollector=Oprettet af e-mail-samler CreatedByPublicPortal=Oprettet fra offentlig portal +UserAgent=Brugeragent +InternalUser=Intern bruger +ExternalUser=Ekstern bruger +NoSpecificContactAddress=Ingen specifik kontakt eller adresse +NoSpecificContactAddressBis=Denne fane er dedikeret til at tvinge specifikke kontakter eller adresser til det aktuelle objekt. Brug det kun, hvis du ønsker at definere en eller flere specifikke kontakter eller adresser for objektet, når oplysningerne om tredjeparten ikke er tilstrækkelige eller ikke nøjagtige. +HideOnVCard=Skjul %s +AddToContacts=Tilføj adresse til mine kontakter +LastAccess=Sidste adgang +UploadAnImageToSeeAPhotoHere=Upload et billede fra fanen %s for at se et billede her +LastPasswordChangeDate=Dato for sidste ændring af adgangskode diff --git a/htdocs/langs/da_DK/members.lang b/htdocs/langs/da_DK/members.lang index de0576c85b3..673cd548d92 100644 --- a/htdocs/langs/da_DK/members.lang +++ b/htdocs/langs/da_DK/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Et andet medlem (navn: %s, login: ErrorUserPermissionAllowsToLinksToItselfOnly=Af sikkerhedsmæssige grunde skal du have tilladelser til at redigere alle brugere for at kunne linke en medlem til en bruger, der ikke er din. SetLinkToUser=Link til en Dolibarr bruger SetLinkToThirdParty=Link til en Dolibarr tredjepart +MemberCountersArePublic=Tællerne for gyldige medlemmer er offentlige MembersCards=Generering af kort til medlemmer MembersList=Liste over medlemmer MembersListToValid=Liste over udkast til medlemmer (der skal bekræftes) @@ -34,7 +35,8 @@ DateSubscription=Dato for medlemskab DateEndSubscription=Slutdato for medlemskab EndSubscription=Slutning af medlemskab SubscriptionId=Bidrag -id -WithoutSubscription=Uden bidrag +WithoutSubscription=Uden medlemskab +WaitingSubscription=Medlemskab afventer MemberId=Medlems ID MemberRef=Medlems reference NewMember=Nyt medlem @@ -72,6 +74,12 @@ MemberTypeCanNotBeDeleted=Medlemstype kan ikke slettes NewSubscription=Nye bidrag NewSubscriptionDesc=Denne form giver dig mulighed for at registrere dit abonnement som nyt medlem af fundamentet. Hvis du ønsker at forny dit abonnement (hvis der allerede er medlem), bedes du kontakte fundament bord i stedet via e-mail %s. Subscription=Bidrag +AnyAmountWithAdvisedAmount=Enhver mængde efter eget valg, anbefales %s +AnyAmountWithoutAdvisedAmount=Ethvert beløb efter eget valg +CanEditAmountShort=Ethvert beløb +CanEditAmountShortForValues=anbefalet, ethvert beløb +MembershipDuration=Varighed +GetMembershipButtonLabel=Tilslutte Subscriptions=Bidrag SubscriptionLate=Sen SubscriptionNotReceived=Bidrag blev aldrig modtaget @@ -136,7 +144,7 @@ CardContent=Indholdet af din medlem kortet # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Vi vil gerne fortælle dig, at din anmodning om medlemskab blev modtaget.

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

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

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

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

ThisIsContentOfYourCard=Dette er en oversigt over de oplysninger, vi har om dig. Kontakt os, hvis noget er forkert. DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Meddelelse om den e-mail, der er modtaget i tilfælde af automatisk registrering af en gæst @@ -199,8 +207,10 @@ NbOfSubscriptions=Antal bidrag AmountOfSubscriptions=Beløb opkrævet fra bidrag TurnoverOrBudget=Omsætning (for et selskab) eller Budget (en fond) DefaultAmount=Standardbeløb for bidrag -CanEditAmount=Besøgende kan vælge/redigere beløbet for sit bidrag -MEMBER_NEWFORM_PAYONLINE=Hop på integreret online betaling side +CanEditAmount=Abonnementsbeløbet er gratis +CanEditAmountDetail=Besøgende kan vælge/redigere beløbet for sit bidrag uanset medlemstype +AmountIsLowerToMinimumNotice=på et samlet forfald af%s +MEMBER_NEWFORM_PAYONLINE=Efter online-registreringen skifter du automatisk på onlinebetalingssiden ByProperties=Af natur MembersStatisticsByProperties=Medlemsstatistik af natur VATToUseForSubscriptions=Momssats, der skal bruges til bidrag @@ -221,3 +231,4 @@ CreateDolibarrLoginDesc=Oprettelsen af et brugerlogin for medlemmer giver dem mu CreateDolibarrThirdPartyDesc=En tredjepart er den juridiske enhed, der vil blive brugt på fakturaen, hvis du beslutter dig for at generere faktura for hvert bidrag. Du vil kunne oprette det senere under registreringen af bidraget. MemberFirstname=Medlemmets fornavn MemberLastname=Medlemmets efternavn +MemberCodeDesc=Medlemskode, unik for alle medlemmer diff --git a/htdocs/langs/da_DK/mrp.lang b/htdocs/langs/da_DK/mrp.lang index 7c7d056c755..22b926c5ef5 100644 --- a/htdocs/langs/da_DK/mrp.lang +++ b/htdocs/langs/da_DK/mrp.lang @@ -11,8 +11,8 @@ Bom=Styklister BillOfMaterials=Styklister BillOfMaterialsLines=Stykliste linjer BOMsSetup=Opsætning af modul Styklister -ListOfBOMs=Liste over styklister -ListOfManufacturingOrders=Liste over produktionsordrer +ListOfBOMs=Styklister - stykliste +ListOfManufacturingOrders=Fremstillingsordrer NewBOM=Ny stykliste ProductBOMHelp=Produkt, der skal oprettes (eller skilles ad) med denne stykliste.
Bemærk: Produkter med egenskaben 'Produktets art' = 'Råmateriale' er ikke synlige på denne liste. BOMsNumberingModules=BOM-nummereringsskabeloner @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Er du sikker på, at du vil klone styklisten %s? ConfirmCloneMo=Er du sikker på, at du vil klone produktionsordren %s? ManufacturingEfficiency=Fremstillingseffektivitet ConsumptionEfficiency=Forbrugseffektivitet +Consumption=Forbrug ValueOfMeansLoss=Værdi på 0,95 betyder et gennemsnit på 5%% tab under fremstillingen eller demonteringen ValueOfMeansLossForProductProduced=Værdi på 0,95 betyder et gennemsnit på 5%% tab af produceret produkt DeleteBillOfMaterials=Slet regning af materialer @@ -82,6 +83,7 @@ ProductsToProduce=Produkter til at producere UnitCost=Enhedspris TotalCost=Udgifter i alt BOMTotalCost=Omkostningerne til at fremstille denne stykliste baseret på prisen for hver mængde og produkt, der skal forbruges (brug Prisen, hvis defineret, ellers Gennemsnit Vægtet pris, hvis defineret, ellers den bedste købspris) +BOMTotalCostService=Hvis modulet "Workstation" er aktiveret, og en arbejdsstation er defineret som standard på linjen, så er beregningen "mængde (omregnet til timer) x arbejdsstation ahr", ellers "mængde (omregnet til timer) x kostpris for ydelsen" GoOnTabProductionToProduceFirst=Du skal først have startet produktionen for at lukke en produktionsordre (se fanen '%s'). Men du kan annullere det. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Et sæt kan ikke bruges i en stykliste eller en produktionsordre Workstation=Arbejdsstation @@ -100,6 +102,7 @@ NbOperatorsRequired=Antal krævede operatører THMOperatorEstimated=Anslået operatør THM THMMachineEstimated=Anslået maskine THM WorkstationType=Arbejdsstationstype +DefaultWorkstation=Standard arbejdsstation Human=Person Machine=Maskine HumanMachine=Person / maskine @@ -112,3 +115,7 @@ MOAndLines=Fremstilling af ordrer og linjer MoChildGenerate=Generer Child Mo ParentMo=MO Forælder MOChild=MO barn +BomCantAddChildBom=Nomenklaturen %s er allerede til stede i træet, der fører til nomenklaturen %s +BOMNetNeeds = Stykliste nettobehov +BOMProductsList=BOMs produkter +BOMServicesList=BOMs ydelser diff --git a/htdocs/langs/da_DK/multicurrency.lang b/htdocs/langs/da_DK/multicurrency.lang index bfb8a0d8064..062e6c649cf 100644 --- a/htdocs/langs/da_DK/multicurrency.lang +++ b/htdocs/langs/da_DK/multicurrency.lang @@ -20,3 +20,19 @@ MulticurrencyPaymentAmount=Betalingsbeløb, oprindelig valuta AmountToOthercurrency=Beløb til (i valuta for modtagende konto) CurrencyRateSyncSucceed=Valutakurssynkronisering udført med succes MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=Brug dokumentets valuta til onlinebetalinger +TabTitleMulticurrencyRate=Prisliste +ListCurrencyRate=Liste over valutakurser for valutaen +CreateRate=Opret en sats +FormCreateRate=Bedøm oprettelse +FormUpdateRate=Satsændring +successRateCreate=Kurs for valuta %s er blevet føjet til databasen +ConfirmDeleteLineRate=Er du sikker på, at du vil fjerne kursen %s for valuta %s på %s-datoen? +DeleteLineRate=Clear rate +successRateDelete=Sats slettet +errorRateDelete=Fejl ved sletning af satsen +successUpdateRate=Ændring foretaget +ErrorUpdateRate=Fejl ved ændring af satsen +Codemulticurrency=valutakode +UpdateRate=ændre satsen +CancelUpdate=annuller +NoEmptyRate=Prisfeltet må ikke være tomt diff --git a/htdocs/langs/da_DK/orders.lang b/htdocs/langs/da_DK/orders.lang index f726c1b6bab..b75a3272702 100644 --- a/htdocs/langs/da_DK/orders.lang +++ b/htdocs/langs/da_DK/orders.lang @@ -96,6 +96,10 @@ OrdersStatisticsSuppliers=Indkøbsordrestatistik NumberOfOrdersByMonth=Antallet af ordrer efter måned AmountOfOrdersByMonthHT=Mængden af ordrer efter måned (ekskl. Moms) ListOfOrders=Liste af ordrer +ListOrderLigne=Ordrerækker +productobuy=Kun produkter til køb +productonly=Kun produkter +disablelinefree=Ingen linjer fri CloseOrder=Luk for ConfirmCloseOrder=Er du sikker på, at du vil indstille denne ordre til levering? Når en ordre er leveret, kan den indstilles til fakturering. ConfirmDeleteOrder=Er du sikker på, at du vil slette denne ordre? @@ -131,6 +135,7 @@ SupplierOrderClassifiedBilled=Indkøbsordre %s er faktureret OtherOrders=Andre ordrer SupplierOrderValidatedAndApproved=Leverandørordre er valideret og godkendt: %s SupplierOrderValidated=Leverandørordre er valideret: %s +OrderShowDetail=Vis ordredetaljer ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Repræsentative opfølgning salgsordre TypeContact_commande_internal_SHIPPING=Repræsentant opfølgning shipping @@ -199,3 +204,5 @@ StatusSupplierOrderApproved=Godkendt StatusSupplierOrderRefused=Afvist StatusSupplierOrderReceivedPartially=Delvist modtaget StatusSupplierOrderReceivedAll=Alle varer modtaget +NeedAtLeastOneInvoice = Der skal være mindst én faktura +LineAlreadyDispatched = Ordrelinjen er allerede modtaget. diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang index b678cda3b54..a272beee309 100644 --- a/htdocs/langs/da_DK/other.lang +++ b/htdocs/langs/da_DK/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Indkøbsordre godkendt Notify_ORDER_SUPPLIER_REFUSE=Indkøbsordre afvist Notify_PROPAL_VALIDATE=Tilbud godkendt Notify_PROPAL_CLOSE_SIGNED=Kundeforslag er lukket underskrevet +Notify_PROPAL_CLOSE_SIGNED_WEB=Kundeforslag lukket underskrevet på portalsiden Notify_PROPAL_CLOSE_REFUSED=Kundeforslag afsluttet afslået +Notify_PROPAL_CLOSE_REFUSED_WEB=Kundeforslag lukket afvist på portalsiden Notify_PROPAL_SENTBYMAIL=Tilbud sendt med posten Notify_WITHDRAW_TRANSMIT=Transmission tilbagetrækning Notify_WITHDRAW_CREDIT=Credit tilbagetrækning @@ -177,10 +179,11 @@ SizeUnitdm=dm SizeUnitcm=cm SizeUnitmm=mm SizeUnitinch=tomme -SizeUnitfoot=mund +SizeUnitfoot=fod SizeUnitpoint=punkt BugTracker=Bug tracker SendNewPasswordDesc=Denne formular giver dig mulighed for at anmode om en ny adgangskode. Det vil blive sendt til din email-adresse.
Ændring vil træde i kraft, når du klikker på bekræftelseslinket i emailen.
Kontroller din indbakke. +EnterNewPasswordHere=Indtast din nye adgangskode her BackToLoginPage=Tilbage til login-siden AuthenticationDoesNotAllowSendNewPassword=Authentication mode er %s.
I denne tilstand, Dolibarr ikke kan vide eller ændre din adgangskode.
Kontakt din systemadministrator, hvis du ønsker at ændre din adgangskode. EnableGDLibraryDesc=Installer eller aktiver GD bibliotek på din PHP installation for at bruge denne indstilling. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Fakturaen %s er godkendt. EMailTextInvoicePayed=Faktura %s er blevet betalt. EMailTextProposalValidated=Tilbud %s er godkendt. EMailTextProposalClosedSigned=Tilbud %s er afsluttet og underskrevet. +EMailTextProposalClosedSignedWeb=Forslag %s er blevet lukket underskrevet på portalsiden. +EMailTextProposalClosedRefused=Forslag %s er blevet lukket afvist. +EMailTextProposalClosedRefusedWeb=Forslag %s er blevet lukket afvise på portalsiden. EMailTextOrderValidated=Bestillingen %s er godkendt. EMailTextOrderApproved=Ordren %s er godkendt. EMailTextOrderValidatedBy=Orden %s er indskrevet af%s. @@ -257,7 +263,7 @@ Chart=Diagram PassEncoding=Kodeord for kodeord PermissionsAdd=Tilladelser tilføjet PermissionsDelete=Tilladelser fjernet -YourPasswordMustHaveAtLeastXChars=Dit kodeord skal have mindst %s tegn +YourPasswordMustHaveAtLeastXChars=Dit kodeord skal have mindst %s tegn PasswordNeedAtLeastXUpperCaseChars=Adgangskoden skal have mindst %s store bogstaver PasswordNeedAtLeastXDigitChars=Adgangskoden skal have mindst %s numeriske tegn PasswordNeedAtLeastXSpecialChars=Adgangskoden skal mindst have %s specielle tegn @@ -311,10 +317,10 @@ ExternalSiteURL=Ekstern hjemmeside-URL for HTML iframe-indhold ExternalSiteModuleNotComplete=Modul ekstern hjemmeside blev ikke konfigureret korrekt. ExampleMyMenuEntry=Min menuindgang -# FTP +# ftp FTPClientSetup=Opsætning af FTP klientmodul -NewFTPClient=Ny opsætning af FTP forbindelse -FTPArea=FTP område +NewFTPClient=Ny opsætning af FTP/SFTP-forbindelse +FTPArea=FTP/SFTP-område FTPAreaDesc=Denne skærm viser opsætning af en FTP-server. SetupOfFTPClientModuleNotComplete=Opsætningen af FTP-klientmodulet ser ud til at være ufuldstændig FTPFeatureNotSupportedByYourPHP=Din PHP understøtter ikke FTP/FTPS/SFTP-funktioner @@ -325,3 +331,9 @@ FTPFailedToRemoveDir=Det lykkedes ikke at fjerne mappen %s: Kontroller re FTPPassiveMode=Passiv tilstand ChooseAFTPEntryIntoMenu=Vælg en FTP server i menuen... FailedToGetFile=Kunne ikke hente filer %s +ErrorFTPNodisconnect=Fejl ved frakobling af FTP/SFTP-server +FileWasUpload=Filen %s blev uploadet +FTPFailedToUploadFile=Kunne ikke uploade filen %s . +AddFolder=Opret mappe +FileWasCreateFolder=Mappe %s er blevet oprettet +FTPFailedToCreateFolder=Kunne ikke oprette mappen %s . diff --git a/htdocs/langs/da_DK/partnership.lang b/htdocs/langs/da_DK/partnership.lang index fef391aa094..a45f85923a4 100644 --- a/htdocs/langs/da_DK/partnership.lang +++ b/htdocs/langs/da_DK/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Partnerskabsledelse PartnershipDescription=Ledelse af modulpartnerskab PartnershipDescriptionLong= Ledelse af modulpartnerskab Partnership=Partnerskab +Partnerships=Partnerskaber AddPartnership=Tilføj partnerskab CancelPartnershipForExpiredMembers=Partnerskab: Annuller partnerskab med medlemmer med udløbne abonnementer PartnershipCheckBacklink=Partnerskab: Tjek henvisende backlink @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnerskab: Tjek henvisende backlink # Menu # NewPartnership=Nyt partnerskab +NewPartnershipbyWeb= Dit partnerskab blev tilføjet med succes. ListOfPartnerships=Liste over partnerskab # diff --git a/htdocs/langs/da_DK/productbatch.lang b/htdocs/langs/da_DK/productbatch.lang index b896998f58d..abc393a2f20 100644 --- a/htdocs/langs/da_DK/productbatch.lang +++ b/htdocs/langs/da_DK/productbatch.lang @@ -17,6 +17,7 @@ printBatch=Parti serie / Serienr: %s printEatby=Pluk: %s printSellby=Solgt af: %s printQty=Antal: %d +printPlannedWarehouse=Lager: %s AddDispatchBatchLine=Tilføj en linje for lager holdbarhed WhenProductBatchModuleOnOptionAreForced=Når modulet PartiSerie/SerieNr. er aktiveret, tvunget automatisk lagernedgang til at 'Reducere rigtige lagre når forsendelse bekræftelse' og automatisk stigningstilstand er tvunget til at "Øge ægte lagre ved manuel afsendelse til lager" og kan ikke redigeres. Andre muligheder kan defineres som ønsket. ProductDoesNotUseBatchSerial=Dette produkt bruger ikke parti Serie / serienummer @@ -43,3 +44,4 @@ HideLots=Skjul masser OutOfOrder=Virker ikke InWorkingOrder=I funktionsdygtig stand ToReplace=Erstatte +CantMoveNonExistantSerial=Fejl. Du beder om et træk på en plade til en serial, der ikke eksisterer længere. Det kan være, du tager den samme serie på samme lager flere gange i samme forsendelse, eller den blev brugt af en anden forsendelse. Fjern denne forsendelse og klargør en anden. diff --git a/htdocs/langs/da_DK/products.lang b/htdocs/langs/da_DK/products.lang index 1d37e383ac5..3ac0719ffd6 100644 --- a/htdocs/langs/da_DK/products.lang +++ b/htdocs/langs/da_DK/products.lang @@ -151,7 +151,7 @@ PredefinedProductsToPurchase=Predefineret produkt til køb PredefinedServicesToPurchase=Predefinerede tjenester til køb PredefinedProductsAndServicesToPurchase=Predefinerede produkter / tjenester til køb NotPredefinedProducts=Ikke foruddefinerede produkter / tjenester -GenerateThumb=Generer tommelfinger +GenerateThumb=Generer miniature ServiceNb=Service # %s ListProductServiceByPopularity=Liste over varer/ydelser efter popularitet ListProductByPopularity=Liste over varer efter popularitet @@ -202,7 +202,7 @@ liter=liter l=L unitP=Stk. unitSET=Sæt -unitS=Anden +unitS=Sekund unitH=Time unitD=Dag unitG=Gram @@ -345,7 +345,7 @@ PossibleValues=Mulige værdier GoOnMenuToCreateVairants=Gå på menu %s - %s for at forberede attributvarianter (som farver, størrelse, ...) UseProductFournDesc=Tilføj en funktion for at definere produktbeskrivelsen defineret af leverandørerne (for hver leverandørreference) ud over beskrivelsen for kunder ProductSupplierDescription=Leverandørbeskrivelse for produktet -UseProductSupplierPackaging=Brug emballage til leverandørpriser (genberegn mængder i henhold til emballage, der er angivet på leverandørpris, når du tilføjer / opdaterer linje i leverandørdokumenter) +UseProductSupplierPackaging=Brug emballage til priser afrundet til multipla for indkøbspriser (genberegn mængder i henhold til multipla angivet på indkøbspriser, når du tilføjer/opdaterer linje i et leverandørdokument) PackagingForThisProduct=Emballage PackagingForThisProductDesc=Du vil automatisk købe et antal af denne mængde. QtyRecalculatedWithPackaging=Mængden af linjen blev beregnet om efter leverandøremballage @@ -399,7 +399,7 @@ ActionAvailableOnVariantProductOnly=Handling kun tilgængelig på variant af pro ProductsPricePerCustomer=Produktpriser pr. Kunde ProductSupplierExtraFields=Yderligere attributter (leverandørpriser) DeleteLinkedProduct=Slet det underordnede produkt, der er knyttet til kombinationen -AmountUsedToUpdateWAP=Beløb, der skal bruges til at opdatere den vejede gennemsnitlige pris +AmountUsedToUpdateWAP=Enhedsbeløb, der skal bruges til at opdatere den vægtede gennemsnitspris PMPValue=Værdi PMPValueShort=WAP mandatoryperiod=Obligatoriske perioder @@ -416,6 +416,7 @@ ProductsMergeSuccess=Produkter er blevet slået sammen ErrorsProductsMerge=Fejl i produkter flettes sammen SwitchOnSaleStatus=Slå salgsstatus til SwitchOnPurchaseStatus=Slå købsstatus til +UpdatePrice=Forøg/sænk kundeprisen StockMouvementExtraFields= Ekstra felter (aktiebevægelse) InventoryExtraFields= Ekstra felter (beholdning) ScanOrTypeOrCopyPasteYourBarCodes=Scan eller skriv eller kopier/indsæt dine stregkoder @@ -427,3 +428,4 @@ RealValuation=Virkelig værdiansættelse ConfirmEditExtrafield = Vælg det ekstrafelt, du vil ændre ConfirmEditExtrafieldQuestion = Er du sikker på, at du vil ændre dette ekstrafelt? ModifyValueExtrafields = Ændre værdien af et ekstrafelt +OrProductsWithCategories=Eller produkter med tags/kategorier diff --git a/htdocs/langs/da_DK/projects.lang b/htdocs/langs/da_DK/projects.lang index d4e4a57caa3..8fd681ffc10 100644 --- a/htdocs/langs/da_DK/projects.lang +++ b/htdocs/langs/da_DK/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Dette synspunkt præsenterer alle projekter og opgaver, som du f TasksDesc=Dette synspunkt præsenterer alle projekter og opgaver (din brugertilladelser give dig tilladelse til at se alt). AllTaskVisibleButEditIfYouAreAssigned=Alle opgaver for kvalificerede projekter er synlige, men du kan kun indtaste tid til opgave tildelt til den valgte bruger. Tildel opgave, hvis du skal indtaste tid på den. OnlyYourTaskAreVisible=Kun opgaver, der er tildelt dig, er synlige. Hvis du har brug for at indtaste tid på en opgave, og hvis opgaven ikke er synlig her, skal du tildele opgaven til dig selv. +ImportDatasetProjects=Projekter eller muligheder ImportDatasetTasks=Opgaver af projekter ProjectCategories=Projektetiketter / kategorier NewProject=Nyt projekt @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Mængde af muligheder for åbne projekter e OpportunitiesStatusForProjects=Mængde af muligheder for projekter efter status ShowProject=Vis projekt ShowTask=Vis opgave +SetThirdParty=Indstil tredjepart SetProject=Indstil projekt +OutOfProject=Ude af projekt NoProject=Intet projekt defineret NbOfProjects=Antal projekter NbOfTasks=Antal opgaver @@ -122,7 +125,8 @@ ValidateProject=Validér projet ConfirmValidateProject=Er du sikker på, at du vil bekræfte dette projekt? CloseAProject=Luk projekt ConfirmCloseAProject=Er du sikker på at du vil lukke dette projekt? -AlsoCloseAProject=Luk også projektet (hold det åbent, hvis du stadig skal følge produktionsopgaverne på det) +AlsoCloseAProject=Luk også projekt +AlsoCloseAProjectTooltip=Hold den åben, hvis du stadig skal følge produktionsopgaver på den ReOpenAProject=Åbn projekt ConfirmReOpenAProject=Er du sikker på, at du vil genåbne dette projekt? ProjectContact=Kontakter af projektet @@ -165,7 +169,7 @@ OpportunityProbability=Mulighed sandsynlighed OpportunityProbabilityShort=Sandsynlighed OpportunityAmount=Mulighedsbeløb OpportunityAmountShort=Mulighed beløb -OpportunityWeightedAmount=Vægtet mængde af mulighed +OpportunityWeightedAmount=Mængde af mulighed, vægtet efter sandsynlighed OpportunityWeightedAmountShort=Vægtet mængde af mulighed OpportunityAmountAverageShort=Gennemsnitligt muligheds beløb OpportunityAmountWeigthedShort=Beregnet muligheds beløb @@ -238,7 +242,7 @@ OppStatusPENDING=Afventer OppStatusWON=Vundet OppStatusLOST=Tabt Budget=Budget -AllowToLinkFromOtherCompany=Lad det link projekt fra andre firma

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

Understøttede værdier:
- Hold tom: Kan linke elementer til ethvert project i den samme virksomhed (standard)
- "alle": Kan linke elementer til alle projekter, selv projekter fra ander virksomheder
- En liste over tredjeparts-id'er adskilt af kommaer: kan linke elementer til alle projekter fra disse tredjeparter (eksempel: 123,4795,53)
LatestProjects=Seneste %s projekter LatestModifiedProjects=Seneste %s ændrede projekter OtherFilteredTasks=Andre filtrerede opgaver @@ -255,11 +259,12 @@ RecordsClosed=%s projekt (er) lukket SendProjectRef=Informationsprojekt %s ModuleSalaryToDefineHourlyRateMustBeEnabled=Modul 'lønninger' skal være aktiveret for at definere medarbejderens timepris for at få brugt tid valideret NewTaskRefSuggested=Task ref allerede brugt, en ny task ref kræves +NumberOfTasksCloned=%s opgave(r) klonet TimeSpentInvoiced=Faktureret tid TimeSpentForIntervention=Tid brugt TimeSpentForInvoice=Tid brugt OneLinePerUser=En linje pr. Bruger -ServiceToUseOnLines=Service til brug på linjer +ServiceToUseOnLines=Service til brug på linjer som standard InvoiceGeneratedFromTimeSpent=Faktura %s er genereret fra tidsforbrug til projektet InterventionGeneratedFromTimeSpent=Intervention %s er genereret fra tid brugt på projektet ProjectBillTimeDescription=Tjek om du indtaster timeseddel på opgaver projekt og du planlægger at generere faktura (er) fra timeseddel til regningen kunden af projektet (ikke kontrollere, hvis du planlægger at oprette faktura, der ikke er baseret på indgåede timesedler). Bemærk: For at generere faktura, gå på fanen 'Tidsforbruget' af projektet og vælg linjer til at omfatte. @@ -282,7 +287,7 @@ ProfitIsCalculatedWith=Fortjeneste beregnes ved hjælp af AddPersonToTask=Føj også til opgaver UsageOrganizeEvent=Anvendelse: Begivenhedsorganisation PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Klassificer projektet som lukket, når alle dets opgaver er afsluttet (100%% fremskridt) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Bemærk: eksisterende projekter med alle opgaver ved 100%%-fremskridt påvirkes ikke: du bliver nødt til at lukke dem manuelt. Denne mulighed påvirker kun åbne projekter. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Bemærk: eksisterende projekter med alle opgaver, der allerede er indstillet til en fremdrift på 100%%, vil ikke blive påvirket: du bliver nødt til at lukke dem manuelt. Denne mulighed påvirker kun åbne projekter. SelectLinesOfTimeSpentToInvoice=Vælg tidslinjer, der ikke er faktureret, og masseforanstaltning "Generer faktura" for at fakturere dem ProjectTasksWithoutTimeSpent=Projektopgaver uden brugt tid FormForNewLeadDesc=Tak for at udfylde nedenstående formular for at kontakte os. Du kan også sende os en e -mail direkte til %s . @@ -294,3 +299,4 @@ EnablePublicLeadForm=Aktiver den offentlige kontaktformular NewLeadbyWeb=Din besked eller anmodning er blevet optaget. Vi svarer eller kontakter dig snarest. NewLeadForm=Ny kontaktformular LeadFromPublicForm=Online lead fra offentlig form +ExportAccountingReportButtonLabel=Få rapport diff --git a/htdocs/langs/da_DK/propal.lang b/htdocs/langs/da_DK/propal.lang index a9acc20ba3f..0905858b5d4 100644 --- a/htdocs/langs/da_DK/propal.lang +++ b/htdocs/langs/da_DK/propal.lang @@ -65,49 +65,54 @@ AvailabilityPeriod=Tilgængelighed forsinkelse SetAvailability=Indstil tilgængelighed forsinkelse AfterOrder=efter at OtherProposals=Andre forslag + ##### Availability ##### AvailabilityTypeAV_NOW=Øjeblikkelig AvailabilityTypeAV_1W=En uge AvailabilityTypeAV_2W=2 uger AvailabilityTypeAV_3W=3 uger AvailabilityTypeAV_1M=1 måned -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Repræsentant for opfølgning af tilbud TypeContact_propal_external_BILLING=Kundefaktura kontakt TypeContact_propal_external_CUSTOMER=Kundekontakt for opfølgning af tilbud TypeContact_propal_external_SHIPPING=Kundekontakt for levering + # Document models -DocModelAzurDescription=En komplet forslagsmodel (gammel implementering af Cyan-skabelon) -DocModelCyanDescription=En komplet forslagsmodel -DefaultModelPropalCreate=Oprettelse af skabelon -DefaultModelPropalToBill=Skabelon, der skal benyttes, når et tilbud lukkes (med fakturering) -DefaultModelPropalClosed=Skabelon, der skal benyttes, når et tilbud lukkes (uden fakturering) -ProposalCustomerSignature=Skriftlig accept, firmastempel, dato og underskrift -ProposalsStatisticsSuppliers=Forhandler forslagsstatistik -CaseFollowedBy=Sag efterfulgt af -SignedOnly=Kun underskrevet -NoSign=Sæt ikke underskrevet -NoSigned=sæt ikke underskrevet CantBeNoSign=kan ikke indstilles ikke underskrevet +CaseFollowedBy=Sag efterfulgt af ConfirmMassNoSignature=Bulk Ikke underskrevet bekræftelse ConfirmMassNoSignatureQuestion=Er du sikker på, at du vil indstille ikke-signerede de valgte poster? -IsNotADraft=er ikke et udkast -PassedInOpenStatus=er blevet valideret -Sign=Underskrift -Signed=underskrevet -ConfirmMassValidation=Bulk Valider bekræftelse ConfirmMassSignature=Bulk signatur bekræftelse -ConfirmMassValidationQuestion=Er du sikker på, at du vil validere de valgte poster? ConfirmMassSignatureQuestion=Er du sikker på, at du vil underskrive de valgte poster? -IdProposal=Forslags-id +ConfirmMassValidation=Bulk Valider bekræftelse +ConfirmMassValidationQuestion=Er du sikker på, at du vil validere de valgte poster? +ConfirmRefusePropal=Er du sikker på, at du vil afvise dette kommercielle tilbud? +ContractSigned=Kontrakt underskrevet +DefaultModelPropalClosed=Skabelon, der skal benyttes, når et tilbud lukkes (uden fakturering) +DefaultModelPropalCreate=Oprettelse af skabelon +DefaultModelPropalToBill=Skabelon, der skal benyttes, når et tilbud lukkes (med fakturering) +DocModelAzurDescription=En komplet forslagsmodel (gammel implementering af Cyan-skabelon) +DocModelCyanDescription=En komplet forslagsmodel +FichinterSigned=Intervention underskrevet IdProduct=Produkt-id +IdProposal=Forslags-id +IsNotADraft=er ikke et udkast LineBuyPriceHT=Købspris Beløb fratrukket skat for linje -SignPropal=Accepter forslaget +NoSign=Afvis +NoSigned=sæt ikke underskrevet +PassedInOpenStatus=er blevet valideret +PropalAlreadyRefused=Tilbud blev allerede afvist +PropalAlreadySigned=Forslaget er allerede godkendt +PropalRefused=Tilbud blev afvist +PropalSigned=Forslaget accepteret +ProposalCustomerSignature=Skriftlig accept, firmastempel, dato og underskrift +ProposalsStatisticsSuppliers=Forhandler forslagsstatistik RefusePropal=Afvis tilbud Sign=Underskrift -NoSign=Sæt ikke underskrevet -PropalAlreadySigned=Forslaget er allerede godkendt -PropalAlreadyRefused=Tilbud blev allerede afvist -PropalSigned=Forslaget accepteret -PropalRefused=Tilbud blev afvist -ConfirmRefusePropal=Er du sikker på, at du vil afvise dette kommercielle tilbud? +SignContract=Underskriv kontrakt +SignFichinter=Skilteintervention +SignPropal=Accepter forslaget +Signed=underskrevet +SignedOnly=Kun underskrevet diff --git a/htdocs/langs/da_DK/receptions.lang b/htdocs/langs/da_DK/receptions.lang index 75494647560..7890fcdf8de 100644 --- a/htdocs/langs/da_DK/receptions.lang +++ b/htdocs/langs/da_DK/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=Udkast til StatusReceptionValidatedShort=bekræftet StatusReceptionProcessedShort=Behandlet ReceptionSheet=Modtagelse ark +ValidateReception=Bekræft modtagelse ConfirmDeleteReception=Er du sikker på, at du vil slette denne modtagelse? ConfirmValidateReception=Er du sikker på, at du vil validere denne modtagelse med reference %s ? ConfirmCancelReception=Er du sikker på, at du vil annullere denne modtagelse? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Nummerering modul til receptioner ReceptionsReceiptModel=Dokumentskabeloner til modtagelser NoMorePredefinedProductToDispatch=Ikke flere foruddefinerede produkter, der skal sendes ReceptionExist=Der findes en reception -ByingPrice=Købs pris ReceptionBackToDraftInDolibarr=Modtagelse %s tilbage til udkast ReceptionClassifyClosedInDolibarr=Reception %s klassificeret Lukket ReceptionUnClassifyCloseddInDolibarr=Receptionen %s genåbner diff --git a/htdocs/langs/da_DK/recruitment.lang b/htdocs/langs/da_DK/recruitment.lang index ffcdd40040f..1466b14a6eb 100644 --- a/htdocs/langs/da_DK/recruitment.lang +++ b/htdocs/langs/da_DK/recruitment.lang @@ -57,15 +57,16 @@ EmailRecruiter=E-mail-rekrutterer ToUseAGenericEmail=At bruge en generisk e-mail. Hvis det ikke er defineret, vil e-mailen til den ansvarlige for rekrutteringen blive brugt NewCandidature=Ny applikation ListOfCandidatures=Liste over applikationer -RequestedRemuneration=Anmodet vederlag -ProposedRemuneration=Foreslået vederlag +Remuneration=Løn +RequestedRemuneration=Ønsket løn +ProposedRemuneration=Foreslået løn ContractProposed=Foreslået kontrakt ContractSigned=Kontrakt underskrevet ContractRefused=Kontrakten blev afvist RecruitmentCandidature=Ansøgning JobPositions=Jobstillinger RecruitmentCandidatures=Ansøgninger -InterviewToDo=Interview at gøre +InterviewToDo=Kontakter at følge AnswerCandidature=Ansøgning svar YourCandidature=Din ansøgning YourCandidatureAnswerMessage=Tak for din ansøgning.
... diff --git a/htdocs/langs/da_DK/salaries.lang b/htdocs/langs/da_DK/salaries.lang index d820149ac05..a3bd48bd01c 100644 --- a/htdocs/langs/da_DK/salaries.lang +++ b/htdocs/langs/da_DK/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Regnskabskonto bruges til tredjepart -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Den dedikerede regnskabskonto, der er defineret på brugerkort, vil kun blive anvendt til underledere. Denne vil blive brugt til General Ledger og som standardværdi for Subledger regnskab, hvis dedikeret brugerregnskabskonto på bruger ikke er defineret. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Konto (fra kontoplanen) bruges som standard til "bruger" tredjeparter +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Den dedikerede konto, der er defineret på brugerkortet, vil kun blive brugt til underreskontering. Denne vil blive brugt til hovedbog og som standardværdi for underreskontering, hvis dedikeret brugerkonti på bruger ikke er defineret. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Regnskabskonto som standard for lønudbetalinger CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Lad som standard tomt være indstillingen "Opret automatisk en samlet betaling", når du opretter en løn Salary=Løn @@ -24,3 +24,4 @@ SalariesStatistics=Lønstatistik SalariesAndPayments=Løn og betalinger ConfirmDeleteSalaryPayment=Vil du slette denne lønudbetaling? FillFieldFirst=Udfyld medarbejderfeltet først +UpdateAmountWithLastSalary=Sæt beløb med sidste løn diff --git a/htdocs/langs/da_DK/sendings.lang b/htdocs/langs/da_DK/sendings.lang index d637fb62d51..27c589a6fb1 100644 --- a/htdocs/langs/da_DK/sendings.lang +++ b/htdocs/langs/da_DK/sendings.lang @@ -1,45 +1,45 @@ # Dolibarr language file - Source file is en_US - sendings RefSending=Ref. afsendelse -Sending=Sender -Sendings=Sendings +Sending=Forsendelse +Sendings=Forsendelser AllSendings=Alle forsendelser -Shipment=Sender +Shipment=Forsendelse Shipments=Forsendelser ShowSending=Vis forsendelser Receivings=Leverings kvitteringer -SendingsArea=Sendings område -ListOfSendings=Liste over sendings -SendingMethod=Afsendelse metode +SendingsArea=Forsendelses område +ListOfSendings=Liste over forsendelser +SendingMethod=Afsendelses metode LastSendings=Seneste %s forsendelser -StatisticsOfSendings=Statistik over sendings -NbOfSendings=Antal sendings +StatisticsOfSendings=Statistik over forsendelser +NbOfSendings=Antal forsendelser NumberOfShipmentsByMonth=Antal forsendelser pr. Måned SendingCard=Forsendelse kort -NewSending=Ny afsendelse -CreateShipment=Opret afsendelse +NewSending=Ny forsendelse +CreateShipment=Opret forsendelse QtyShipped=Antal afsendt -QtyShippedShort=Antal skibe. +QtyShippedShort=Antal afsendt QtyPreparedOrShipped=Antal forberedt eller afsendt QtyToShip=Antal til afsendelse QtyToReceive=Antal at modtage QtyReceived=Antal modtagne QtyInOtherShipments=Antal i andre forsendelser KeepToShip=Bliv ved at sende -KeepToShipShort=Forblive -OtherSendingsForSameOrder=Andre sendings for denne ordre +KeepToShipShort=Tilbage +OtherSendingsForSameOrder=Andre forsendelser i denne ordre SendingsAndReceivingForSameOrder=Forsendelser og kvitteringer for denne ordre -SendingsToValidate=Henvist til bekræfte -StatusSendingCanceled=Aflyst -StatusSendingCanceledShort=Aflyst +SendingsToValidate=Forsendelser til bekræftelse +StatusSendingCanceled=Annulleret +StatusSendingCanceledShort=Annulleret StatusSendingDraft=Udkast StatusSendingValidated=Bekræftet (varer til afsendelse eller allerede afsendt) -StatusSendingProcessed=Forarbejdet +StatusSendingProcessed=Gennemført StatusSendingDraftShort=Udkast -StatusSendingValidatedShort=Bekræftet +StatusSendingValidatedShort=Gennemført StatusSendingProcessedShort=Forarbejdet SendingSheet=Forsendelsesark ConfirmDeleteSending=Er du sikker på, at du vil slette denne forsendelse? -ConfirmValidateSending=Er du sikker på, at du vil bekræfte denne forsendelse med henvisning %s ? +ConfirmValidateSending=Er du sikker på, at du vil bekræfte denne forsendelse med henvisning %s? ConfirmCancelSending=Er du sikker på, at du vil annullere denne forsendelse? DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Advarsel, ingen varer venter på at blive sendt. @@ -59,7 +59,7 @@ ProductQtyInCustomersOrdersRunning=Produktmængde fra åbne salgsordrer ProductQtyInSuppliersOrdersRunning=Produktmængde fra åbne indkøbsordrer ProductQtyInShipmentAlreadySent=Produktmængde fra åben salgsordre allerede sendt ProductQtyInSuppliersShipmentAlreadyRecevied=Produktmængde fra allerede modtagne åbne indkøbsordrer -NoProductToShipFoundIntoStock=Intet produkt til skib fundet i lageret %s . Ret lager eller gå tilbage for at vælge et andet lager. +NoProductToShipFoundIntoStock=Intet produkt til afsendelse fundet i lageret %s. Ret lager eller gå tilbage for at vælge et andet lager. WeightVolShort=Vægt / vol. ValidateOrderFirstBeforeShipment=Du skal først bekræfte ordren, inden du kan foretage forsendelser. diff --git a/htdocs/langs/da_DK/sms.lang b/htdocs/langs/da_DK/sms.lang index d6af28933f3..fced7650095 100644 --- a/htdocs/langs/da_DK/sms.lang +++ b/htdocs/langs/da_DK/sms.lang @@ -8,7 +8,7 @@ SmsTargets=Mål SmsRecipients=Mål SmsRecipient=Mål SmsTitle=Beskrivelse -SmsFrom=Sender +SmsFrom=Afsender SmsTo=Mål SmsTopic=Emne af SMS SmsText=Besked diff --git a/htdocs/langs/da_DK/stocks.lang b/htdocs/langs/da_DK/stocks.lang index 1367640112b..72bb4f20ca8 100644 --- a/htdocs/langs/da_DK/stocks.lang +++ b/htdocs/langs/da_DK/stocks.lang @@ -24,6 +24,7 @@ StockAtDateInFuture=Dato i fremtiden StocksByLotSerial=Lagerført efter parti/seriel LotSerial=Parti/Serienr LotSerialList=Liste over partier/seriernr. +SubjectToLotSerialOnly=Produkter kun underlagt parti/serie Movements=Bevægelser ErrorWarehouseRefRequired=Varelagers reference navn er påkrævet ListOfWarehouses=Liste over Varelagre @@ -48,7 +49,7 @@ StockCorrection=Lagerkorrektion CorrectStock=Korrekt lager StockTransfer=Lageroverførsel TransferStock=Overført lager -MassStockTransferShort=Lager overførsel +MassStockTransferShort=Bulk lager ændring StockMovement=Lager bevægelse StockMovements=Lagerbevægelser NumberOfUnit=Antal enheder @@ -146,8 +147,9 @@ Replenishments=genopfyldninger NbOfProductBeforePeriod=Mængde af produkt %s på lager inden valgt periode (<%s) NbOfProductAfterPeriod=Mængde af produkt %s på lager efter valgt periode (> %s) MassMovement=Massebehandling -SelectProductInAndOutWareHouse=Vælg et kildelager og et mållager, et produkt og en mængde, og klik derefter på "%s". Når dette er gjort for alle krævede bevægelser, skal du klikke på "%s". +SelectProductInAndOutWareHouse=Vælg et kildelager (valgfrit), et mållager, et produkt og en mængde og klik derefter på "%s". Når dette er gjort for alle nødvendige bevægelser, skal du klikke på "%s". RecordMovement=Optag overførsel +RecordMovements=Registrer lagerbevægelser ReceivingForSameOrder=Kvitteringer for denne ordre StockMovementRecorded=Aktiebevægelser registreret RuleForStockAvailability=Regler om lagerkrav @@ -217,7 +219,7 @@ RealValue=Reel værdi RegulatedQty=Reguleret antal AddInventoryProduct=Tilføj produkt til lager AddProduct=Tilføj -ApplyPMP=Påfør PMP +ApplyPMP=Anvend PMP FlushInventory=Spyl opgørelse ConfirmFlushInventory=Bekræfter du denne handling? InventoryFlushed=Lagerbeholdningen skyllet @@ -234,7 +236,7 @@ StockIncrease=Lagerforøgelse StockDecrease=Lagerfald InventoryForASpecificWarehouse=Beholdning til et specifikt lager InventoryForASpecificProduct=Beholdning for et specifikt produkt -StockIsRequiredToChooseWhichLotToUse=Lager kræves for at vælge, hvilket parti der skal bruges +StockIsRequiredToChooseWhichLotToUse=Der kræves et eksisterende lager for at kunne vælge hvilket parti der skal bruges ForceTo=Tving til AlwaysShowFullArbo=Vis hele træets lagertrin ved pop op af warehouse-links (Advarsel: Dette kan mindske ydeevne dramatisk) StockAtDatePastDesc=Du kan her se aktien (ægte aktier) på en given dato i fortiden @@ -270,7 +272,7 @@ InventoryStartedShort=Startet ErrorOnElementsInventory=Operationen blev annulleret af følgende årsag: ErrorCantFindCodeInInventory=Kan ikke finde følgende kode i inventaret QtyWasAddedToTheScannedBarcode=Succes!! Mængden blev tilføjet til alle de ønskede stregkoder. Du kan lukke scannerværktøjet. -StockChangeDisabled=Ændring på lager deaktiveret +StockChangeDisabled=Lagerændring deaktiveret NoWarehouseDefinedForTerminal=Intet lager defineret for terminal ClearQtys=Ryd alle mængder ModuleStockTransferName=Avanceret lageroverførsel diff --git a/htdocs/langs/da_DK/stripe.lang b/htdocs/langs/da_DK/stripe.lang index 2caa038cc39..173725802f8 100644 --- a/htdocs/langs/da_DK/stripe.lang +++ b/htdocs/langs/da_DK/stripe.lang @@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Webhook-livenøgle ONLINE_PAYMENT_WAREHOUSE=Lager til brug for lagerreduktion, når online betaling er færdig
(TODO Når valgmuligheden for at reducere lagerbeholdningen sker på en handling på faktura, og online betaling genererer selve fakturaen?) StripeLiveEnabled=Stripe live aktiveret (ellers test / sandbox mode) StripeImportPayment=Import Stripe betalinger -ExampleOfTestCreditCard=Eksempel på kreditkort til test:%s => gyldigt,%s => fejl CVC,%s => udløbet, %s=> gebyr mislykkes +ExampleOfTestCreditCard=Eksempel på kreditkort til SEPA-test: %s => gyldig, %s => fejl CVC, %s => udløbet, %s => opladning mislykkes +ExampleOfTestBankAcountForSEPA=Eksempel på bankkonto BAN til test af direkte debitering: %s StripeGateways=Stripe gateways OAUTH_STRIPE_TEST_ID=Stripe Connect Client ID (ca. _...) OAUTH_STRIPE_LIVE_ID=Stripe Connect Client ID (ca. _...) @@ -61,6 +62,7 @@ DeleteACard=Slet kort ConfirmDeleteCard=Er du sikker på, at du vil slette dette kredit- eller betalingskort? CreateCustomerOnStripe=Opret kunde på Stripe CreateCardOnStripe=Opret kort på Stripe +CreateBANOnStripe=Opret bank på Stripe ShowInStripe=Vis i Stripe StripeUserAccountForActions=Brugerkonto, der skal bruges til e-mail-meddelelse om nogle Stripe begivenheder (Stripe udbetalinger) StripePayoutList=Liste over Stripe udbetalinger @@ -69,4 +71,8 @@ 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 +STRIPE_CARD_PRESENT=Kort til stede til Stripe-terminaler +TERMINAL_LOCATION=Placering (adresse) for Stripe Terminals +RequestDirectDebitWithStripe=Anmod om direkte debitering med Stripe +STRIPE_SEPA_DIRECT_DEBIT=Aktiver direkte debitering via Stripe + diff --git a/htdocs/langs/da_DK/ticket.lang b/htdocs/langs/da_DK/ticket.lang index 1c43340d3d0..14f5fcde62b 100644 --- a/htdocs/langs/da_DK/ticket.lang +++ b/htdocs/langs/da_DK/ticket.lang @@ -26,7 +26,9 @@ 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) +Permission56006=Eksportér billetter +Tickets=Sager TicketDictType=Sag - Typer TicketDictCategory=Sag - Grupper TicketDictSeverity=Sag - Alvorlighed @@ -50,7 +52,7 @@ TicketCategoryShortOTHER=Andre ErrorBadEmailAddress=Felt '%s' forkert MenuTicketMyAssign=Mine sager MenuTicketMyAssignNonClosed=Mine åbne sager -MenuListNonClosed=Åbene sager +MenuListNonClosed=Åbne sager TypeContact_ticket_internal_CONTRIBUTOR=Bidragyder TypeContact_ticket_internal_SUPPORTTEC=Tildelt bruger @@ -60,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Ekstern bidragyder OriginEmail=Sagsopretter e-mail Notify_TICKET_SENTBYMAIL=Send sagsbesked via e-mail +ExportDataset_ticket_1=Sager + # Status Read=Læs Assigned=Tildelt @@ -91,7 +95,7 @@ TicketSetupDictionaries=Typen af sag, alvorlighed og analytiske koder kan konfig TicketParamModule=Indstilling af modulvariabler 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 +TicketEmailNotificationFromHelp=Afsender adresse, der skal bruges til at sende notifikations e-mail, når svaret er angivet i backoffice. For eksempel noreply@example.com TicketEmailNotificationTo=Giv besked om oprettelse af billet til denne e-mailadresse TicketEmailNotificationToHelp=Hvis den er til stede, vil denne e-mailadresse blive underrettet om oprettelse af billet TicketNewEmailBodyLabel=Tekstbesked sendt efter oprettelse af en sag @@ -149,6 +153,8 @@ TicketsAutoNotifyCloseHelp=Når du lukker en billet, vil du blive foreslået at TicketWrongContact=Forudsat kontakt ikke er en del af aktuelle billetkontakter. E-mail ikke sendt. TicketChooseProductCategory=Produktkategori til billetsupport TicketChooseProductCategoryHelp=Vælg produktkategori for billetsupport. Dette vil blive brugt til automatisk at knytte en kontrakt til en billet. +TicketUseCaptchaCode=Brug grafisk kode (CAPTCHA), når du opretter en billet +TicketUseCaptchaCodeHelp=Tilføjer CAPTCHA-bekræftelse, når du opretter en ny billet. # # Index & list page @@ -192,8 +198,7 @@ TicketAssigned=Sagen er nu tildelt TicketChangeType=Skift type TicketChangeCategory=Skift analytisk kode TicketChangeSeverity=Ændre alvorligheden -TicketAddMessage=Tilføj en besked -AddMessage=Tilføj en besked +TicketAddMessage=Tilføj privat besked MessageSuccessfullyAdded=Sag tilføjet TicketMessageSuccessfullyAdded=Meddelelse med tilføjet TicketMessagesList=Meddelelsesliste @@ -204,8 +209,8 @@ TicketSeverity=Alvorlighed ShowTicket=Se sag RelatedTickets=Relaterede sager TicketAddIntervention=Opret indgreb -CloseTicket=Luk | Løs sag -AbandonTicket=Efterlad sag +CloseTicket=Luk|Løst +AbandonTicket=Opgive CloseATicket=Luk | Løs en sag ConfirmCloseAticket=Bekræft afslutningen af sagen ConfirmAbandonTicket=Bekræfter du lukningen af sagen med status 'Efterladt' @@ -219,18 +224,17 @@ SendMessageByEmail=Send besked via e-mail TicketNewMessage=Ny besked ErrorMailRecipientIsEmptyForSendTicketMessage=Modtageren er tom. Ingen e-mail sendt TicketGoIntoContactTab=Gå til fanen "Kontakter" for at vælge dem -TicketMessageMailIntro=Introduktion +TicketMessageMailIntro=Meddelelsesoverskrift TicketMessageMailIntroHelp=Denne tekst tilføjes kun i begyndelsen af ​​e-mailen og bliver ikke gemt. -TicketMessageMailIntroLabelAdmin=Introduktionstekst til alle billetbesvarelser TicketMessageMailIntroText=Hej
Der er tilføjet et nyt svar til en billet, som du følger. Her er beskeden:
TicketMessageMailIntroHelpAdmin=Denne tekst vil blive indsat før svaret, når du svarer på en billet fra Dolibarr -TicketMessageMailSignature=Underskrift -TicketMessageMailSignatureHelp=Denne tekst tilføjes kun i slutningen af ​​e-mailen og bliver ikke gemt. -TicketMessageMailSignatureText=Besked sendt af %s via Dolibarr -TicketMessageMailSignatureLabelAdmin=Signatur af svar Email -TicketMessageMailSignatureHelpAdmin=Denne tekst indsættes efter svarmeddelelsen. +TicketMessageMailFooter=Meddelelsesfod +TicketMessageMailFooterHelp=Denne tekst tilføjes kun i slutningen af meddelelsen sendt via e-mail og vil ikke blive gemt. +TicketMessageMailFooterText=Besked sendt af %s via Dolibarr +TicketMessageMailFooterHelpAdmin=Denne tekst vil blive indsat efter svarmeddelelsen. TicketMessageHelp=Kun denne tekst gemmes i meddelelseslisten på sagskortet. TicketMessageSubstitutionReplacedByGenericValues=Substitutionsvariabler erstattes af generiske værdier. +ForEmailMessageWillBeCompletedWith=For e-mail-beskeder sendt til eksterne brugere vil meddelelsen blive udfyldt med TimeElapsedSince=Tid forløbet siden TicketTimeToRead=Tid forløbet før læst TicketTimeElapsedBeforeSince=Forløbet tid før / siden @@ -241,6 +245,7 @@ TicketMessageMailIntroAutoNewPublicMessage=En ny besked blev sendt på sagen med TicketAssignedToYou=Sag tildelt TicketAssignedEmailBody=Du er blevet tildelt sag# %s ved %s MarkMessageAsPrivate=Markér besked som privat +TicketMessageSendEmailHelp=En e-mail vil blive sendt til alle tildelte kontakter (interne kontakter, men også eksterne kontakter, undtagen hvis indstillingen "%s" er markeret) TicketMessagePrivateHelp=Denne meddelelse vises ikke til eksterne brugere TicketEmailOriginIssuer=Udsteder ved oprindelsen af opgaven InitialMessage=Indledende besked @@ -296,7 +301,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Du kan se fremskridt på sagen i den spe TicketCloseEmailBodyInfosTrackUrlCustomer=Du kan se historikken for denne billet ved at klikke på følgende link TicketEmailPleaseDoNotReplyToThisEmail=Venligst svar ikke direkte på denne email! Brug linket til at svare på grænsefladen. TicketPublicInfoCreateTicket=Denne formular giver dig mulighed for at oprette en support sag i vores sagssystem. -TicketPublicPleaseBeAccuratelyDescribe=Beskriv venligst problemet korrekt. Giv den mest mulige information, så vi kan identificere din anmodning korrekt. +TicketPublicPleaseBeAccuratelyDescribe=Beskriv venligst dit spørgsmål nøjagtigt. Angiv så mange oplysninger som muligt for at give os mulighed for korrekt at identificere din anmodning. TicketPublicMsgViewLogIn=Indtast venligst sag ID TicketTrackId=Offentlig sporings ID OneOfTicketTrackId=Et af dine sporings ID'er diff --git a/htdocs/langs/da_DK/trips.lang b/htdocs/langs/da_DK/trips.lang index 7462ce544e1..41be01501a4 100644 --- a/htdocs/langs/da_DK/trips.lang +++ b/htdocs/langs/da_DK/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Vis omkostningsrapport -Trips=Udgiftsrapporter -TripsAndExpenses=Udgifter rapporter -TripsAndExpensesStatistics=Omkostningsrapporteringstatistik -TripCard=Udgiftsrapport kort +AUTHOR=Optaget af +AUTHORPAIEMENT=Betalt af AddTrip=Opret omkostningsrapport -ListOfTrips=Liste over udgiftsrapporter -ListOfFees=Liste over gebyrer -TypeFees=Typer af gebyrer -ShowTrip=Vis omkostningsrapport -NewTrip=Ny udgiftsrapport -LastExpenseReports=Seneste %s udgiftsrapporter +AllExpenseReport=Alle typer udgiftsrapport AllExpenseReports=Alle udgiftsrapporter -CompanyVisited=Besøgt firma / organisation -FeesKilometersOrAmout=Beløb eller kilometer -DeleteTrip=Slet udgiftsrapport -ConfirmDeleteTrip=Er du sikker på, at du vil slette denne udgiftsrapport? -ListTripsAndExpenses=Liste over udgiftsrapporter -ListToApprove=Venter på godkendelse -ExpensesArea=Omkostningsrapporteringsområde +AnyOtherInThisListCanValidate=Person, der skal informeres om validering af anmodningen. +AttachTheNewLineToTheDocument=Fastgør linjen til et uploadet dokument +AucuneLigne=Der er ikke angivet nogen omkostningsrapport endnu +BrouillonnerTrip=Flyt tilbage bekostning rapport til status "Udkast" +byEX_DAY=om dagen (begrænsning til %s) +byEX_EXP=for linje (begrænsning til %s) +byEX_MON=efter måned (begrænsning til %s) +byEX_YEA=efter år (begrænsning til %s) +CANCEL_USER=Slettet af +CarCategory=Køretøjskategori ClassifyRefunded=Klassificer 'refunderet' +CompanyVisited=Besøgt firma / organisation +ConfirmBrouillonnerTrip=Er du sikker på, at du vil flytte denne udgiftsrapport til status "Udkast"? +ConfirmCancelTrip=Er du sikker på, at du vil annullere denne udgiftsrapport? +ConfirmCloneExpenseReport=Er du sikker på, at du vil klone denne omkostningsrapport? +ConfirmDeleteTrip=Er du sikker på, at du vil slette denne udgiftsrapport? +ConfirmPaidTrip=Er du sikker på, at du vil ændre status for denne udgiftsrapport til "Betalt"? +ConfirmRefuseTrip=Er du sikker på, at du vil nægte denne udgiftsrapport? +ConfirmSaveTrip=Er du sikker på, at du vil bekræfte denne udgiftsrapport? +ConfirmValideTrip=Er du sikker på, at du vil godkende denne udgiftsrapport? +DATE_CANCEL=Annulleringsdato +DATE_PAIEMENT=Betalingsdato +DATE_REFUS=Nægte dato +DATE_SAVE=Bekræftelsesdato +DefaultCategoryCar=Standard transport mode +DefaultRangeNumber=Standard interval nummer +DeleteTrip=Slet udgiftsrapport +ErrorDoubleDeclaration=Du har erklæret en anden regningsrapport i et lignende datointerval. +Error_EXPENSEREPORT_ADDON_NotDefined=Fejl, reglen for udgiftsrapport nummerering ref blev ikke defineret i opsætning af modul 'Udgiftsrapport' +ExpenseRangeOffset=Forskudsbeløb: %s +expenseReportCatDisabled=Kategori deaktiveret - se c_exp_tax_cat ordbogen +expenseReportCoef=Koefficient +expenseReportCoefUndefined=(værdi ikke defineret) +expenseReportOffset=Offset +expenseReportPrintExample=offset + (d x coef) = %s +expenseReportRangeDisabled=Område deaktiveret - se c_exp_tax_range dictionay +expenseReportRangeFromTo=fra %d til %d +expenseReportRangeMoreThan=mere end %d +expenseReportTotalForFive=Eksempel med d = 5 +ExpenseReportApplyTo=Anvend til +ExpenseReportApproved=En udgiftsrapport blev godkendt +ExpenseReportApprovedMessage=Udgiftsrapporten %s blev godkendt.
- Bruger: %s
- Godkendt af: %s
Klik her for at vise udgiftsrapporten: %s +ExpenseReportCanceled=En udgiftsrapport blev annulleret +ExpenseReportCanceledMessage=Udgiftsrapporten %s blev annulleret.
- Bruger: %s
- Annulleret af: %s
- Motiv for annullering: %s
Klik her for at vise udgiftsrapporten: %s +ExpenseReportConstraintViolationError=Maks. beløb overskredet (regel %s): %s er højere end %s (overskridelse forbudt) +ExpenseReportConstraintViolationWarning=Maks. beløb overskredet (regel %s): %s er højere end %s (overskrider tilladt) +ExpenseReportDateEnd=Dato udgangen +ExpenseReportDateStart=Dato start +ExpenseReportDomain=Domæne at anvende +ExpenseReportIkDesc=Du kan ændre beregningen af ​​kilometerudgifter efter kategori og rækkevidde, hvem de tidligere er defineret. d er afstanden i kilometer +ExpenseReportLimitAmount=Max beløb +ExpenseReportLimitOn=Begræns på +ExpenseReportLine=Udgiftsrapport linje +ExpenseReportPaid=En udgiftsrapport blev betalt +ExpenseReportPaidMessage=Udgiftsrapporten %s blev betalt.
- Bruger: %s
- Betalt af: %s
Klik her for at vise udgiftsrapporten: %s +ExpenseReportPayment=Udgift rapport betaling +ExpenseReportRef=Ref. udgiftsrapport +ExpenseReportRefused=En udgiftsrapport blev afvist +ExpenseReportRefusedMessage=Udgiftsrapporten %s blev afvist.
- Bruger: %s
- Afvist af: %s
- Motiver til afvisning: %s
Klik her for at vise udgiftsrapporten: %s +ExpenseReportRestrictive=Overskridelse forbudt +ExpenseReportRuleErrorOnSave=Fejl: %s +ExpenseReportRuleSave=Regnskabsregnskabsreglen er gemt +ExpenseReportRulesDesc=Du kan definere maks. beløbsregler for udgiftsrapporter. Disse regler vil blive anvendt, når en ny udgift tilføjes en udgiftsrapport ExpenseReportWaitingForApproval=En ny udgiftsrapport er indsendt til godkendelse ExpenseReportWaitingForApprovalMessage=En ny udgiftsrapport er indsendt og venter på godkendelse.
- Bruger: %s
- Periode: %s
Klik her for at bekræfte: %s ExpenseReportWaitingForReApproval=En udgiftsrapport er indsendt til genoptagelse ExpenseReportWaitingForReApprovalMessage=En udgiftsrapport er indsendt og venter på genkendelse.
%s, du nægtede at godkende regningsrapporten af ​​denne grund: %s.
En ny version er blevet foreslået og venter på din godkendelse.
- Bruger: %s
- Periode: %s
Klik her for at bekræfte: %s -ExpenseReportApproved=En udgiftsrapport blev godkendt -ExpenseReportApprovedMessage=Udgiftsrapporten %s blev godkendt.
- Bruger: %s
- Godkendt af: %s
Klik her for at vise udgiftsrapporten: %s -ExpenseReportRefused=En udgiftsrapport blev afvist -ExpenseReportRefusedMessage=Udgiftsrapporten %s blev afvist.
- Bruger: %s
- Afvist af: %s
- Motiver til afvisning: %s
Klik her for at vise udgiftsrapporten: %s -ExpenseReportCanceled=En udgiftsrapport blev annulleret -ExpenseReportCanceledMessage=Udgiftsrapporten %s blev annulleret.
- Bruger: %s
- Annulleret af: %s
- Motiv for annullering: %s
Klik her for at vise udgiftsrapporten: %s -ExpenseReportPaid=En udgiftsrapport blev betalt -ExpenseReportPaidMessage=Udgiftsrapporten %s blev betalt.
- Bruger: %s
- Betalt af: %s
Klik her for at vise udgiftsrapporten: %s -TripId=Id udgiftsrapport -AnyOtherInThisListCanValidate=Person, der skal informeres om validering af anmodningen. -TripSociete=Informationsselskab -TripNDF=Informationsomkostningsrapport -PDFStandardExpenseReports=Standard skabelon til at generere et PDF-dokument til udgiftsrapport -ExpenseReportLine=Udgiftsrapport linje -TF_OTHER=Anden -TF_TRIP=Transport -TF_LUNCH=Frokost -TF_METRO=Metro -TF_TRAIN=Tog -TF_BUS=Bus -TF_CAR=Bil -TF_PEAGE=Afgift -TF_ESSENCE=Brændstof -TF_HOTEL=Hotel -TF_TAXI=Taxa -EX_KME=Mileage omkostninger -EX_FUE=Brændstof CV -EX_HOT=Hotel -EX_PAR=Parkering CV -EX_TOL=Toll CV -EX_TAX=Forskellige skatter -EX_IND=Skadesløsholdelse transport abonnement -EX_SUM=Vedligeholdelsesforsyning -EX_SUO=Kontorartikler -EX_CAR=Biludlejning -EX_DOC=Dokumentation -EX_CUR=Kunder modtager -EX_OTR=Anden modtagelse -EX_POS=Porto -EX_CAM=CV vedligeholdelse og reparation -EX_EMM=Ansatte måltid -EX_GUM=Gæster måltid -EX_BRE=Morgenmad -EX_FUE_VP=Brændstof PV -EX_TOL_VP=Toll PV -EX_PAR_VP=Parkering PV -EX_CAM_VP=PV vedligeholdelse og reparation -DefaultCategoryCar=Standard transport mode -DefaultRangeNumber=Standard interval nummer -UploadANewFileNow=Upload et nyt dokument nu -Error_EXPENSEREPORT_ADDON_NotDefined=Fejl, reglen for udgiftsrapport nummerering ref blev ikke defineret i opsætning af modul 'Udgiftsrapport' -ErrorDoubleDeclaration=Du har erklæret en anden regningsrapport i et lignende datointerval. -AucuneLigne=Der er ikke angivet nogen omkostningsrapport endnu -ModePaiement=Betalingsmåde -VALIDATOR=Bruger ansvarlig for godkendelse -VALIDOR=Godkendt af -AUTHOR=Optaget af -AUTHORPAIEMENT=Betalt af -REFUSEUR=Nægtet af -CANCEL_USER=Slettet af -MOTIF_REFUS=Årsag -MOTIF_CANCEL=Årsag -DATE_REFUS=Nægte dato -DATE_SAVE=Bekræftelsesdato -DATE_CANCEL=Annulleringsdato -DATE_PAIEMENT=Betalingsdato -ExpenseReportRef=Ref. udgiftsrapport -ValidateAndSubmit=Bekræft og indsend for godkendelse -ValidatedWaitingApproval=Bekræftet (venter på godkendelse) -NOT_AUTHOR=Du er ikke forfatteren af ​​denne udgiftsrapport. Drift aflyst. -ConfirmRefuseTrip=Er du sikker på, at du vil nægte denne udgiftsrapport? -ValideTrip=Godkendelse af udgiftsrapport -ConfirmValideTrip=Er du sikker på, at du vil godkende denne udgiftsrapport? -PaidTrip=Betal en udgiftsrapport -ConfirmPaidTrip=Er du sikker på, at du vil ændre status for denne udgiftsrapport til "Betalt"? -ConfirmCancelTrip=Er du sikker på, at du vil annullere denne udgiftsrapport? -BrouillonnerTrip=Flyt tilbage bekostning rapport til status "Udkast" -ConfirmBrouillonnerTrip=Er du sikker på, at du vil flytte denne udgiftsrapport til status "Udkast"? -SaveTrip=Bekræfte udgiftsrapport -ConfirmSaveTrip=Er du sikker på, at du vil bekræfte denne udgiftsrapport? -NoTripsToExportCSV=Ingen udgiftsrapport til eksport for denne periode. -ExpenseReportPayment=Udgift rapport betaling -ExpenseReportsToApprove=Udgiftsrapporter til at godkende -ExpenseReportsToPay=Udgifter rapporterer at betale -ConfirmCloneExpenseReport=Er du sikker på, at du vil klone denne omkostningsrapport? ExpenseReportsIk=Konfiguration af kilometertal ExpenseReportsRules=Regnskabsregnskabsregler -ExpenseReportIkDesc=Du kan ændre beregningen af ​​kilometerudgifter efter kategori og rækkevidde, hvem de tidligere er defineret. d er afstanden i kilometer -ExpenseReportRulesDesc=Du kan definere maks. beløbsregler for udgiftsrapporter. Disse regler vil blive anvendt, når en ny udgift tilføjes en udgiftsrapport -expenseReportOffset=Offset -expenseReportCoef=Koefficient -expenseReportTotalForFive=Eksempel med d = 5 -expenseReportRangeFromTo=fra %d til %d -expenseReportRangeMoreThan=mere end %d -expenseReportCoefUndefined=(værdi ikke defineret) -expenseReportCatDisabled=Kategori deaktiveret - se c_exp_tax_cat ordbogen -expenseReportRangeDisabled=Område deaktiveret - se c_exp_tax_range dictionay -expenseReportPrintExample=offset + (d x coef) = %s -ExpenseReportApplyTo=Ansøg til -ExpenseReportDomain=Domæne at anvende -ExpenseReportLimitOn=Begræns på -ExpenseReportDateStart=Dato start -ExpenseReportDateEnd=Dato udgangen -ExpenseReportLimitAmount=Max beløb -ExpenseReportRestrictive=Overskridelse forbudt -AllExpenseReport=Alle typer udgiftsrapport -OnExpense=Udgiftslinje -ExpenseReportRuleSave=Regnskabsregnskabsreglen er gemt -ExpenseReportRuleErrorOnSave=Fejl: %s -RangeNum=Område %d -ExpenseReportConstraintViolationError=Maks. beløb overskredet (regel %s): %s er højere end %s (overskridelse forbudt) -byEX_DAY=om dagen (begrænsning til %s) -byEX_MON=efter måned (begrænsning til %s) -byEX_YEA=efter år (begrænsning til %s) -byEX_EXP=for linje (begrænsning til %s) -ExpenseReportConstraintViolationWarning=Maks. beløb overskredet (regel %s): %s er højere end %s (overskrider tilladt) +ExpenseReportsToApprove=Udgiftsrapporter til at godkende +ExpenseReportsToPay=Udgifter rapporterer at betale +ExpensesArea=Omkostningsrapporteringsområde +FeesKilometersOrAmout=Beløb eller kilometer +LastExpenseReports=Seneste %s udgiftsrapporter +ListOfFees=Liste over gebyrer +ListOfTrips=Liste over udgiftsrapporter +ListToApprove=Venter på godkendelse +ListTripsAndExpenses=Liste over udgiftsrapporter +MOTIF_CANCEL=Årsag +MOTIF_REFUS=Årsag +ModePaiement=Betalingsmåde +NewTrip=Ny udgiftsrapport nolimitbyEX_DAY=om dagen (ingen begrænsning) +nolimitbyEX_EXP=efter linie (ingen begrænsning) nolimitbyEX_MON=efter måned (ingen begrænsning) nolimitbyEX_YEA=efter år (ingen begrænsning) -nolimitbyEX_EXP=efter linie (ingen begrænsning) -CarCategory=Køretøjskategori -ExpenseRangeOffset=Forskudsbeløb: %s +NoTripsToExportCSV=Ingen udgiftsrapport til eksport for denne periode. +NOT_AUTHOR=Du er ikke forfatteren af ​​denne udgiftsrapport. Drift aflyst. +OnExpense=Udgiftslinje +PDFStandardExpenseReports=Standard skabelon til at generere et PDF-dokument til udgiftsrapport +PaidTrip=Betal en udgiftsrapport +REFUSEUR=Nægtet af RangeIk=Mileage rækkevidde -AttachTheNewLineToTheDocument=Fastgør linjen til et uploadet dokument +RangeNum=Område %d +SaveTrip=Bekræfte udgiftsrapport +ShowExpenseReport=Vis omkostningsrapport +ShowTrip=Vis omkostningsrapport +TripCard=Udgiftsrapport kort +TripId=Id udgiftsrapport +TripNDF=Informationsomkostningsrapport +TripSociete=Informationsselskab +Trips=Udgiftsrapporter +TripsAndExpenses=Udgifter rapporter +TripsAndExpensesStatistics=Omkostningsrapporteringstatistik +TypeFees=Typer af gebyrer +UploadANewFileNow=Upload et nyt dokument nu +VALIDATOR=Bruger ansvarlig for godkendelse +VALIDOR=Godkendt af +ValidateAndSubmit=Bekræft og indsend for godkendelse +ValidatedWaitingApproval=Bekræftet (venter på godkendelse) +ValideTrip=Godkendelse af udgiftsrapport + +## Dictionary +EX_BRE=Morgenmad +EX_CAM=CV vedligeholdelse og reparation +EX_CAM_VP=PV vedligeholdelse og reparation +EX_CAR=Biludlejning +EX_CUR=Kunder modtager +EX_DOC=Dokumentation +EX_EMM=Ansatte måltid +EX_FUE=Brændstof CV +EX_FUE_VP=Brændstof PV +EX_GUM=Gæster måltid +EX_HOT=Hotel +EX_IND=Skadesløsholdelse transport abonnement +EX_KME=Mileage omkostninger +EX_OTR=Anden modtagelse +EX_PAR=Parkering CV +EX_PAR_VP=Parkering PV +EX_POS=Porto +EX_SUM=Vedligeholdelsesforsyning +EX_SUO=Kontorartikler +EX_TAX=Forskellige skatter +EX_TOL=Toll CV +EX_TOL_VP=Toll PV +TF_BUS=Bus +TF_CAR=Bil +TF_ESSENCE=Brændstof +TF_HOTEL=Hotel +TF_LUNCH=Frokost +TF_METRO=Metro +TF_OTHER=Anden +TF_PEAGE=Afgift +TF_TAXI=Taxa +TF_TRAIN=Tog +TF_TRIP=Transport diff --git a/htdocs/langs/da_DK/users.lang b/htdocs/langs/da_DK/users.lang index 69608712a1a..48076bd127a 100644 --- a/htdocs/langs/da_DK/users.lang +++ b/htdocs/langs/da_DK/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Fjern fra gruppe PasswordChangedAndSentTo=Password ændret og sendt til %s. PasswordChangeRequest=Anmod om at ændre adgangskode til %s PasswordChangeRequestSent=Anmodning om at ændre password for %s sendt til %s. -IfLoginExistPasswordRequestSent=Hvis dette login er en gyldig konto, er der sendt en e-mail for at nulstille adgangskoden. +IfLoginExistPasswordRequestSent=Hvis dette login er en gyldig konto (med en gyldig e-mail), er der sendt en e-mail til nulstilling af adgangskode. IfEmailExistPasswordRequestSent=Hvis denne e-mail er en gyldig konto, er der sendt en e-mail for at nulstille adgangskoden. ConfirmPasswordReset=Bekræft nulstilling af adgangskode MenuUsersAndGroups=Brugere og grupper @@ -66,9 +66,9 @@ LinkedToDolibarrUser=Link til bruger LinkedToDolibarrThirdParty=Link til tredjepart CreateDolibarrLogin=Opret Dolibarr konto CreateDolibarrThirdParty=Opret en tredjepart -LoginAccountDisableInDolibarr=Konto deaktiveret i Dolibarr. +LoginAccountDisableInDolibarr=Konto deaktiveret i Dolibarr +PASSWORDInDolibarr=Adgangskode ændret i Dolibarr UsePersonalValue=Brug personlige værdi -InternalUser=Intern bruger ExportDataset_user_1=Brugere og deres egenskaber DomainUser=Domænebruger %s Reactivate=Genaktiver @@ -128,3 +128,8 @@ DateLastLogin=Dato sidste login DatePreviousLogin=Dato forrige login IPLastLogin=IP sidste login IPPreviousLogin=IP tidligere login +ShowAllPerms=Vis alle tilladelsesrækker +HideAllPerms=Skjul alle tilladelsesrækker +UserPublicPageDesc=Du kan aktivere et virtuelt kort for denne bruger. En url med brugerprofilen og en stregkode vil være tilgængelig, så alle med en smartphone kan scanne den og tilføje din kontakt til dens adressebog. +EnablePublicVirtualCard=Aktiver det offentlige virtuelle brugerkort +PublicVirtualCardUrl=Offentligt virtuelt brugerkort diff --git a/htdocs/langs/da_DK/website.lang b/htdocs/langs/da_DK/website.lang index 4d437b5ba70..40a033d367d 100644 --- a/htdocs/langs/da_DK/website.lang +++ b/htdocs/langs/da_DK/website.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kode -WebsiteSetupDesc=Opret her de websteder, du vil bruge. Gå derefter ind i menuen Websites for at redigere dem. +WebsiteName=Navn på hjemmesiden +WebsiteSetupDesc=Opret her de websteder, du ønsker at bruge. Gå derefter ind i menuen Websteder for at redigere dem. DeleteWebsite=Slet websted ConfirmDeleteWebsite=Er du sikker på, at du vil slette dette websted? Alle dens sider og indhold fjernes også. De filer, der uploades (ligesom i medias bibliotek, ECM-modulet, ...) forbliver. WEBSITE_TYPE_CONTAINER=Type side / container @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Tilføjelse nederst på HTML-overskrift (fælles for alle si WEBSITE_ROBOT=Robotfil (robots.txt) WEBSITE_HTACCESS=Websted .htaccess fil WEBSITE_MANIFEST_JSON=Webstedets manifest.json fil -WEBSITE_README=README.md fil WEBSITE_KEYWORDSDesc=Brug et komma til at adskille værdier -EnterHereLicenseInformation=Indtast her metadata eller licensinformation for at arkivere en README.md-fil. hvis du distribuerer dit websted som en skabelon, vil filen blive inkluderet i fristelsespakken. +EnterHereReadmeInformation=Indtast her en beskrivelse af hjemmesiden. Hvis du distribuerer dit websted som en skabelon, vil filen blive inkluderet i temptate pakken. +EnterHereLicenseInformation=Indtast her LICENSEN til koden for hjemmesiden. Hvis du distribuerer dit websted som en skabelon, vil filen blive inkluderet i temptate-pakken. HtmlHeaderPage=HTML-overskrift (kun for denne side) PageNameAliasHelp=Navnet eller aliaset på siden.
Dette alias bruges også til at oprette en SEO-URL, når webstedet er kørt fra en virtuel vært på en webserver (som Apacke, Nginx, ...). Brug knappen " %s " for at redigere dette alias. EditTheWebSiteForACommonHeader=Bemærk: Hvis du vil definere en personlig "Header" for alle sider, skal du redigere din "Header" på website niveau i stedet for på siden / containeren. @@ -42,6 +43,8 @@ ViewPageInNewTab=Se side i ny fane SetAsHomePage=Angiv som hjemmeside RealURL=Rigtig webadresse ViewWebsiteInProduction=Se websitet ved hjælp af hjemmesider +Virtualhost=Virtuel vært eller domænenavn +VirtualhostDesc=Navnet på den virtuelle vært eller domæne (for eksempel: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Brug med Apache / NGinx / ...
Opret på din webserver (Apache, Nginx, ...) en dedikeret virtuel vært med PHP aktiveret og et rodkatalog på
%s ExampleToUseInApacheVirtualHostConfig=Eksempel til brug i Apache virtuel værtopsætning: YouCanAlsoTestWithPHPS= Brug med PHP-integreret server
På udvikler miljø kan du helst prøve webstedet med den indbyggede PHP-server (PHP 5.5 påkrævet) ved at køre
php -S 0.0. 0,0: 8080 -t %s @@ -137,7 +140,7 @@ PagesRegenerated=%sside (r) / container (r) regenereret RegenerateWebsiteContent=Genopret cache-filer på webstedet AllowedInFrames=Tilladt i rammer DefineListOfAltLanguagesInWebsiteProperties=Definer liste over alle tilgængelige sprog i webstedets egenskaber. -GenerateSitemaps=Generer webstedets sitemapfil +GenerateSitemaps=Generer webstedet sitemap.xml fil ConfirmGenerateSitemaps=Hvis du bekræfter, sletter du den eksisterende sitemapfil ... ConfirmSitemapsCreation=Bekræft generering af sitemap SitemapGenerated=Sitemap-fil %s genereret @@ -145,3 +148,12 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon skal være png ErrorFaviconSize=Favicon skal have en størrelse på 16x16, 32x32 eller 64x64 FaviconTooltip=Upload et billede, der skal være et png (16x16, 32x32 eller 64x64) +NextContainer=Næste side/beholder +PreviousContainer=Forrige side/container +WebsiteMustBeDisabled=Hjemmesiden skal have status "%s" +WebpageMustBeDisabled=Websiden skal have status "%s" +SetWebsiteOnlineBefore=Når hjemmesiden er offline, er alle sider offline. Skift status på webstedet først. +Booking=Booking +Reservation=Reservation +PagesViewedPreviousMonth=Viste sider (forrige måned) +PagesViewedTotal=Viste sider (i alt) diff --git a/htdocs/langs/da_DK/withdrawals.lang b/htdocs/langs/da_DK/withdrawals.lang index bfe254e8353..1e62f500c28 100644 --- a/htdocs/langs/da_DK/withdrawals.lang +++ b/htdocs/langs/da_DK/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Faktura venter på kreditoverførsel AmountToWithdraw=Beløb til at trække AmountToTransfer=Beløb, der skal overføres NoInvoiceToWithdraw=Der venter ingen faktura, der er åben for '%s'. Gå til fanen '%s' på fakturakort for at anmode om. -NoSupplierInvoiceToWithdraw=Ingen leverandør faktura med åbne 'direkte kredit anmodninger' venter. Gå til fanen '%s' på fakturakort for at anmode om. +NoSupplierInvoiceToWithdraw=Ingen leverandørfaktura med åben '%s' venter. Gå på fanen '%s' på fakturakortet for at lave en anmodning. ResponsibleUser=Brugeransvarlig WithdrawalsSetup=Indbetaling af direkte debitering CreditTransferSetup=Opsætning af kreditoverførsel @@ -42,6 +42,7 @@ CreditTransferStatistics=Kreditoverførselsstatistik Rejects=Afviser LastWithdrawalReceipt=Seneste %s direkte debit kvitteringer MakeWithdrawRequest=Lav en anmodning om direkte debitering +MakeWithdrawRequestStripe=Foretag en anmodning om direkte debitering via Stripe MakeBankTransferOrder=Foretag en kreditoverførselsanmodning WithdrawRequestsDone=%s anmodninger om direkte debitering indbetalt BankTransferRequestsDone=%s kredit overførselsanmodninger registreret @@ -100,8 +101,11 @@ CreditDate=Kredit på WithdrawalFileNotCapable=Kan ikke generere tilbagekøbskvitteringsfil for dit land %s (Dit land understøttes ikke) ShowWithdraw=Vis direkte debiteringsordre IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Hvis fakturaen dog har mindst en betalingsordre til direkte debitering, der endnu ikke er behandlet, indstilles den ikke til at blive betalt for at tillade forudgående udtræksstyring. -DoStandingOrdersBeforePayments=Denne fane giver dig mulighed for at anmode om en betalingsordre med direkte debitering. Når det er gjort, skal du gå til menuen Bank-> Betaling med direkte debet for at generere og administrere direkte debetordre. Når ordre med direkte debitering lukkes, registreres betaling på fakturaer automatisk, og fakturaer lukkes, hvis resten til betaling er null. -DoCreditTransferBeforePayments=Denne fane giver dig mulighed for at anmode om en kredit overførselsordre. Når det er gjort, skal du gå til menuen Bank-> Betaling med kreditoverførsel for at generere og administrere kredit overførselsordren. Når pengeoverførsel er lukket, vil betaling på fakturaer oplysninger registreres automatisk, og fakturaer lukkes, hvis resten til løn er nul.\n  +DoStandingOrdersBeforePayments=Denne fane giver dig mulighed for at anmode om en betalingsordre med direkte debitering. Når det er gjort, kan du gå ind i menuen "Bank->Betaling med direkte debitering" for at generere og administrere en ordrefil med direkte debitering. +DoStandingOrdersBeforePayments2=Du kan også sende en anmodning direkte til en SEPA-betalingsprocessor som Stripe, ... +DoStandingOrdersBeforePayments3=Når direkte debiteringsordre er lukket, vil betaling på fakturaer automatisk blive registreret, og fakturaer lukkes, hvis resterende betaling er nul. +DoCreditTransferBeforePayments=Denne fane giver dig mulighed for at anmode om en kreditoverførselsordre. Når det er gjort, skal du gå ind i menuen "Bank->Betaling ved kreditoverførsel" for at generere og administrere en kreditoverførselsordrefil. +DoCreditTransferBeforePayments3=Når kreditoverførselsordren er lukket, vil betaling på fakturaer automatisk blive registreret, og fakturaer lukkes, hvis resterende betaling er nul. WithdrawalFile=Debiteringsfil CreditTransferFile=Kreditoverførselsfil SetToStatusSent=Sæt til status "Fil sendt" @@ -118,7 +122,7 @@ WithdrawRequestErrorNilAmount=Kunne ikke oprette direkte debitering for tomt bel SepaMandate=SEPA Direkte Debit Mandat SepaMandateShort=SEPA-mandat PleaseReturnMandate=Ret venligst denne mandatformular via e-mail til %s eller pr. Mail til -SEPALegalText=Ved at underskrive denne fuldmagtsformular giver du (A) %s tilladelse til at sende instruktioner til din bank om at debitere din konto og (B) din bank til at debitere din konto i overensstemmelse med instruktionerne fra %s. Som en del af dine rettigheder har du ret til refusion fra din bank i henhold til betingelserne i din aftale med din bank. Dine rettigheder vedrørende ovenstående fuldmagt er forklaret i en erklæring, som du kan få fra din bank. +SEPALegalText=Ved at underskrive denne fuldmagtsformular giver du (A) %s og dets betalingstjenesteudbyder tilladelse til at sende instruktioner til din bank om at debitere din konto og (B) din bank til at debitere din konto i overensstemmelse med instruktionerne fra %s. Som en del af dine rettigheder har du ret til refusion fra din bank i henhold til betingelserne i din aftale med din bank. Dine rettigheder vedrørende ovenstående fuldmagt er forklaret i en erklæring, som du kan få fra din bank. CreditorIdentifier=Kreditoridentifikator CreditorName=Kreditors navn SEPAFillForm=(B) Udfyld venligst alle felter markeret * diff --git a/htdocs/langs/da_DK/workflow.lang b/htdocs/langs/da_DK/workflow.lang index 254345a85be..ec88edf8ff8 100644 --- a/htdocs/langs/da_DK/workflow.lang +++ b/htdocs/langs/da_DK/workflow.lang @@ -22,7 +22,7 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Klassificer købt kø descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Klassificer linket kildeindkøbsordre som modtaget, når en modtagelse er valideret (og hvis mængden modtaget af alle modtagelser er den samme som i indkøbsordren, der skal opdateres) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Klassificer tilknyttet kildeindkøbsordre som modtaget, når en modtagelse lukkes (og hvis mængden modtaget af alle modtagelser er den samme som i indkøbsordren for at opdatere) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Klassificer modtagelser til "faktureret", når en linket leverandørordre valideres +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Klassificer modtagelser til "faktureret", når en tilknyttet købsfaktura er valideret (og hvis fakturabeløbet er det samme som det samlede beløb for de tilknyttede modtagelser) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Når du opretter en billet, skal du linke tilgængelige kontrakter fra matchende tredjepart descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Når du sammenkæder kontrakter, søg blandt moderselskabers @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Luk alle indgreb, der er knyttet til bill AutomaticCreation=Automatisk oprettelse AutomaticClassification=Automatisk klassificering # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassificer tilknyttet kildeforsendelse som lukket, når kundefaktura er valideret +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassificer linket kildeforsendelse som lukket, når kundens faktura er valideret (og hvis fakturabeløbet er det samme som det samlede beløb for de linkede forsendelser) AutomaticClosing=Automatisk lukning AutomaticLinking=Automatisk forbinde diff --git a/htdocs/langs/de_AT/hrm.lang b/htdocs/langs/de_AT/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/de_AT/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/de_AT/main.lang b/htdocs/langs/de_AT/main.lang index c9768e1b88d..e54fb4920d7 100644 --- a/htdocs/langs/de_AT/main.lang +++ b/htdocs/langs/de_AT/main.lang @@ -3,7 +3,7 @@ DIRECTION=ltr FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, -SeparatorThousand=None +SeparatorThousand=. FormatDateShort=%d.%m.%Y FormatDateShortInput=%d.%m.%Y FormatDateShortJava=dd.MM.yyyy @@ -32,10 +32,10 @@ ToClone=Klonen Of=Von Search=Suche SearchOf=Suche -PasswordRetype=Geben Sie das Passwort erneut ein Title=Titel DateStart=Start-Datum DateEnd=End-Datum +DateRequest=Anfragedatum UnitPrice=Bruttopreis (Stk.) UnitPriceTTC=Bruttopreis (Stk.) PriceU=Stückpreis @@ -76,6 +76,6 @@ SearchIntoContacts=Kontakt SearchIntoInterventions=Eingriffe AssignedTo=zugewisen an DateOfBirth=Geburtstdatum -AffectTag=Beschlagworten/Kategorisieren -ConfirmAffectTag=Massen-Beschlagwortung/Kategorisierung ClientTZ=Client-Zeitzone (Benutzer) +InternalUser=interner Nutzer +ExternalUser=externer Nutzer diff --git a/htdocs/langs/de_AT/stripe.lang b/htdocs/langs/de_AT/stripe.lang new file mode 100644 index 00000000000..ae44362fd94 --- /dev/null +++ b/htdocs/langs/de_AT/stripe.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - stripe +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +TERMINAL_LOCATION=Location (address) for Stripe Terminals diff --git a/htdocs/langs/de_CH/accountancy.lang b/htdocs/langs/de_CH/accountancy.lang index a65ad255398..3ccdcb82ebe 100644 --- a/htdocs/langs/de_CH/accountancy.lang +++ b/htdocs/langs/de_CH/accountancy.lang @@ -10,8 +10,6 @@ Selectformat=Wähle das Dateiformat ACCOUNTING_EXPORT_FORMAT=Wähle das Dateiformat ACCOUNTING_EXPORT_ENDLINE=Wähle das Steuerzeichen für den Wagenrücklauf (Carriage Return CR) ACCOUNTING_EXPORT_PREFIX_SPEC=Wähle dein Präfix für den Dateinamen -DefaultForService=Standard für Leistungen -DefaultForProduct=Standard für Produkte ServiceForThisThirdparty=Dienstleistung für diesen Geschäftspartner CantSuggest=Ich habe keinen Vorschlag AccountancySetupDoneFromAccountancyMenu=Die meisten Einstellungen der Buchhaltung setzt du im Menu %s @@ -75,7 +73,6 @@ ShowAccountingAccount=Zeige Buchhaltungskonto ShowAccountingJournal=Zeige Buchhaltungssjournal ShowAccountingAccountInLedger=Zeige dieses Buchhaltungskonto im Hauptbuch. ShowAccountingAccountInJournals=Zeige dieses Buchhaltungskonto in den Journalen -AccountAccountingSuggest=Vorgeschlagenes Buchhaltungskonto MenuVatAccounts=MWST - Konten MenuExpenseReportAccounts=Spesenabrechnungskonten MenuProductsAccounts=Produktkonten @@ -123,36 +120,21 @@ 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_MISCELLANEOUS_JOURNAL=Nebenjournal -ACCOUNTING_SOCIAL_JOURNAL=Personaljournal +ACCOUNTING_EXPENSEREPORT_JOURNAL=Spesenabrechnungsjournal ACCOUNTING_HAS_NEW_JOURNAL=Hat neuen Journaleintrag +ACCOUNTING_SOCIAL_JOURNAL=Personaljournal ACCOUNTING_RESULT_PROFIT=Ergebniskonto (Gewinn) ACCOUNTING_RESULT_LOSS=Ergebniskonto (Verlust) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Abschlussjournal -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Transferkonto Banktransaktionen TransitionalAccount=Durchlaufkonto Bank -ACCOUNTING_ACCOUNT_SUSPENSE=Sperrkonto -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) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Standardkonto für importierte Produkte aus der EU (wird benutzt, wenn kein Konto im Produkteblatt hinterlegt ist) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Standardkonto für importierte Produkte ausserhalb der EU (wird benutzt, wenn kein Konto im Produkteblatt hinterlegt ist) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Standard - Buchhaltungskonto für verkaufte Produkte\n(Wird verwendet, wenn kein Konto in der Produktdefinition hinterlegt ist) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Standard - Buchhaltungskonto für Produktverkäufe in EWR - Staaten\n(Wird verwendet, wenn kein Konto in der Produktdefinition hinterlegt ist). -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Standardkonto für Verkäufe an nicht EWR - Staaten (sofern nicht anders im Produkt hinterlegt) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Standard - Buchhaltungskonto für gekaufte Leistungen\n(Wird verwendet, wenn kein Konto in der Leistungsdefinition hinterlegt ist) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Standardkonto für importierte Dienstleistungen aus der EU (wird benutzt, wenn kein Konto im Produkteblatt hinterlegt ist) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Standardkonto für importierte Dienstleistungen ausserhalb der EU (wird benutzt, wenn kein Konto im Produkteblatt hinterlegt ist) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Standard - Buchhaltungskonto für verkaufte Leistungen\n(Wird verwendet, wenn kein Konto in der Leistungsdefinition hinterlegt ist) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Standard - Buchhaltungskonto für verkaufte Leistungen in den EWR\n(Wird verwendet, wenn kein Konto in der Leistungsdefinition hinterlegt ist). -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Standardkonto für verkaufte Leistungen an nicht EWR - Staaten (sofern nicht anders im Produkt hinterlegt) 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 +AccountingCategory=Custom group of accounts +AccountingCategories=Custom groups of accounts GroupByAccountAccounting=Nach Hauptbuchkonto gruppieren GroupBySubAccountAccounting=Nach Nebenbuchkonto gruppieren AccountingAccountGroupsDesc=Trage hier deine eigenen Buchhaltungs - Kontogruppen ein. Daraus kannst du spezielle Berichte erzeugen. @@ -192,12 +174,6 @@ ShowOpeningBalance=Eröffnungssaldo anzeigen HideOpeningBalance=Eröffnungssaldo ausblenden Pcgtype=Kontengruppe TotalMarge=Gesamtmarge Verkauf -DescVentilCustomer=Du siehst hier die Liste der Kundenrechnungen und ob diese mit einem Buchhaltungskonto verknüpft sind, oder nicht. -DescVentilMore=Wenn du in den Produkten und Leistungen die Buchhaltungskonten deines Kontenplanes hinterlegt hast, kann ich die Rechnungspositionen automatisch jenen Konten zuordnen. Dafür ist die Schaltfläche "%s" da.\nDort, wo das nicht klappt, kannst du die Rechnungspositionen via "%s" von Hand zuweisen. -DescVentilDoneCustomer=Du siehst die Kundenrechnungspositionen und den aktuellen Verknüpfungsstatus zu Buchhaltungskonten. -DescVentilTodoCustomer=Verknüpfe Rechnungspositionen mit Buchhaltungskonten. -ChangeAccount=Ersetze für die gewählten Positionen das Buchhaltungskonto. -DescVentilSupplier=Du siehst die Lieferantenrechnungspositionen und den aktuellen Verknüpfungsstatus zu Buchhaltungskonten.\n(Hier siehst du alle Einträge, die noch nicht in das Hauptbuch geschrieben sind.) DescVentilDoneSupplier=Liste der Lieferanten - Rechnungspositionen mit aktuell zugewiesenen Buchhaltungskonten. DescVentilTodoExpenseReport=Hier verknüpfst du Spesenauslagen mit dem passenden Buchhaltungskonto. DescVentilExpenseReport=Du siehst die Spesenabrechnungspositionen und den aktuellen Verknüpfungsstatus zu Buchhaltungskonten. @@ -206,12 +182,10 @@ DescVentilDoneExpenseReport=Du siehst die Spesenabrechnungspositionen und die da Closure=Jahresabschluss DescValidateMovements=Für den Abschluss müssen alle Kontobewegungen frei gegeben sein. Danach sind sie nicht mehr änderbar. ValidateHistory=Automatisch verknüpfen -ErrorAccountancyCodeIsAlreadyUse=Hoppla, dieses Buchhaltungskonto wird noch verwendet - du kannst es deshalb nicht löschen. Balancing=Saldierung FicheVentilation=Verknüpfungskarte GeneralLedgerIsWritten=Die Transaktionen werden ins Hauptbuch übertragen. GeneralLedgerSomeRecordWasNotRecorded=Einige Transaktionen konnten leider nicht journalisiert werden.\nHat es eine Fehlermeldung gegeben? Wenn nicht, waren die betroffenen Transaktionen vermutlich bereits im Buch eingetragen. -ListOfProductsWithoutAccountingAccount=Produkte ohne Verknüpfung zu einem Buchhaltungskonto ChangeBinding=Verknüpfung ändern Accounted=Im Hauptbuch eingetragen ShowTutorial=Zeige die Anleitung @@ -224,6 +198,7 @@ NewAccountingJournal=Neues Buchhaltungssjournal AccountingJournalType1=Verschiedene Vorgänge AccountingJournalType2=Verkauf AccountingJournalType3=Einkauf +AccountingJournalType5=Spesenrapporte AccountingJournalType8=Inventar AccountingJournalType9=Hat neues ErrorAccountingJournalIsAlreadyUse=Dieses Journal wird schon verwendet. diff --git a/htdocs/langs/de_CH/admin.lang b/htdocs/langs/de_CH/admin.lang index b8e31734903..917d538c29e 100644 --- a/htdocs/langs/de_CH/admin.lang +++ b/htdocs/langs/de_CH/admin.lang @@ -85,6 +85,7 @@ Language_en_US_es_MX_etc=Sprache setzen (de_CH, en_GB,...) SystemToolsAreaDesc=Dieser Bereich ist voll mit Administratorfunktionen - Wähle im Menu aus. Purge=Säubern PurgeAreaDesc=Hier können Sie alle vom System erzeugten und gespeicherten Dateien löschen (temporäre Dateien oder alle Dateien im Verzeichnis %s). Diese Funktion ist richtet sich vorwiegend an Benutzer ohne Zugriff auf das Dateisystem des Webservers (z.B. Hostingpakete) +PurgeDeleteLogFile=Löschen der Protokolldateien, einschließlich %s, die für das Syslog-Modul definiert wurden (kein Risiko Daten zu verlieren) PurgeDeleteTemporaryFilesShort=Protokoll und temporäre Dateien löschen (kein Risiko von Datenverlust) PurgeDeleteAllFilesInDocumentsDir=Alle Dateien im Verzeichnis %s löschen.
Dadurch werden alle generierten Dokumente gelöscht, die sich auf Elemente (Geschäftspartner, Rechnungen usw.), Dateien, die in das ECM-Modul hochgeladen wurden, Datenbank-Backup-Dumps und temporäre Dateien beziehen. PurgeNDirectoriesDeleted=%s Dateien oder Verzeichnisse gelöscht. @@ -216,6 +217,7 @@ ExamplesWithCurrentSetup=Beispiele mit der derzeitigen Systemkonfiguration ListOfDirectoriesForModelGenODT=Liste der Verzeichnisse mit Vorlagendateien mit OpenDocument-Format.

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

Dateien in diesen Verzeichnissen müssen mit .odt oder .ods enden. NumberOfModelFilesFound=Anzahl der .odt / .ods Vorlagen in diesen Verzeichnissen. DescWeather=Diese Piktogramme werden bei verspäteten Tasks gemäss folgenden Werten angezeigt. +KeyForWebServicesAccess=Schlüssel um Web Services (Parameter "dolibarrkey" in webservices) zu benützen ThisForceAlsoTheme=Dieser Menu Manager übersteuert die Benutzereinstellung. Er funktioniert nicht auf allen Smartphones. Wähle einen anderen, falls Probleme auftauchen. ConnectionTimeout=Zeitüberschreitung in der Verbindung ResponseTimeout=Antwort Timeout @@ -278,7 +280,6 @@ DependsOn=Dieses Modul benötigt die folgenden Module RequiredBy=Diese Modul wird durch folgende Module verwendet PageUrlForDefaultValues=Sie müssen den relativen Pfad der Seiten-URL eingeben. Wenn Sie Parameter in die URL einschließen, werden die Standardwerte wirksam, wenn alle Parameter auf denselben Wert eingestellt sind. EnableDefaultValues=Eigene Standartwerte erlauben. -EnableOverwriteTranslation=Eigene Übersetzungen erlauben WarningSettingSortOrder=Warnung: Änderungen an der Standardsortierreihenfolge können zu Fehlern führen, falls das betreffende Feld nicht vorhanden ist. Falls dies passiert, entfernen sie das betreffende Feld oder stellen die den Defaultwert wieder her. ProductDocumentTemplates=Dokumentvorlagen zur Erstellung von Produktdokumenten WatermarkOnDraftExpenseReports=Wasserzeichen auf Entwurf von Ausgabenbelegen @@ -343,6 +344,7 @@ Module2000Desc=Ermöglicht die Bearbeitung von Textfeldern mit dem CKEditor (htm Module2200Desc=Mathematische Ausdrücke für Preise aktivieren Module2300Name=Geplante Aufträge Module2300Desc=Geplante Aufgaben (CronJobs, ChronoTable) verwalten. +Module2400Name=Ereignisse/Termine Module2400Desc=Ereignisse verfolgen. Lassen Sie Dolibarr automatische Ereignisse zur Verfolgung protokollieren oder nehmen Sie manuelle Ereignisse oder Besprechungen auf. Dies ist das Hauptmodul für ein gutes Management von Kunden- oder Lieferanten-Beziehungen. Module2500Desc=Document - / Electronic Content Management System. Deine Dokumente werden automatisch organisiert. Du kannst deine Dateien teilen. Module2660Desc=Aktivieren Sie den Dolibarr Webservice-Client (Kann verwendet werden, um Daten/Anfragen an externe Server zu übertragen. Nur Lieferantenbestellungen werden derzeit unterstützt.) @@ -364,6 +366,7 @@ Module55000Desc=Modul zur Erstellung von Online-Umfragen, Umfragen oder Abstimmu Module62000Name=Lieferbedingungen Module62000Desc=Hinzufügen von Funktionen zur Verwaltung von Lieferbedingungen (Incoterms) Module63000Desc=Hier kannst du deine Ressourcen (Drucker, Räume, Fahrzeuge) Kalenderereignissen zuweisen. +Module94160Name=Lieferungen Permission26=Angebote schliessen Permission61=Leistungen ansehen Permission62=Leistungen erstellen/bearbeiten @@ -395,7 +398,7 @@ Permission215=Lieferanten einrichten Permission255=Andere Passwörter ändern Permission272=Rechnungen anzeigen Permission273=Ausgabe Rechnungen -Permission301=Barcodes erzeugen und ändern. +Permission304=Barcodes erzeugen und ändern. Permission331=Lesezeichen einsehen Permission430=PHP Debug Bar verwenden Permission519=Löhne exportieren @@ -407,6 +410,7 @@ Permission651=Rechnungen für Rohmaterialien erzeugen und bearbeiten Permission652=Rechnungen für Rohmaterialien löschen Permission701=Spenden einsehen Permission771=Spesenabrechnungen einsehen (eigene und die der Untergebenen) +Permission1001=Warenbestände einsehen Permission1002=Warenlager erstellen/ändern Permission1121=Partnerofferten einsehen Permission1122=Partnerofferten erzeugen und bearbeiten @@ -422,6 +426,7 @@ Permission1232=Lieferantenrechnungen erzeugen und bearbeiten Permission1236=Kundenrechnungen, -attribute und -zahlungen exportieren Permission1421=Kundenaufträge mit Attributen exportieren Permission2414=Aktionen und Aufgaben anderer exportieren +Permission2503=Dokumente bestätigen oder löschen Permission20003=Urlaubsanträge löschen Permission23001=anzeigen cronjobs Permission23002=erstellen/ändern cronjobs diff --git a/htdocs/langs/de_CH/companies.lang b/htdocs/langs/de_CH/companies.lang index 1869e91605d..074c9fb606a 100644 --- a/htdocs/langs/de_CH/companies.lang +++ b/htdocs/langs/de_CH/companies.lang @@ -14,7 +14,6 @@ ThirdPartyContact=Geschäftspartner-Kontakt Companies=Unternehmen CountryIsInEEC=EU - Staat PriceFormatInCurrentLanguage=Währungsanzeige dieser Sprache -ThirdPartyName=Name des Geschäftspartners ThirdPartyEmail=E-Mail des Geschäftspartners ThirdPartyProspectsStats=Interessenten Statistik ThirdPartyType=Typ des Geschäftspartners diff --git a/htdocs/langs/de_CH/compta.lang b/htdocs/langs/de_CH/compta.lang index bd6208b3b00..348e7d96723 100644 --- a/htdocs/langs/de_CH/compta.lang +++ b/htdocs/langs/de_CH/compta.lang @@ -1,29 +1,43 @@ # Dolibarr language file - Source file is en_US - compta OptionModeTrue=Option Eingang-Ausgang +OptionModeTrueDesc=Der Umsatz wird über die Zahlungen (Datum der Zahlungen) berechnet. \nDie Aussagekraft der Zahlen ist nur gewährleistet, wenn die Pflege der Konten (Ein-/Ausgang) nachhaltig korrekt ist. +OptionModeVirtualDesc=In dieser Option berechnet sich der Umsatz über Zahlungen (Zahlungsdatum).
Die Gültigkeit der Zahlen ist nur bei Überprüfung der Zu- und Abgänge auf den Konten über Rechnungen gewährleistet. FeatureIsSupportedInInOutModeOnly=Dieses Feautre ist nur in der Soll-Haben-Option verfügbar (siehe Konfiguration des Rechnungswesen-Moduls) +MenuReportInOut=Ergebnis / Geschäftsjahr PaymentsNotLinkedToInvoice=Zahlungen mit keiner Rechnung und damit auch mit keinem Geschäftspartner verbunden Balance=Bilanz LT2SummaryES=EKSt. Übersicht VATCollected=Erhobene MwSt. +SocialContribution=Sozialabgabe oder Steuersatz +SocialContributions=Steuern- oder Sozialabgaben SocialContributionsDeductibles=Abzugsberechtigte Sozialabgaben/Steuern SocialContributionsNondeductibles=Nicht abzugsberechtigte Sozialabgaben/Steuern MenuTaxAndDividends=Steuern und Dividenden +MenuSocialContributions=Sozialabgaben/Steuern +ContributionsToPay=Sozialabgaben/Unternehmenssteuern zu bezahlen +PaymentSocialContribution=Sozialabgaben-/Steuer Zahlung PaymentVat=MwSt.-Zahlung VATPayment=MwSt.-Zahlung VATPayments=MwSt-Zahlungen +SocialContributionsPayments=Sozialabgaben-/Steuer Zahlungen ShowVatPayment=Zeige MwSt. Zahlung CustomerAccountancyCodeShort=Buchh.-Konto Kunde SupplierAccountancyCodeShort=Buchh.-Konto Lieferant ByThirdParties=Durch Geschäftspartner +ByUserAuthorOfInvoice=Durch Rechnungsersteller +CheckReceipt=Scheck erhalten +CheckReceiptShort=Scheck erhalten LastCheckReceiptShort=Letzte %s Scheckeinnahmen NoWaitingChecks=Keine Schecks warten auf Einlösung. +DeleteSocialContribution=Lösche Sozialabgaben-, oder Steuerzahlung CalcModeVATDebt=Modus %s Mwst. auf Engagement Rechnungslegung %s. CalcModeLT2Rec=Modus %sIRPF aufLieferantenrechnungen%s +RulesAmountWithTaxIncluded=- Angezeigte Beträge enthalten alle Steuern LT2ReportByCustomersES=Bericht von Geschäftspartner EKSt. VATReportByCustomersInInputOutputMode=Bericht zur vereinnahmten und bezahlten MwSt. nach Kunden -ThirdPartyMustBeEditAsCustomer=Geschäftspartner muss als Kunde definiert werden Pcg_type=PCG Typ Pcg_subtype=PCG Subtyp InvoiceLinesToDispatch=versandbereite Rechnungszeilen CalculationRuleDesc=Zur Berechnung der Gesamt-MwSt. gibt es zwei Methoden:
Methode 1 rundet die Steuer in jeder Zeile und addiert zum Schluss.
Methode 2 summiert alle Steuer-Zeilen und rundet am Ende.
Das endgültige Ergebnis kann sich in wenigen Cent unterscheiden. Standardmodus ist Modus %s. LinkedFichinter=Mit einem Eingriff verknüpfen +ImportDataset_tax_contrib=Sozialabgaben/Steuern diff --git a/htdocs/langs/de_CH/loan.lang b/htdocs/langs/de_CH/loan.lang index b190d16d150..bf440b29d71 100644 --- a/htdocs/langs/de_CH/loan.lang +++ b/htdocs/langs/de_CH/loan.lang @@ -1,11 +1,26 @@ # Dolibarr language file - Source file is en_US - loan +Loan=Kredit +Loans=Kredite +NewLoan=Neuer Kredit +ShowLoan=Zeige Kredit +PaymentLoan=Kreditauszahlung +LoanPayment=Kreditauszahlung ShowLoanPayment=Zeige Kreidtauszahlung +LoanCapital=Kapital +Interest=Zins +Nbterms=Anzahl der Bedingungen +Term=Laufzeit +LoanAccountancyCapitalCode=Buchhaltungskonto Kapital LoanAccountancyInsuranceCode=Buchhaltungskonto Kreditversicherung LoanAccountancyInterestCode=Buchhaltungskonto Kreditzins +ConfirmDeleteLoan=Bestätigen Sie das Löschen dieses Kredites +LoanDeleted=Kredit erfolgreich gelöscht +ConfirmPayLoan=Bestätigen Sie das Löschen dieses Kredites +LoanPaid=Kredit bezahlt ListLoanAssociatedProject=Kredite für dieses Projekt AddLoan=Erzeuge Kredit +FinancialCommitment=Finanzielle Verpflichtung +InterestAmount=Zins CapitalRemain=Restkapital -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Standard - Buchhaltungskonto Kapital -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Standard - Buchhaltungskonto Zins -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Standard - Buchhaltungskonto Kreditversicherung +ConfigLoan=Konfiguration des Modul Kredite CreateCalcSchedule=Finanzielle Verpflichtung anpassen. diff --git a/htdocs/langs/de_CH/main.lang b/htdocs/langs/de_CH/main.lang index 2d6cc56c9dd..8b888ed2bfa 100644 --- a/htdocs/langs/de_CH/main.lang +++ b/htdocs/langs/de_CH/main.lang @@ -83,15 +83,21 @@ Close=Schliessen CloseBox=Box vom Startbildschirm entfernen ConfirmSendCardByMail=Willst du diese Karte wirklich an %s mailen? Resiliate=Abschliessen +Cancel=Abbrechen +Validate=Bestätigen ValidateAndApprove=Freigeben und bestätigen NotValidated=Nicht validiert SaveAndStay=Speichern Hide=Verbergen Valid=Freigabe Upload=Hochladen +Select=Wählen Sie ResizeOrCrop=Skalieren oder Beschneiden +Recenter=Zentrieren NewObject=Erzeuge %s Title=Titel +RefOrLabel=Nr. oder Bezeichnung +Family=Familie DateOfLine=Datum DurationOfLine=Dauer Model=Dokumentenvorlage @@ -100,10 +106,15 @@ Connection=Anmeldung Alert=Warnung Card=Karte DateToday=Aktuelles Datum +DateCreation=Erstellungsdatum +DateModification=Änderungsdatum DateModificationShort=Änd.Datum DateLastModification=Zuletzt geändert am +DateValidation=Freigabedatum DateClosing=Schliessungsdatum DateOperationShort=Ausf.Datum +DateRequest=Anfragedatum +DatePayment=Zahlungsziel RegistrationDate=Benutzer registriert am UserCreation=Benutzer erzeugt am UserModification=Zuletzt bearbeitet am @@ -118,6 +129,8 @@ MinuteShort=min DefaultValues=Standardwerte PriceCurrency=Währung UnitPriceHTCurrency=Nettopreis +PriceU=VP +PriceUHT=VP (netto) PriceUTTC=E.P. (inkl. Steuern) AmountInvoiced=Verrechneter Betrag AmountHT=Betrag (exkl. MWST) @@ -157,6 +170,7 @@ DefaultTaxRate=Standard Steuersatz RemainToPay=Offener Betrag Module=Modul / Applikation Modules=Module / Applikationen +Ref=Nummer RefSupplier=Lieferantennummer RefPayment=Zahlungs-Nr. ActionsToDo=Aktionen zur Erledigung @@ -174,6 +188,7 @@ ActionsOnMember=Aktionen zu diesem Mitglied ActionsOnProduct=Vorgänge zu diesem Produkt ToDo=Zu erledigen Running=In Bearbeitung +RequestAlreadyDone=Anfrage bereits bekannt Generate=Erstelle DolibarrStateBoard=Datenbankstatistiken DolibarrWorkBoard=Offene Aktionen @@ -181,7 +196,10 @@ NoOpenedElementToProcess=Keine offenen Aktionen Categories=Suchwörter/Kategorien Category=Stichwort / Kategorie FromLocation=Von +ToDate=An OtherInformations=Weitere Informationen +ApprovedBy=genehmigt von +Approved=genehmigt Refused=zurückgewiesen ResultKo=Fehlschlag OpenAll=Offen (alle Typen) @@ -197,6 +215,7 @@ NoItemLate=Es gibt keine verspätete Artikel LoginEmail=Benutzer Email - Adresse LoginOrEmail=Benutzername oder Email - Adresse EnterLoginDetail=Gib die Zugangsdaten ein +AttachedFiles=Angehängte Dateien und Dokumente JoinMainDoc=Führe das Hauptdokument zusammen. Keyword=Stichwort Origin=Herkunft @@ -210,6 +229,7 @@ UndoExpandAll=Ausklappen rückgängig machen SeeAll=Zeige alles an CloseWindow=Fenster schliessen Priority=Wichtigkeit +MailSentBy=E-Mail Absender NotSent=Nicht gesendet SendAcknowledgementByMail=Bestätigungsemail senden SendMail=sende E-Mail @@ -222,6 +242,7 @@ RecordsModified=Geänderte Einträge: %s RecordsDeleted=Gelöschte Einträge: %s RecordsGenerated=Erzeugte Einträge: %s MoveBox=Box verschieben +Offered=angeboten CompleteOrNoMoreReceptionExpected=Vollständig oder keine Aktionen mehr erwartet YouCanChangeValuesForThisListFromDictionarySetup=Du kannst die Werte für diese Liste in Einstellungen -> Stammdaten anpassen. YouCanChangeValuesForThisListFrom=Du kannst die Werte für diese Liste im Menu %s einstellen. @@ -231,8 +252,10 @@ Screen=Bildschirm Signature=E-Mail-Signatur DateOfSignature=Unterschriftsdatum RootOfMedias=Stammverzeichnis für öffentliche Bilder (/medias) +Notes=Hinweise FreeLineOfType=Freitext vom Typ ReGeneratePDF=PDF erneut erzeugen +Merge=Verbinden DocumentModelStandardPDF=Standardvorlage (PDF) WarningYouAreInMaintenanceMode=Obacht, wir sind im Wartungsmodus. Nur der Benutzer "%s" kann Dolibarr im Moment nutzen. CoreErrorMessage=Hoppla, es ist ein Fehler aufgetreten. Dein Administrator kann mehr herausfinden, indem er die Logdateien durchgeht (oder in der Systemkonfiguration $dolibarr_main_prod auf '0' setzen) @@ -261,10 +284,12 @@ MyDashboard=Mein Dashboard SelectTargetUser=Wähle den Benutzer / Mitarbeiter SaveUploadedFileWithMask=Datei auf dem Server speichern mit dem Namen "%s" (oder "%s") OriginFileName=Original Dateiname +ViewPrivateNote=Zeige Hinweise ShowMoreLines=Mehr oder weniger Positionen anzeigen ShowTransaction=Zeige die Transaktion auf dem zugehörigen Bankkonto. ShowIntervention=Zeige Kundeneinsatz GoIntoSetupToChangeLogo=Gehen Sie zu "Start - Einstellungen - Firma / Organisation" um das Logo zu ändern. Gehen Sie zu "Start -> Einstellungen -> Anzeige" um es zu verstecken. +Denied=abgelehnt ListOf=Liste der %s GoodBye=Auf Wiedersehen! Sincerely=Mit freundlichen Grüssen @@ -285,8 +310,6 @@ BackOffice=Dolibarr ExportFilteredList=Exportiere gefilterte Positionen ExportList=Exportiere Positionen IncludeDocsAlreadyExported=Beziehe bereits exportierte Dokumente mit ein -ExportOfPiecesAlreadyExportedIsEnable=Bereits exportierte Dateien erneut exportieren ist "Ein". -ExportOfPiecesAlreadyExportedIsDisable=Bereits exportierte Dateien erneut exportieren ist "Aus". AllExportedMovementsWereRecordedAsExported=Alles erfolgreich exportiert:-) NotAllExportedMovementsCouldBeRecordedAsExported=Nicht alles konnte korrekt exportiert werden:-( Calendar=Kalender @@ -321,6 +344,7 @@ SelectMailModel=Wähle deine Email - Vorlage Select2ResultFoundUseArrows=Ich habe mehrere Resultate gefunden - wähle mit den Pfeiltasten aus. Select2Enter=Eingabe Select2MoreCharactersMore=Suchsyntax:
| OR (a|b)
* Alle Zeichen (a*b)
^ Beginnt mit (^ab)
$ Endet mit (ab$)
+SearchIntoProductsOrServices=Produkte oder Dienstleistungen SearchIntoCustomerOrders=Kundenbestellungen SearchIntoInterventions=Arbeitseinsätze SearchIntoExpenseReports=Spesenrapporte @@ -329,6 +353,7 @@ SearchIntoVendorPayments=Lieferantenzahlungen NbComments=Anzahl Kommentare CommentPage=Kommentare CommentDeleted=Kommentar entfernt +PayedBy=Einbezahlt von PayedTo=Bezahlt an Quarterly=Vierteljährlich Remote=Entfernt @@ -359,3 +384,9 @@ CustomReports=Eigene Berichte StatisticsOn=Statistiken zu SelectYourGraphOptionsFirst=Wähle den Diagrammtyp Measures=Masseinheiten +AffectTag=Assign a Tag +AffectUser=Assign a User +SetSupervisor=Set the supervisor +ProjectRole=Role assigned on each project/opportunity +TasksRole=Role assigned on each task (if used) +Terminate=Abschliessen diff --git a/htdocs/langs/de_CH/orders.lang b/htdocs/langs/de_CH/orders.lang index 881a8dc7a7f..c858a5d7731 100644 --- a/htdocs/langs/de_CH/orders.lang +++ b/htdocs/langs/de_CH/orders.lang @@ -59,9 +59,7 @@ SetShippingMode=Versandart wählen WithReceptionFinished=Mit abgeschlossener Lieferung StatusSupplierOrderCanceledShort=widerrufen StatusSupplierOrderValidatedShort=Bestätigt -StatusSupplierOrderApprovedShort=Genehmigt StatusSupplierOrderReceivedAllShort=Erhaltene Produkte StatusSupplierOrderCanceled=widerrufen StatusSupplierOrderDraft=Entwürfe (benötigen Bestätigung) StatusSupplierOrderValidated=Bestätigt -StatusSupplierOrderApproved=Genehmigt diff --git a/htdocs/langs/de_CH/propal.lang b/htdocs/langs/de_CH/propal.lang index 3c0a519948a..7db0ec23cb2 100644 --- a/htdocs/langs/de_CH/propal.lang +++ b/htdocs/langs/de_CH/propal.lang @@ -1,7 +1,5 @@ # Dolibarr language file - Source file is en_US - propal -ProposalsOpened=Offene Angebote ProposalCard=Angebotskarte -NewPropal=Neues Angebot Prospect=Lead LastPropals=%s neueste Angebote LastModifiedProposals=%s neueste geänderte Offerten @@ -14,10 +12,11 @@ PropalStatusNotSignedShort=Nicht unterzeichnet PropalsToClose=Zu schliessende Angebote ListOfProposals=Liste der Angebote ActionsOnPropal=Ereignisse zum Angebot +AddToDraftProposals=Zu Angebots-Entwurf hinzufügen DefaultProposalDurationValidity=Standardmässige Gültigkeitsdatuer (Tage) AvailabilityPeriod=Verfügbarkeitszeitraum SetAvailability=Verfügbarkeitszeitraum definieren OtherProposals=Andere Angebote -DefaultModelPropalToBill=Standard-Template, wenn Sie ein Angebot schliessen wollen (zur Verrechung) DefaultModelPropalClosed=Standard-Template, wenn sie ein Angebot schliessen wollen (ohne Rechnung) +DefaultModelPropalToBill=Standard-Template, wenn Sie ein Angebot schliessen wollen (zur Verrechung) ProposalCustomerSignature=Schriftliche Annahme, Firmenstempel, Datum und Unterschrift diff --git a/htdocs/langs/de_CH/salaries.lang b/htdocs/langs/de_CH/salaries.lang index 7d3f9fa423a..d661528186f 100644 --- a/htdocs/langs/de_CH/salaries.lang +++ b/htdocs/langs/de_CH/salaries.lang @@ -1,6 +1,4 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Buchhaltungskonto für Partner Benutzer -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Das Buchhaltungskonto auf der Benutzerkarte wird nur im Nebenbuch journalisiert. Dieser Eintrag wird im Hauptbuch Geführt. Weiter ist das auch das Standardkonto, falls auf der Benutzerkarte kein Konto eingetragen ist. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard - Buchhaltungskonto für Lohnzahlungen Salary=Lohn Salaries=Löhne diff --git a/htdocs/langs/de_CH/stripe.lang b/htdocs/langs/de_CH/stripe.lang new file mode 100644 index 00000000000..ae44362fd94 --- /dev/null +++ b/htdocs/langs/de_CH/stripe.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - stripe +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +TERMINAL_LOCATION=Location (address) for Stripe Terminals diff --git a/htdocs/langs/de_CH/trips.lang b/htdocs/langs/de_CH/trips.lang index 33e5c61c47d..1c87101d592 100644 --- a/htdocs/langs/de_CH/trips.lang +++ b/htdocs/langs/de_CH/trips.lang @@ -1,19 +1,19 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Spesenreport anzeigen -TripsAndExpenses=Reise- und Fahrtspesen -TripCard=Reisekosten Karte -AddTrip=Reisekostenabrechnung erstellen -ListOfTrips=Liste Reise- und Spesenabrechnungen -TypeFees=Spesen- und Kostenarten -ShowTrip=Spesenreport anzeigen -NewTrip=neue Reisekostenabrechnung -ListTripsAndExpenses=Liste Reise- und Spesenabrechnungen -ExpenseReportWaitingForApproval=Eine neue Reisekostenabrechnung ist zur Genehmigung vorgelegt worden -TripSociete=Information Firma -TF_TRIP=Spedition -ErrorDoubleDeclaration=Sie haben bereits eine andere Spesenabrechnung in einem ähnliche Datumsbereich erstellt. -VALIDATOR=verantwortlicher Benutzer für Genehmigung AUTHOR=gespeichert von +AddTrip=Reisekostenabrechnung erstellen BrouillonnerTrip=Spesenabrechnung rückgängig, auf den Status "Entwurf" -ExpenseReportsToPay=Spesenabrechnungen zu entrichten +ErrorDoubleDeclaration=Sie haben bereits eine andere Spesenabrechnung in einem ähnliche Datumsbereich erstellt. ExpenseReportDateStart=Beginndatum +ExpenseReportWaitingForApproval=Eine neue Reisekostenabrechnung ist zur Genehmigung vorgelegt worden +ExpenseReportsToPay=Spesenabrechnungen zu entrichten +ListOfTrips=Liste Reise- und Spesenabrechnungen +ListTripsAndExpenses=Liste Reise- und Spesenabrechnungen +NewTrip=neue Reisekostenabrechnung +ShowExpenseReport=Spesenreport anzeigen +ShowTrip=Spesenreport anzeigen +TripCard=Reisekosten Karte +TripSociete=Information Firma +TripsAndExpenses=Reise- und Fahrtspesen +TypeFees=Spesen- und Kostenarten +VALIDATOR=verantwortlicher Benutzer für Genehmigung +TF_TRIP=Spedition diff --git a/htdocs/langs/de_CH/users.lang b/htdocs/langs/de_CH/users.lang index 9f20d097abd..b5a0fd13dcb 100644 --- a/htdocs/langs/de_CH/users.lang +++ b/htdocs/langs/de_CH/users.lang @@ -20,8 +20,6 @@ MenuUsersAndGroups=Benutzer & Gruppen LastGroupsCreated=Die %s neuesten Benutzergruppen LastUsersCreated=%s neueste Benutzer NonAffectedUsers=Nicht betroffene Benutzer -LinkToCompanyContact=Mit Geschäftspartner/Kontakt verknüpfen -CreateDolibarrThirdParty=Neuen Geschäftspartner erstellen ExportDataset_user_1=Benutzer und Eigenschaften Reactivate=Reaktivieren CreateInternalUserDesc=Hier kannst du interne Benutzer erzeugen.\nExterne Benutzer erzeugst du in den Kontakten deiner Partner. @@ -34,6 +32,7 @@ ConfirmCreateThirdParty=Willst du wirklich für dieses Mitglied einen Partner er LoginToCreate=Zu erstellende Anmeldung NameToCreate=Name des neuen Geschäftspartners YourRole=Ihre Rolle +HierarchicalResponsible=Vorgesetzter UseTypeFieldToChange=Nutzen sie das Feld "Typ" zum ändern WeeklyHours=Geleistete Stunden pro Woche DisabledInMonoUserMode=Im Wartungsmodus deaktiviert diff --git a/htdocs/langs/de_DE/accountancy.lang b/htdocs/langs/de_DE/accountancy.lang index eeb63ab1489..521161d3f8f 100644 --- a/htdocs/langs/de_DE/accountancy.lang +++ b/htdocs/langs/de_DE/accountancy.lang @@ -5,7 +5,7 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Spaltentrennzeichen für die Exportdatei ACCOUNTING_EXPORT_DATE=Datumsformat der Exportdatei ACCOUNTING_EXPORT_PIECE=Stückzahl exportieren ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Mit globalem Konto exportieren -ACCOUNTING_EXPORT_LABEL=Exportiere Beschriftung +ACCOUNTING_EXPORT_LABEL=Exportiere Bezeichnung ACCOUNTING_EXPORT_AMOUNT=Exportiere Betrag ACCOUNTING_EXPORT_DEVISE=Exportiere Währung Selectformat=Wählen Sie das Format für die Datei @@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Art des Zeilenumbruchs wählen ACCOUNTING_EXPORT_PREFIX_SPEC=Präfix für den Dateinamen angeben ThisService=Diese Leistung ThisProduct=Dieses Produkt -DefaultForService=Standard für Leistung -DefaultForProduct=Standard für Produkt +DefaultForService=Standard für Leistungen +DefaultForProduct=Standard für Produkte ProductForThisThirdparty=Produkt für diesen Geschäftspartner ServiceForThisThirdparty=Leistungen für diesen Geschäftspartner CantSuggest=Kann keines vorschlagen @@ -59,6 +59,7 @@ MainAccountForSuppliersNotDefined=Standardkonto für Lieferanten die nicht im Se MainAccountForUsersNotDefined=Standardkonto für Benutzer ist im Setup nicht definiert MainAccountForVatPaymentNotDefined=Standardkonto für MwSt.-Zahlungen ist im Setup nicht definiert MainAccountForSubscriptionPaymentNotDefined=Standardkonto für wiederkehrende Zahlungen ist im Setup nicht definiert +UserAccountNotDefined=Buchungskonto für den Benutzer ist nicht im Setup definiert AccountancyArea=Bereich Buchhaltung AccountancyAreaDescIntro=Die Verwendung des Buchhaltungsmoduls erfolgt in mehreren Schritten: @@ -100,6 +101,7 @@ ShowAccountingAccount=Buchungskonto anzeigen ShowAccountingJournal=Buchhaltungsjournal anzeigen ShowAccountingAccountInLedger=Buchungskonto im Hauptbuch anzeigen ShowAccountingAccountInJournals=Buchungskonto in Journalen anzeigen +DataUsedToSuggestAccount=Daten, die verwendet werden, um ein Buchungskonto vorzuschlagen AccountAccountingSuggest=Vorgeschlagenes Buchungskonto MenuDefaultAccounts=Standardkonten MenuBankAccounts=Bankkonten @@ -125,6 +127,7 @@ WriteBookKeeping=Transaktionen in der Buchhaltung erfassen Bookkeeping=Hauptbuch BookkeepingSubAccount=Nebenbuch AccountBalance=Summen und Salden +AccountBalanceSubAccount=Saldo der Unterkonten ObjectsRef=Quellreferenz CAHTF=Gesamtbetrag Lieferant vor Steuern TotalExpenseReport=Gesamtausgaben Spesenabrechnung @@ -164,42 +167,45 @@ ACCOUNTANCY_COMBO_FOR_AUX=Combo-Liste für Nebenkonto aktivieren (kann langsam s 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=Welcher Zeitraum ist beim Buchhaltungstransfer standardmäßig ausgewählt? -ACCOUNTING_SELL_JOURNAL=Verkaufsjournal -ACCOUNTING_PURCHASE_JOURNAL=Einkaufsjournal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Variajournal -ACCOUNTING_EXPENSEREPORT_JOURNAL=Spesenabrechnungsjournal -ACCOUNTING_SOCIAL_JOURNAL=Sozialabgabenjournal +ACCOUNTING_SELL_JOURNAL=Verkaufsjournal (Verkäufe und Retouren) +ACCOUNTING_PURCHASE_JOURNAL=Einkaufsjournal (Käufe und Retouren) +ACCOUNTING_BANK_JOURNAL=Kassenbuch (Einnahmen und Ausgaben) +ACCOUNTING_EXPENSEREPORT_JOURNAL=Spesen-Abrechnungs-Journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=Sammeljournal ACCOUNTING_HAS_NEW_JOURNAL=Eröffnungsjournal +ACCOUNTING_INVENTORY_JOURNAL=Bestandsjournal +ACCOUNTING_SOCIAL_JOURNAL=Sozialabgabenjournal ACCOUNTING_RESULT_PROFIT=Ergebnisabrechnungskonto (Gewinn) ACCOUNTING_RESULT_LOSS=Ergebnisabrechnungskonto (Verlust) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal für Abschlussbuchungen -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Buchhaltung Konto der Überweisung +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Konto (aus dem Kontenplan), das als Verrechnungskonto/Transferkonto für Banküberweisungen verwendet werden soll TransitionalAccount=Überweisungskonto -ACCOUNTING_ACCOUNT_SUSPENSE=Verrechnungskonto/Zwischenkonto -DONATION_ACCOUNTINGACCOUNT=Buchungskonto für Spenden -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Buchungskonto für Abonnements +ACCOUNTING_ACCOUNT_SUSPENSE=Konto (aus dem Kontenplan), das als Verrechnungsonto/Zwischenkonto für nicht zugewiesene Gelder verwendet werden soll, die entweder erhalten oder gezahlt wurden, d. h. Gelder im Status „Warten“ +DONATION_ACCOUNTINGACCOUNT=Konto (aus dem Kontenplan), das zur Erfassung von Spenden verwendet werden soll (Spendenmodul) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Konto (aus dem Kontenplan), das zur Erfassung von Mitgliedsbeiträgen verwendet werden soll (Mitgliedschaftsmodul - wenn die Mitgliedschaft ohne Rechnung erfasst wird) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Standard-Buchungskonto zur Erfassung einer Kundenanzahlung +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Konto (aus dem Kontenplan), das als Standardkonto zur Erfassung von Kundenanzahlungen verwendet werden soll UseAuxiliaryAccountOnCustomerDeposit=Debitorenkonto als Einzelkonto im Nebenbuch für Anzahlungspositionen hinterlegen (bei Deaktivierung bleibt Einzelkonto für Anzahlungspositionen leer) -ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Standard-Buchungskonto zur Erfassung der Lieferantenkaution +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Konto (aus dem Kontenplan), das als Standard verwendet werden soll UseAuxiliaryAccountOnSupplierDeposit=Lieferantenkonto als Einzelkonto im Nebenbuch für Anzahlungsbuchungen speichern (falls deaktiviert, bleibt Einzelkonto für Anzahlungsbuchungen leer) +ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Standard-Buchungskonto zur Erfassung der vom Kunden einbehaltenen Garantie -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_PRODUCT_BUY_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die im selben Land gekauften Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für in der EWG aus einem anderen EWG-Land gekauften Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die aus einem anderen Land gekauften und importierten Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die verkauften Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die von der EWG in ein anderes EWG-Land verkauften Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die verkauften und in ein anderes Land exportierten Produkte verwendet werden soll (wird verwendet, wenn nicht im Produktblatt definiert) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Standard-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) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die im selben Land gekauften Leistungen verwendet werden soll (wird verwendet, wenn nicht im Serviceblatt definiert) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für in der EWG aus einem anderen EWG-Land gekauften Leistungen verwendet werden soll (wird verwendet, wenn nicht im Leistungsblatt definiert) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die aus dem übrigen Ausland gekauften und importierten Leistungen verwendet werden soll (wird verwendet, wenn nicht im Leistungsblatt definiert) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die verkauften Leistungen verwendet werden soll (wird verwendet, wenn nicht im Leistungsblatt definiert) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die von der EWG in ein anderes EWG-Land verkauften Leistungen verwendet werden soll (wird verwendet, wenn nicht im Leistungsblatt definiert) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die verkauften und in ein anderes Land exportierten Leistungen verwendet werden soll (wird verwendet, wenn nicht im Dienstleistungsblatt definiert) Doctype=Dokumententyp Docdate=Datum @@ -214,7 +220,8 @@ Codejournal=Journal JournalLabel=Journal-Bezeichnung NumPiece=Teilenummer TransactionNumShort=Buchungsnr. -AccountingCategory=Benutzerdefinierte Gruppe +AccountingCategory=Benutzerdefinierte Kontengruppe +AccountingCategories=Benutzerdefinierte Kontengruppe GroupByAccountAccounting=Gruppieren nach Hauptbuchkonto GroupBySubAccountAccounting=Gruppieren nach Nebenbuchkonto AccountingAccountGroupsDesc=Hier können Kontengruppen definiert werden. Diese werden für personaliserte Buchhaltungsreports verwendet. @@ -262,6 +269,7 @@ ShowSubtotalByGroup=Zwischensumme nach Ebene anzeigen Pcgtype=Kontenklasse 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. +AccountingCategoriesDesc=Benutzerdefinierte Kontengruppen können verwendet werden, um mehrere Buchhaltungskonten unter einem Namen zu gruppieren, um die Verwendung von Filtern oder das Erstellen von benutzerdefinierten Berichten zu vereinfachen. Reconcilable=ausgleichsfähig @@ -269,9 +277,9 @@ TotalVente=Gesamtumsatz vor Steuern TotalMarge=Gesamtumsatzrendite 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. +DescVentilMore=Wenn Sie vordefinierte Produkte oder Leistungen verwenden und das Buchungskonto auf der Produkt-/Leistungskarte festlegen, kann die Anwendung in den meisten Fällen die Kontierung Ihrer Rechnungsposten mit nur in einem Klick auf die Schaltfläche "%s" vornehmen. Wenn das Konto nicht auf der Produkt-/Servicekarte definiert wurde oder Sie noch Positionen haben, die nicht an ein Konto gebunden sind, müssen Sie eine manuelle Kontierung via " %s" vornehmen. DescVentilDoneCustomer=Liste der Positionen der Kundenrechnungen und die Buchungskonten der Produkte -DescVentilTodoCustomer=Nicht bereits kontierte Rechnungspositionen mit einem Erlös-Konto der Buchhaltung kontieren +DescVentilTodoCustomer=Nicht bereits kontierte Rechnungspositionen mit einem Erlöskonto der Buchhaltung kontieren ChangeAccount=Buchungskonto für Produkte/Leistungen für die ausgewählten Positionen in das folgende Buchungskonto ändern: Vide=- DescVentilSupplier=Übersicht der unkontierten und kontierten Positionen aus Lieferantenrechnungen (nur Datensätze, die noch nicht in die Buchhaltung übertragen wurden, sind sichtbar). @@ -291,6 +299,7 @@ DescValidateMovements=Es sind danach keinerlei Änderungen oder Löschungen mehr ValidateHistory=Automatisch kontieren AutomaticBindingDone=Automatische Zuordnungen durchgeführt (%s) - Automatische Zuordnung für einige Datensätze nicht möglich (%s) +DoManualBindingForFailedRecord=Sie müssen eine manuelle Verknüpfung für die %s-Zeile(n) vornehmen, die nicht automatisch verknüpft wurden. ErrorAccountancyCodeIsAlreadyUse=Fehler, Sie können dieses Buchungskonto nicht löschen, da es benutzt wird. MvtNotCorrectlyBalanced=Buchungssalden nicht ausgeglichen. Soll = %s & Haben = %s @@ -325,6 +334,7 @@ AccountingJournalType4=Bank AccountingJournalType5=Spesenabrechnungen AccountingJournalType8=Bestand AccountingJournalType9=Eröffnungsbuchungen +GenerationOfAccountingEntries=Erstellung von Buchhaltungseinträgen ErrorAccountingJournalIsAlreadyUse=Dieses Journal wird bereits verwendet AccountingAccountForSalesTaxAreDefinedInto=Hinweis: Buchaltungskonten für Steuern sind im Menü %s - %s definiert NumberOfAccountancyEntries=Anzahl der Einträge @@ -332,10 +342,14 @@ NumberOfAccountancyMovements=Anzahl der Buchungen ACCOUNTING_DISABLE_BINDING_ON_SALES=Deaktivieren Sie die Bindung und Übertragung in der Buchhaltung bei Verkäufen (Kundenrechnungen werden in der Buchhaltung nicht berücksichtigt). ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deaktivieren Sie die Bindung und Übertragung in der Buchhaltung bei Einkäufen (Lieferantenrechnungen werden in der Buchhaltung nicht berücksichtigt). ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Deaktivieren Sie die Bindung und Übertragung in der Buchhaltung für Spesenabrechnungen (Spesenabrechnungen werden bei der Buchhaltung nicht berücksichtigt). +ACCOUNTING_ENABLE_LETTERING=Aktivieren Sie die Abstimmungsfunktion in der Buchhaltung +ACCOUNTING_ENABLE_AUTOLETTERING=Aktivieren Sie den automatischen Buchungsabgleich bei der Übergabe an die Buchhaltung ## Export +NotExportLettering=Beim Generieren der Datei die Abstimmungsinformationen nicht exportieren NotifiedExportDate=Exportierte Zeilen als exportiert kennzeichnen (um eine Zeile zu ändern, müssen Sie die gesamte Transaktion löschen und erneut in die Buchhaltung übertragen) NotifiedValidationDate=Festschreiben der exportierten Einträge (gleiche Wirkung wie die Funktion "%s", Änderungen und Löschungen der Zeilen sind danach DEFINITIV NICHT möglich) +NotifiedExportFull=Dokumente exportieren? DateValidationAndLock=Festschreibungsdatum ConfirmExportFile=Exportdatei der Buchhaltung erstellen? ExportDraftJournal=Entwurfsjournal exportieren @@ -392,7 +406,7 @@ 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. +SaleEECWithoutVATNumber=Verkauf in der EWG ohne Mehrwertsteuer, ohne dass die Umsatzsteuer-ID des Geschäftspartners definiert ist. Es wird stattdessen auf das Buchungskonto für Standardverkäufe zurückgegriffen. Sie können die Umsatzsteuer-ID des Geschäftspartners korrigieren oder das zur Kontierung vorgeschlagene Buchungskonto bei Bedarf ändern. ForbiddenTransactionAlreadyExported=Unzulässig: Die Transaktion wurde bereits freigegeben und/oder exportiert. ForbiddenTransactionAlreadyValidated=Unzulässig: Die Transaktion wurde bereits freigegeben. ## Dictionary @@ -401,7 +415,11 @@ Calculated=berechnet Formula=Formel ## Reconcile +LetteringAuto=Automatisch abgleichen +LetteringManual=Manuell abgleichen Unlettering=Abgleich aufheben +UnletteringAuto=Automatischen Abgleich aufheben +UnletteringManual=Manuellen Abgleich aufheben AccountancyNoLetteringModified=Kein Abgleich geändert AccountancyOneLetteringModifiedSuccessfully=Ein Abgleich wurde erfolgreich geändert AccountancyLetteringModifiedSuccessfully=%s Abgleiche erfolgreich modifiziert @@ -410,8 +428,9 @@ AccountancyOneUnletteringModifiedSuccessfully=Ein Abgleich wurde erfolgreich ge AccountancyUnletteringModifiedSuccessfully=%s aufgehobene Abgleiche erfolgreich modifiziert ## Confirm box -ConfirmMassUnlettering=Bestätigung der Massenaktion Abgleich aufheben -ConfirmMassUnletteringQuestion=Möchten Sie den Abgleich für die ausgewählten %s-Datensätze wirklich rückgängig machen? +ConfirmMassUnletteringAuto=Bestätigung für das Aufheben aller automatischen Abgleiche +ConfirmMassUnletteringManual=Bestätigung für das Aufheben aller manuellen Abgleiche +ConfirmMassUnletteringQuestion=Möchten Sie den Abgleich für die ausgewählten %s Datensätze wirklich rückgängig machen? ConfirmMassDeleteBookkeepingWriting=Bestätigung für Massenlöschen ConfirmMassDeleteBookkeepingWritingQuestion=Dadurch wird die Transaktion aus der Buchhaltung gelöscht (alle Zeilen, die sich auf dieselbe Transaktion beziehen, werden gelöscht). Möchten Sie die %s ausgewählten Datensätze wirklich löschen? @@ -431,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Fehlende Übereinstimmung im Code für Abglei AccountancyErrorMismatchBalanceAmount=Der Saldo (%s) ist ungleich 0 AccountancyErrorLetteringBookkeeping=Bei den Transaktionen sind Fehler aufgetreten: %s ErrorAccountNumberAlreadyExists=Das Buchungskonto %s existiert bereits +ErrorArchiveAddFile=Die Datei „%s“ kann nicht im Archiv abgelegt werden ## Import ImportAccountingEntries=Buchaltungseinträge @@ -457,6 +477,7 @@ FECFormatMulticurrencyCode=Mehrwährungs-Code (Idevise) 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 +DocsAlreadyExportedAreExcluded=Bereits exportierte Dokumente sind ausgeschlossen +ClickToHideAlreadyExportedLines=Klicken Sie hier, um bereits exportierte Positionen auszublenden NAccounts=%s Konten diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index d1a296b7370..68fcfa043dc 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Client Sortierreihenfolge WarningModuleNotActive=Modul %s muss aktiviert sein WarningOnlyPermissionOfActivatedModules=Achtung, hier werden nur Berechtigungen im Zusammenhang mit aktivierten Module angezeigt. Weitere Module können Sie unter Start->Einstellungen-Module aktivieren. DolibarrSetup=Dolibarr Installation oder Upgrade -InternalUser=Interner Benutzer -ExternalUser=Externer Benutzer InternalUsers=Interne Benutzer ExternalUsers=Externe Benutzer UserInterface=Benutzeroberfläche @@ -160,10 +158,10 @@ SystemToolsArea=Systemwerkzeugsübersicht SystemToolsAreaDesc=In diesem Bereich finden Sie die Verwaltungsfunktionen. Verwenden Sie das Menü zur Auswahl der gesuchten Funktion. Purge=Bereinigen PurgeAreaDesc=Auf dieser Seite können Sie alle von Dolibarr erzeugten oder gespeicherten Dateien (temporäre Dateien oder alle Dateien im Verzeichnis %s ) löschen. Die Verwendung dieser Funktion ist in der Regel nicht erforderlich. Es wird als Workaround für Benutzer bereitgestellt, deren Dolibarr von einem Anbieter gehostet wird, der keine Berechtigungen zum löschen von Dateien anbietet, die vom Webserver erzeugt wurden. -PurgeDeleteLogFile=Löschen der Protokolldateien, einschließlich %s, die für das Syslog-Modul definiert wurden (kein Risiko Daten zu verlieren) +PurgeDeleteLogFile=Protokolldateien löschen, einschließlich %s, die für das Syslog-Modul definiert wurden (kein Risiko Daten zu verlieren) PurgeDeleteTemporaryFiles=Löscht alle Protokoll- und temporären Dateien (kein Risiko, Daten zu verlieren). Parameter können 'tempfilesold', 'logfiles' oder beide 'tempfilesold + logfiles' sein. Hinweis: Das Löschen temporärer Dateien erfolgt nur, wenn das temporäre Verzeichnis vor mehr als 24 Stunden erstellt wurde. -PurgeDeleteTemporaryFilesShort=Log und temporäre Dateien löschen (kein Risiko von Datenverlust) -PurgeDeleteAllFilesInDocumentsDir=Alle Dateien im Verzeichnis: %s löschen:
Dadurch werden alle erzeugten Dokumente löschen, die sich auf verknüpfte (Dritte, Rechnungen usw....), Dateien, die in das ECM Modul hochgeladen wurden, Datenbank, Backup, Dumps und temporäre Dateien beziehen. +PurgeDeleteTemporaryFilesShort=Log und temporäre Dateien löschen (kein Risiko Daten zu verlieren) +PurgeDeleteAllFilesInDocumentsDir=Alle Dateien im Verzeichnis: %s löschen:
Gelöscht werden alle erzeugten Dokumente zu verknüpften Objekten (Angebote, Rechnungen usw....), alle Dateien, die in das ECM Modul hochgeladen wurden, sowie Datenbank Backup-Dateien und temporäre Dateien. PurgeRunNow=Jetzt bereinigen PurgeNothingToDelete=Keine zu löschenden Verzeichnisse oder Dateien PurgeNDirectoriesDeleted=%s Datei(en) oder Verzeichnis(se) gelöscht. @@ -205,7 +203,7 @@ ExtendedInsert=Erweiterte INSERTS NoLockBeforeInsert=Keine Sperrbefehle (Lock) für INSERT DelayedInsert=Verzögerte INSERTS EncodeBinariesInHexa=Hexadezimal-Codierung für Binärdaten -IgnoreDuplicateRecords=Fehler zu doppelten Zeiten ignorieren (INSERT IGNORE) +IgnoreDuplicateRecords=Fehler zu doppelten Datensätzen 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 @@ -287,13 +285,14 @@ NewByMonth=Neu nach Monat Emails=E-Mail EMailsSetup=E-Mail-Einstellungen EMailsDesc=Auf dieser Seite können Sie Parameter oder Optionen für das Senden von E-Mails festlegen. -EmailSenderProfiles=E-Mail-Signaturen +EmailSenderProfiles=E-Mail-Absenderprofile EMailsSenderProfileDesc=Sie können diesen Bereich leer lassen. Wenn Sie hier E-Mail-Adressen angeben, werden diese beim Schreiben einer neuen E-Mail in die Liste der möglichen Absender aufgenommen. 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 in Unix-Umgebungen) MAIN_MAIL_EMAIL_FROM=Absender-Adresse für automatisch erstellte E-Mails (Standardwert in php.ini: %s) +EMailHelpMsgSPFDKIM=Um zu verhindern, dass Dolibarr-E-Mails als Spam eingestuft werden, stellen Sie sicher, dass der Server per SPF- und DKIM-Konfiguration autorisiert ist, E-Mails von dieser Adresse zu senden MAIN_MAIL_ERRORS_TO=Standard-E-Mail-Adresse für Fehlerrückmeldungen (beispielsweise unzustellbare E-Mails) MAIN_MAIL_AUTOCOPY_TO= Blindkopie (BCC) aller gesendeten E-Mails an MAIN_DISABLE_ALL_MAILS=Alle E-Mail-Funktionen deaktivieren (für Test- oder Demonstrationszwecke) @@ -394,7 +393,7 @@ FollowingSubstitutionKeysCanBeUsed=
Lesen Sie die Wiki Dokumentation um zu wi FullListOnOnlineDocumentation=https://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=Reihenfolge von Vor- und Nachname DescWeather=Die folgenden Symbole werden auf der Startseite angezeigt, wenn die entsprechenden Toleranzwerte erreicht werden: -KeyForWebServicesAccess=Schlüssel um Web Services (Parameter "dolibarrkey" in webservices) zu benützen +KeyForWebServicesAccess=Schlüssel um Web Services zu nutzen (Parameter "dolibarrkey" in webservices) TestSubmitForm=Formular Eingabeüberprüfung ThisForceAlsoTheme=Wenn Sie dieses Menü verwenden, verwendet der Manager auch ein eigenes Design, unabhängig von der Wahl des Benutzer. Auch dieser auf Smartphones spezialisierte Menü-Manager funktioniert nicht auf allen Smartphones. Verwenden Sie einen anderen Menü-Manager, wenn Sie Probleme mit Ihrem haben. ThemeDir=Verzeichnis Layout-Vorlagen @@ -413,7 +412,7 @@ PDFRulesForSalesTax=Regeln für Umsatzsteuer/MwSt. PDFLocaltax=Regeln für %s HideLocalTaxOnPDF=Steuersatz %s in der Spalte Verkauf Steuer/MwSt. ausblenden HideDescOnPDF=Produktbeschreibung ausblenden -HideRefOnPDF=Artikelnummer nicht anzeigen +HideRefOnPDF=Produkt-Ref.Nr. ausblenden HideDetailsOnPDF=Details in den Produktpositionen ausblenden PlaceCustomerAddressToIsoLocation=Benutze Standardposition in Frankreich (La Poste) für Position der Kundenadresse Library=Bibliothek @@ -439,8 +438,10 @@ Unique=Einmalig Boolean=Boolean (ein Kontrollkästchen) ExtrafieldPhone = Telefon ExtrafieldPrice = Preis (Feld mit automatisch angehängtem Währungszeichen) +ExtrafieldPriceWithCurrency=Preis mit Währung ExtrafieldMail = E-Mail (Feld mit automatischer E-Mail-Syntaxprüfung) ExtrafieldUrl = URL (Benutzereingabe wird automatisch zum Hyperlink) +ExtrafieldIP = IP ExtrafieldSelect = Dropdownliste (nur eine Option auswählbar) ExtrafieldSelectList = Dropdownliste aus DB-Tabelle (nur eine Option auswählbar) ExtrafieldSeparator=Trennzeichen (kein Feld) @@ -501,7 +502,8 @@ WarningPHPMail=WARNUNG: Das Setup zum Senden von E-Mails aus der Anwendung verwe WarningPHPMailA=- Die Verwendung des Servers des E-Mail-Dienstanbieters erhöht die Vertrauenswürdigkeit Ihrer E-Mail, sodass die Zustellbarkeit erhöht wird, ohne als SPAM gekennzeichnet zu werden WarningPHPMailB=- Bei einigen E-Mail-Dienstanbietern (wie Yahoo) können Sie keine E-Mails von einem anderen Server als deren eigenen Server senden. Ihr aktuelles Setup verwendet den Server der Anwendung zum Senden von E-Mails und nicht den Server Ihres E-Mail-Anbieters. Einige Empfänger (die mit dem restriktiven DMARC-Protokoll kompatibel sind) fragen Ihren E-Mail-Anbieter, ob sie Ihre E-Mail und einige E-Mail-Anbieter akzeptieren können (wie Yahoo) antwortet möglicherweise mit "Nein", da der Server nicht ihnen gehört. Daher werden möglicherweise einige Ihrer gesendeten E-Mails nicht zur Zustellung angenommen (achten Sie auch auf das Sendekontingent Ihres E-Mail-Anbieters). WarningPHPMailC=- Interessant ist auch die Verwendung des SMTP-Servers Ihres eigenen E-Mail-Dienstanbieters zum Senden von E-Mails, sodass alle von der Anwendung gesendeten E-Mails auch in dem Verzeichnis "Gesendet" Ihrer Mailbox gespeichert werden. -WarningPHPMailD=Es wird empfohlen, die Versandart von E-Mails auf den Wert „SMTP“ zu ändern. Wenn Sie wirklich die Standardmethode "PHP" zum Senden von E-Mails beibehalten möchten, ignorieren Sie diese Warnung oder deaktivierten Sie sie, indem Sie die Konstante MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP in Start - Einstellungen - Erweiterte Einstellungen auf 1 setzen. +WarningPHPMailD=Es wird daher empfohlen, die Versandart von E-Mails auf den Wert „SMTP“ zu ändern. +WarningPHPMailDbis=Wenn Sie wirklich die standardmäßige "PHP"-Methode zum Senden von E-Mails beibehalten möchten, ignorieren Sie einfach diese Warnung oder entfernen Sie sie, indem Sie %shier klicken%s. WarningPHPMail2=Wenn Ihr E-Mail-SMTP-Anbieter den E-Mail-Client auf einige IP-Adressen beschränken muss (sehr selten), dann ist dies die IP-Adresse des Mail User Agent (MUA) für ihr Dolibarr-System: %s. WarningPHPMailSPF=Wenn die Domain in Ihrer Absender-E-Mail-Adresse durch einen SPF-Eintrag geschützt ist (beim Domain-Registrar zu erfragen), müssen dem SPF-Eintrag im DNS Ihrer Domain die folgenden IP-Adressen hinzugefügt werden: %s . ActualMailSPFRecordFound=Tatsächlicher SPF-Eintrag gefunden (für E-Mail %s): %s @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
Beispiel:
Das Formular zum Erstellen ein PageUrlForDefaultValuesList=
Beispiel:
Auf der Seite, auf der Geschäftspartner aufgelistet sind, ist %s.
Geben Sie für die URL der externen Module, die im benutzerdefinierten Verzeichnis installiert sind, nicht "custom/" an. Verwenden Sie daher a Pfad wie mymodule/mypagelist.php und nicht custom/mymodule/mypagelist.php.
Wenn Sie nur dann einen Standardwert wünschen, wenn die URL einen Parameter hat, können Sie %s verwenden AlsoDefaultValuesAreEffectiveForActionCreate=Beachten Sie auch, dass das Überschreiben von Standardwerten für die Formularerstellung nur für Seiten funktioniert, die korrekt gestaltet wurden (also mit dem Parameter action = create or presend ...). EnableDefaultValues=Anpassung der Standardwerte ermöglichen -EnableOverwriteTranslation=Verwendung der eigenen Übersetzung aktivieren +EnableOverwriteTranslation=Anpassung von Übersetzungen zulassen GoIntoTranslationMenuToChangeThis=Für den Schlüssel mit diesem Code wurde eine Übersetzung gefunden. Um diesen Wert zu ändern, müssen Sie ihn in der Home-Setup-Übersetzung bearbeiten. WarningSettingSortOrder=Warnung: Änderung an der Standardsortierreihenfolge können zu Fehlern führen, falls das betreffende Feld nicht vohanden ist. Falls dies passiert, entfernen sie das betreffende Feld oder stellen die den Defaultwert wieder her. Field=Feld @@ -641,13 +643,15 @@ Module2200Name=Dynamische Preise Module2200Desc=Verwenden Sie mathematische Ausdrücke für die automatische Generierung von Preisen. Module2300Name=Geplante Aufgaben Module2300Desc=Verwaltung geplanter Aufgaben (Cron oder chrono Tabelle) -Module2400Name=Ereignisse/Termine +Module2400Name=Agenda (Ereignisse/Termine) Module2400Desc=Modul zur Terminplanung und Ereignissaufzeichnung: Protokollieren Sie automatisch Ereignisse wie beispielsweise Änderungen an Produktdatensätzen zu Verfolgungszwecken oder tragen Sie Termine manuell ein.\nDies ist ein wichtiges Modul für ein gutes Kunden- und/oder Lieferantenbeziehungsmanagement. +Module2430Name=Kalender-Buchungssystem +Module2430Desc=Stellen Sie einen Online-Kalender bereit, damit jeder Besprechungen in vordefinierten Bereichen oder Verfügbarkeiten buchen kann. Module2500Name=DMS/ECM Module2500Desc=Speicherung und Verteilung von Dokumenten. Automatische organisation der generierten oder gespeicherten Dokumente. Teilen Sie sie bei Bedarf. Module2600Name=API/Webservice (SOAP Server) Module2600Desc=Aktivieren Sie Dolibarr SOAP Server, unterstütztes API-Service. -Module2610Name=API/Web Services (REST Server) +Module2610Name=API/Webservices (REST Server) Module2610Desc=Aktiviere der Dolibarr REST Serverdienst Module2660Name=WebServices aufrufen (SOAP Client) Module2660Desc=Aktivieren des Dolibarr-Webdienst-Clients \n(Kann verwendet werden, um Daten / Anforderungen an externe Server zu senden. Derzeit werden nur Bestellungen unterstützt.) @@ -658,6 +662,8 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind Konvertierung Module3200Name=Unveränderliche Archive Module3200Desc=Aktivieren Sie ein unveränderliches Protokoll von Geschäftsereignissen. Ereignisse werden in Echtzeit archiviert. Das Protokoll ist eine schreibgeschützte Tabelle mit verketteten Ereignissen, die exportiert werden können. Dieses Modul kann für einige Länder zwingend erforderlich sein. +Module3300Name=Module-Builder +Module3200Desc=Aktivieren Sie ein unveränderliches Protokoll von Geschäftsereignissen. Ereignisse werden in Echtzeit archiviert. Das Protokoll ist eine schreibgeschützte Tabelle mit verketteten Ereignissen, die exportiert werden können. Dieses Modul kann für einige Länder zwingend erforderlich sein. Module3400Name=Soziale Netzwerke Module3400Desc=Aktiviert Felder für soziale Netzwerke für Dritte und Adressen (Skype, Twitter, Facebook, ...). Module4000Name=Personal @@ -697,7 +703,8 @@ Module60000Desc=Modul zur Verwaltung von Kommissionen Module62000Name=Incoterms Module62000Desc=Funktionen zum Verwalten von Incoterms hinzufügen Module63000Name=Ressourcen -Module63000Desc=Verwalten Sie Ressourcen (Drucker, Autos, Räume, ...) für zugeordnete Ereignisse +Module63000Desc=Verwaltung von Ressourcen (Drucker, Autos, Räume, ...) für zugeordnete Ereignisse +Module94160Name=Wareneingänge Permission11=Rechnungen einsehen Permission12=Rechnungen erstellen/bearbeiten Permission13=Ungültige Kundenrechnungen @@ -842,9 +849,9 @@ Permission286=Kontakte exportieren Permission291=Tarife einsehen Permission292=Berechtigungen der Tarife einstellen Permission293=Kundentarife ändern -Permission300=Barcodes anzeigen -Permission301=Barcodes erstellen/bearbeiten -Permission302=Barcodes löschen +Permission301=PDF-Seiten mit Barcodes generieren +Permission304=Barcodes erstellen/bearbeiten +Permission305=Barcodes löschen Permission311=Leistungen einsehen Permission312=Leistung/Abonnement einem Vertrag zuordnen Permission331=Lesezeichen anzeigen @@ -907,7 +914,7 @@ Permission776=Spesenabrechnung bezahlen Permission777=Alle Spesenabrechnungen einsehen (auch die von nicht unterstellten Mitarbeitern) Permission778=Spesenabrechnungen aller erstellen/bearbeiten Permission779=Spesenabrechnung exportieren -Permission1001=Warenbestände einsehen +Permission1001=Lagerbestände einsehen Permission1002=Warenlager erstellen/bearbeiten Permission1003=Warenlager löschen Permission1004=Lagerbewegungen einsehen @@ -962,22 +969,23 @@ Permission2413=Ereignisse (Termine/Aufgaben) Anderer löschen Permission2414=Ereignisse (Termine/Aufgaben) Anderer exportieren Permission2501=Dokumente herunterladen oder einsehen Permission2502=Dokumente herunterladen -Permission2503=Dokumente bestätigen oder löschen +Permission2503=Dokumente hochladen oder löschen Permission2515=Dokumentverzeichnisse verwalten Permission2801=FTP-Client im Lesemodus nutzen (nur ansehen und herunterladen) Permission2802=FTP-Client im Schreibmodus nutzen (Dateien löschen oder hochladen) Permission3200=Eingetragene Ereignisse und Fingerprints lesen Permission3301=Neues Module erstellen -Permission4001=Kompetenz/Job/Position einsehen -Permission4002=Kompetenz/Job/Position erstellen/bearbeiten -Permission4003=Kompetenz/Job/Position löschen -Permission4020=Bewertungen einsehen -Permission4021=Erstellen/bearbeiten Sie Ihre Bewertung -Permission4022=Bewertung freigeben -Permission4023=Bewertung löschen -Permission4030=Siehe Vergleichsmenü +Permission4001=Kompetenz/Stelle/Position einsehen +Permission4002=Kompetenz/Stelle/Position erstellen/bearbeiten +Permission4003=Kompetenz/Stelle/Position löschen +Permission4021=Bewertungen einsehen (Ihre und die Ihrer Untergebenen) +Permission4022=Bewertungen erstellen/ändern +Permission4023=Bewertung freigeben +Permission4025=Bewertung löschen +Permission4028=Siehe Vergleichsmenü Permission4031=Persönliche Daten einsehen Permission4032=Persönliche Daten schreiben +Permission4033=Alle Bewertungen einsehen (auch die von nicht unterstellten Benutzern) Permission10001=Website-Inhalt einsehen Permission10002=Erstelle/Bearbeite Website-Inhalte (HTML und JavaScript) Permission10003=Erstelle/Bearbeite Website-Inhalte (dynamischer PHP-Code). Gefährlich, dies muss auf ausgewählte Entwickler beschränkt werden. @@ -1081,6 +1089,10 @@ DictionaryAssetDisposalType=Art der Veräußerung von Vermögenswerten TypeOfUnit=Art der Einheit SetupSaved=Einstellungen gespeichert SetupNotSaved=Einstellungen nicht gespeichert +OAuthServiceConfirmDeleteTitle=OAuth-Eintrag löschen +OAuthServiceConfirmDeleteMessage=Möchten Sie diesen OAuth-Eintrag wirklich löschen? Alle vorhandenen Tokens dafür werden ebenfalls gelöscht. +ErrorInEntryDeletion=Fehler beim Löschen des Eintrags +EntryDeleted=Eintrag gelöscht BackToModuleList=Zurück zur Modulübersicht BackToDictionaryList=Zurück zur Stammdaten-Übersicht TypeOfRevenueStamp=Art der Steuermarke @@ -1244,6 +1256,7 @@ AreaForAdminOnly=Einstellungen können nur durch
Administratoren
veränd SystemInfoDesc=Verschiedene systemrelevante, technische Informationen - Lesemodus und nur für Administratoren sichtbar. SystemAreaForAdminOnly=Dieser Bereich steht ausschließlich Administratoren zur Verfügung. Keine der Benutzerberechtigungen kann dies ändern. CompanyFundationDesc=Bearbeiten Sie die Informationen Ihres Unternehmens / Ihrer Organisation. Klicken Sie unten auf der Seite auf die Schaltfläche "%s", wenn Sie fertig sind. +MoreNetworksAvailableWithModule=Weitere soziale Netzwerke sind verfügbar, indem Sie das Modul "Soziale Netzwerke" aktivieren. AccountantDesc=Falls Sie einen externen Buchhalter/Treuhänder haben, können Sie hier dessen Informationen hinterlegen. AccountantFileNumber=Buchhalter-Code DisplayDesc=Hier können Parameter geändert werden, die das Aussehen und die Darstellung der Anwendung beeinflussen. @@ -1261,6 +1274,7 @@ TriggerActiveAsModuleActive=Trigger in dieser Datei sind durch das übergeordnet GeneratedPasswordDesc=Wählen Sie die Methode für automatisch erzeugte Passwörter. DictionaryDesc=Alle Standardwerte einfügen. Sie können eigene Werte zu den Standartwerten hinzufügen. ConstDesc=Auf dieser Seite können Sie Parameter bearbeiten (überschreiben), die auf anderen Seiten nicht verfügbar sind. Diese Funktion ist für Entwickler und/oder die fortgeschrittene Fehlerbehebung vorgesehen. +MiscellaneousOptions=Verschiedene Optionen MiscellaneousDesc=Alle anderen sicherheitsrelevanten Parameter werden hier eingestellt. LimitsSetup=Einstellungen zu Dezimalstellen und Rundung LimitsDesc=Hier können Sie die von Dolibarr verwendeten Grenzwerte, Genauigkeiten und Optimierungen definieren @@ -1294,6 +1308,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Diesen Befehl müssen Sie auf d YourPHPDoesNotHaveSSLSupport=Ihre PHP-Konfiguration unterstützt keine SSL-Verschlüsselung DownloadMoreSkins=Weitere grafische Oberflächen herunterladen SimpleNumRefModelDesc=Gibt die Referenznummer im Format %syymm-nnnn zurück, wobei yy das Jahr, mm der Monat und nnnn eine fortlaufende automatisch inkrementierende Nummer ohne Zurücksetzen ist +SimpleRefNumRefModelDesc=Gibt die Referenznummer im Format n zurück, wobei n eine fortlaufende, automatisch inkrementierende Zahl ohne Zurücksetzen ist +AdvancedNumRefModelDesc=Gibt die Referenznummer im Format %syymm-nnnn zurück, wobei yy das Jahr, mm der Monat und nnnn eine fortlaufende automatisch inkrementierende Nummer ohne Zurücksetzen ist SimpleNumRefNoDateModelDesc=Gibt die Referenznummer im Format %s-nnnn zurück, wobei nnnn eine fortlaufende automatisch inkrementierende Nummer ohne Zurücksetzen ist ShowProfIdInAddress=Erweiterte Kundendaten (geschäftliche ID-Nummern) im Adressfeld anzeigen ShowVATIntaInAddress=Umsatzsteuer-ID ausblenden @@ -1380,7 +1396,7 @@ GetBarCode=Übernehmen NumberingModules=Nummerierungsmodelle DocumentModules=Dokumentvorlagen ##### Module password generation -PasswordGenerationStandard=Gibt ein Kennwort zurück, das gemäß dem internen Dolibarr-Algorithmus generiert wurde: %s Zeichen, die gemeinsam genutzte Zahlen und Zeichen in Kleinbuchstaben enthalten. +PasswordGenerationStandard=Erzeugt ein Passwort, das gemäß dem internen Dolibarr-Algorithmus generiert wurde: %s-Zeichen, die Ziffern und Buchstaben enthalten. PasswordGenerationNone=Kein generiertes Passwort vorschlagen. Das Passwort muss manuell eingegeben werden. PasswordGenerationPerso=Ein Passwort entsprechend der persönlich definierten Konfiguration zurückgeben. SetupPerso=Nach Ihrer Konfiguration @@ -1434,6 +1450,10 @@ SuppliersPayment=Lieferanten Zahlung SupplierPaymentSetup=Einstellungen für Lieferantenzahlungen InvoiceCheckPosteriorDate=Überprüfen Sie das Rechnungsdatum vor der Validierung InvoiceCheckPosteriorDateHelp=Die Validierung einer Rechnung ist nicht möglich, wenn ihr Datum vor dem Datum der letzten Rechnung des gleichen Typs liegt. +InvoiceOptionCategoryOfOperations=Geben Sie auf der Rechnung einen Vermerk über die Tätigkeitskategorie (Produkte/Leistungen/gemischt) an (erforderlich u.a. in Frankreich). +InvoiceOptionCategoryOfOperationsHelp=Je nach Situation erfolgt die Nennung in der Form:
- Tätigkeitskategorie: Lieferung von Waren
- Tätigkeitskategorie: Erbringung von Dienstleistungen
- Tätigkeitskategorie: Gemischt - Lieferung von Waren & Erbringung von Dienstleistungen +InvoiceOptionCategoryOfOperationsYes1=Ja, unterhalb des Adressfeldes +InvoiceOptionCategoryOfOperationsYes2=Ja, in der unteren linken Ecke ##### Proposals ##### PropalSetup=Einstellungen Modul Angebote ProposalsNumberingModules=Nummernvergabe für Angebote @@ -1476,11 +1496,12 @@ WatermarkOnDraftContractCards=Wasserzeichen auf Entwurf (leerlassen, wenn nicht ##### Members ##### MembersSetup=Modul Mitglieder - Einstellungen MemberMainOptions=Haupteinstellungen +MemberCodeChecker=Optionen für die automatische Generierung von Mitgliedsnummern AdherentLoginRequired= Verwalten Sie eine Anmeldung für jedes Mitglied AdherentMailRequired=Für das Anlegen eines neuen Mitglieds ist eine E-Mail-Adresse erforderlich MemberSendInformationByMailByDefault=Das Kontrollkästchen für den automatischen Versand einer E-Mail-Bestätigung an Mitglieder (bei Freigabe oder neuem Abonnement) ist standardmäßig aktiviert MemberCreateAnExternalUserForSubscriptionValidated=Externes Benutzer-Login für jedes validierte neue Mitgliedsabonnement erstellen -VisitorCanChooseItsPaymentMode=Der Besucher kann aus verschiedenen Zahlungsmethoden auswählen +VisitorCanChooseItsPaymentMode=Der Besucher kann aus allen verfügbaren Zahlungsarten wählen MEMBER_REMINDER_EMAIL=Aktivieren Sie die automatische Erinnerung per E-Mail an abgelaufene Abonnements. Hinweis: Das Modul %s muss aktiviert und ordnungsgemäß eingerichtet sein, damit Erinnerungen gesendet werden können. MembersDocModules=Dokumentvorlagen für Dokumente, die aus dem Mitgliedsdatensatz generiert wurden ##### LDAP setup ##### @@ -1742,8 +1763,8 @@ 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=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. +FCKeditorForProductDetails=WYSIWIG Erstellung/Bearbeitung von Produktbeschreibungen oder Zeilen für Objekte (Angebotszeilen, Bestellungen, Rechnungen usw.). +FCKeditorForProductDetails2=Warnung: Von der Verwendung dieser Option für diese Anwendung wird dringend abgeraten, da es beim Erstellen von PDF-Dateien zu Problemen mit Sonderzeichen und der Seitenformatierung kommen kann. FCKeditorForMailing= WYSIWYG Erstellung/Bearbeitung von E-Mails FCKeditorForUserSignature=WYSIWYG Erstellung/Bearbeitung von Benutzer-Signaturen FCKeditorForMail=WYSIWYG-Erstellung/Bearbeitung für alle E-Mails (außer Werkzeuge->eMailing) @@ -1766,7 +1787,7 @@ DetailMenuHandler=Menü-Handler für die Anzeige des neuen Menüs DetailMenuModule=Modulname falls Menüeintrag aus einem Modul stimmt DetailType=Art des Menüs (Top oder Links) DetailTitre=Menü Label oder Label für Übersetzung -DetailUrl=Ziel-URL für Menüeintrag (Absolute URL oder externer Link mit http://) +DetailUrl=Ziel-URL für Menüeintrag (Relative URL oder externer Link mit http://) DetailEnabled=Einstellungen für die Anzeige der Einträge DetailRight=Zustand für die Anzeige nicht-authorisierter, grauer Menüs DetailLangs=Sprachdateiname für Label Übersetzung @@ -1781,17 +1802,17 @@ FailedToInitializeMenu=Menü konnte nicht erstellt werden ##### Tax ##### TaxSetup=Steuer-, Sozialabgaben- und Dividendenmodul-Einstellungen OptionVatMode=USt. fällig -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=Cash-Basis für Produkte und Leistungen -OptionPaymentForProductAndServicesDesc=USt is fällig:
- Bei Bezahlung von Waren
- Bei Bezahlung von Dienstleistungen +OptionVATDefault=Unterschiedliche Versteuerung für Produkte und Leistungen (z.B. in Frankreich) +OptionVATDebitOption=Soll-Versteuerung für Produkte und Leistungen +OptionVatDefaultDesc=USt fällig:
- zum Rechnungsdatum bei Produkten
- zum Zahlungsdatum bei Leistungen +OptionVatDebitOptionDesc=USt fällig:
- zum Rechnungsdatum bei Produkten
- zum Rechnungsdatum bei Leistungen +OptionPaymentForProductAndServices=Ist-Versteuerung für Produkte und Leistungen +OptionPaymentForProductAndServicesDesc=USt fällig:
- zum Zahlungsdatum bei Produkten
- zum Zahlungsdatum bei Leistungen SummaryOfVatExigibilityUsedByDefault=Standardmäßiger Zeitpunkt der USt.-Fälligkeit in Abhängigkeit zur derzeit gewählten Option: OnDelivery=Bei Lieferung OnPayment=Bei Zahlung OnInvoice=Bei Rechnungslegung -SupposedToBePaymentDate=Zahlungsdatum in Verwendung falls Lieferdatum unbekannt +SupposedToBePaymentDate=Zahlungsdatum wird verwendet SupposedToBeInvoiceDate=Rechnungsdatum verwendet Buy=Kaufen Sell=Verkaufen @@ -1802,7 +1823,7 @@ AccountancyCodeSell=Verkaufskonto-Code AccountancyCodeBuy=Einkaufskonto-Code CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Lassen Sie das Kontrollkästchen "Zahlung automatisch erstellen" beim Erstellen einer neuen Steuer standardmäßig leer ##### Agenda ##### -AgendaSetup=Einstellungen Modul Aufgaben/Termine +AgendaSetup=Einstellungen Modul Agenda (Ereignisse/Termine) PasswordTogetVCalExport=Passwort für den VCal-Export SecurityKey = Sicherheitsschlüssel PastDelayVCalExport=Keine Termine exportieren die älter sind als @@ -1810,6 +1831,9 @@ AGENDA_USE_EVENT_TYPE=Verwenden der Ereignissarten \nEinstellen unter (Start -> 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 +AGENDA_EVENT_PAST_COLOR=Farbe für Ereignisse in der Vergangenheit +AGENDA_EVENT_CURRENT_COLOR=Farbe für aktuelle Ereignisse +AGENDA_EVENT_FUTURE_COLOR=Farbe für Ereignisse in der Zukunft AGENDA_DEFAULT_VIEW=Welche Standardansicht soll geöffnet werden, wenn das Menü 'Agenda' geöffnet wird AGENDA_REMINDER_BROWSER=Aktiviere die Ereigniserinnerung im Browser des Benutzers. (Wenn das Erinnerungsdatum erreicht ist, wird vom Browser ein Popup angezeigt. Jeder Benutzer kann solche Benachrichtigungen in seinem Browser-Benachrichtigungs-Setup deaktivieren.) AGENDA_REMINDER_BROWSER_SOUND=Aktiviere Tonbenachrichtigung @@ -1824,20 +1848,20 @@ 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=Kassenterminal -CashDeskSetup=Kassenmoduleinstellungen +CashDeskSetup=Einstellungen Modul POS/Registrierkasse CashDeskThirdPartyForSell=Standard-Geschäftspartner für Kassenverkäufe CashDeskBankAccountForSell=Standardkonto Kasse für Barzahlungen CashDeskBankAccountForCheque=Standardkonto für Zahlungen per Scheck CashDeskBankAccountForCB=Standardkonto für Zahlungen per Kreditkarte CashDeskBankAccountForSumup=Standardbankkonto zum Empfangen von Zahlungen von SumUp CashDeskDoNotDecreaseStock=Deaktiviere Lagerabgangsbuchung wenn ein Verkauf an einem Point of Sale erfolgt\n(bei "Nein" wird die Lagerabgangsbuchung immer durchgeführt, auch wenn im Modul 'Lagerverwaltung' eine andere Einstellung gewählt wurde). -CashDeskIdWareHouse=Warenlager für Entnahmen festlegen und erzwingen +CashDeskIdWareHouse=Lager für Entnahmen festlegen und erzwingen StockDecreaseForPointOfSaleDisabled=Lagerrückgang bei Verwendung von Point of Sale deaktiviert StockDecreaseForPointOfSaleDisabledbyBatch=Die Bestandsreduzierung am POS ist nicht mit dem Modul Serial / Lot Management (derzeit aktiv) kompatibel, sodass die Bestandsreduzierung deaktiviert ist. CashDeskYouDidNotDisableStockDecease=Sie haben die Reduzierung der Lagerbestände nicht deaktiviert, wenn Sie einen Verkauf auf dem Point of Sale durchführen.\nAuch ist ein Lager/Standort notwendig. CashDeskForceDecreaseStockLabel=Eine Bestandsreduktion für Produktposten wurde erzwungen. CashDeskForceDecreaseStockDesc=Verringern Sie zuerst ausgehend vom ältesten Mindesthaltbarkeitsdatum oder Verbrauchsdatum. -CashDeskReaderKeyCodeForEnter=Tastencode für "Enter" wie im Barcode-Leser definiert (Beispiel: 13) +CashDeskReaderKeyCodeForEnter=Im Barcode-Leser definierter ASCII-Code für „Enter“-Taste (Beispiel: ASCII-Code 13) ##### Bookmark ##### BookmarkSetup=Lesezeichen-Moduleinstellungen BookmarkDesc=Dieses Modul ermöglicht die Verwaltung von Lesezeichen. Außerdem können Sie hiermit Verknüpfungen zu internen und externen Seiten im linken Menü anlegen. @@ -1865,7 +1889,7 @@ BankOrderES=Spanisch BankOrderESDesc=Spanische Anzeigereihenfolge ChequeReceiptsNumberingModule=Modul zur Nummerierung von Belegen prüfen ##### Multicompany ##### -MultiCompanySetup=Einstellungen Modul Multi-Company (Mandanten) +MultiCompanySetup=Einstellungen Modul Mandanten ##### Suppliers ##### SuppliersSetup=Einstellungen Modul Lieferanten SuppliersCommandModel=Vollständige Vorlage für Lieferantenbestellungen @@ -1875,7 +1899,7 @@ SuppliersInvoiceNumberingModel=Lieferantenrechnungen Zähl-Modell IfSetToYesDontForgetPermission=Wenn ein Wert ungleich Null festgelegt ist, vergessen Sie nicht, Berechtigungen für Gruppen oder Benutzer bereitzustellen, die für die zweite Genehmigung zugelassen sind ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP-Maxmind Moduleinstellungen -PathToGeoIPMaxmindCountryDataFile=Pfad zu der Datei, welche die Maxmind IP-zu-Land Umwandlungs-Informationen enthält.
Beispiele:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Pfad zur Maxmind-Datei mit der Zuordnung von IPs zu Ländern NoteOnPathLocation=Bitte beachten Sie, dass Ihre IP-Länder-Datei in einem von PHP lesbaren Verzeichnis liegen muss (Überprüfen Sie Ihre PHP open_basedir-Einstellungen und die Dateisystem-Berechtigungen). YouCanDownloadFreeDatFileTo=Eine kostenlose Demo-Version der Maxmind-GeoIP Datei finden Sie hier: %s YouCanDownloadAdvancedDatFileTo=Eine vollständigere Version mit Updates der Maxmind-GeoIP Datei können Sie hier herunterladen: %s @@ -1926,6 +1950,7 @@ BackupDumpWizard=Assistent zum Erstellen der Datenbank-Dump-Datei BackupZipWizard=Assistent zum Erstellen eines Archivs des Dokumentenverzeichnisses SomethingMakeInstallFromWebNotPossible=Die Installation von dem externen Modul ist aus folgenden Gründen vom Web-Interface nicht möglich: SomethingMakeInstallFromWebNotPossible2=Aus diesem Grund ist der hier beschriebene Aktualisierungsvorgang ein manueller Vorgang, den nur ein privilegierter Benutzer ausführen kann. +InstallModuleFromWebHasBeenDisabledContactUs=Die Installation oder Entwicklung externer Module oder dynamischer Websites aus der Anwendung ist derzeit aus Sicherheitsgründen gesperrt. Bitte kontaktieren Sie uns, wenn Sie diese Funktion benötigen. InstallModuleFromWebHasBeenDisabledByFile=Installieren von externen Modul aus der Anwendung wurde von Ihrem Administrator deaktiviert. \nSie müssen ihn bitten, die Datei%s zu entfernen, um diese Funktion zu ermöglichen. ConfFileMustContainCustom=Um ein externes Modul zu erstellen oder installieren, müssen die Modul Dateien im Verzeichnis %s gespeichert werden. Damit dieses Verzeichnis durch Dolibarr verwendet wird, muss in den Einstellungen conf/conf.php die folgenden 2 Zeilen hinzugefügt werden:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Zeilen hervorheben bei Mouseover @@ -2021,7 +2046,7 @@ UrlToGetKeyToUseAPIs=URL zum Abrufen des Tokens zur Verwendung der API (sobald d ListOfAvailableAPIs=Liste von verfügbaren APIs activateModuleDependNotSatisfied=Das Modul "%s" hängt vom fehlenden Modul "%s" ab, sodass das Modul "%1$s" möglicherweise nicht ordnungsgemäß funktioniert. Bitte installieren Sie das Modul "%2$s" oder deaktivieren Sie das Modul "%1$s", um vor Überraschungen bewahrt zu werden CommandIsNotInsideAllowedCommands=Das Kommando, das Sie versucht haben auszuführen, ist nicht in der Liste der erlaubten Kommandos enthalten. Diese ist im Parameter $dolibarr_main_restrict_os_commands in der Datei conf.php definiert. -LandingPage=Einstiegsseite +LandingPage=Startseite SamePriceAlsoForSharedCompanies=Wenn Sie ein Multicompany-Modul mit der Auswahl "Einzelpreis" verwenden, ist der Preis auch für alle Unternehmen gleich, wenn Produkte zwischen Umgebungen geteilt werden ModuleEnabledAdminMustCheckRights=Das Modul wurde aktiviert. Die Berechtigungen für aktiviertes Modul(e) wurden nur für den/die Administrator/Gruppe vergeben. Möglicherweise müssen Sie anderen Benutzern oder Gruppen bei Bedarf manuell Berechtigungen erteilen. UserHasNoPermissions=Dieser Benutzer hat keine Rechte @@ -2053,6 +2078,8 @@ RemoveSpecialChars=Sonderzeichen entfernen COMPANY_AQUARIUM_CLEAN_REGEX=Regexfilter um die Werte zu Bereinigen (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Regex-Filter zum Bereinigen des Werts (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Doppelte Einträge sind nicht erlaubt +RemoveSpecialWords=Löschen Sie bestimmte Wörter, wenn Sie Unterkonten für Kunden oder Lieferanten erstellen +RemoveSpecialWordsHelp=Geben Sie die vor der Benennung des Kunden- oder Lieferantenkontos zu entfernenden Wörter an. Ein ";" zwischen jedem Wort verwenden. GDPRContact=Datenschutzbeauftragte(r) GDPRContactDesc=Wenn Sie personenbezogene Daten in Ihrem Informationssystem speichern, können Sie hier den für die Datenschutz-Grundverordnung (DSGVO) zuständigen Ansprechpartner benennen HelpOnTooltip=Anzeigen des Hilfetextes im Tooltip @@ -2080,6 +2107,7 @@ MailboxTargetDirectory=Zielverzechnis des eMail-Kontos EmailcollectorOperations=Aktivitäten, die der eMail-Collector ausführen soll EmailcollectorOperationsDesc=Operationen werden von oben nach unten ausgeführt MaxEmailCollectPerCollect=Maximale Anzahl an einzusammelnden E-Mails je Collect-Vorgang +TestCollectNow=Collect testen CollectNow=Jetzt abrufen ConfirmCloneEmailCollector=Möchten Sie den E-Mail-Collector %s wirklich duplizieren? DateLastCollectResult=Datum des letzten eMail-Collect-Versuchs @@ -2109,6 +2137,7 @@ CodeLastResult=Letzter Resultatcode NbOfEmailsInInbox=Anzahl E-Mails im Quellverzeichnis LoadThirdPartyFromName=Drittanbieter-Suche auf %s laden (nur laden) LoadThirdPartyFromNameOrCreate=Drittanbieter-Suche auf %s laden (erstellen, wenn nicht gefunden) +LoadContactFromEmailOrCreate=Kontakt aus %s entnehmen (erstellen, wenn nicht gefunden) AttachJoinedDocumentsToObject=Speichern Sie angehängte Dateien als Dokumente eines Objekts, wenn die Referenz des Objekts im Betreff der E-Mail gefunden wird. WithDolTrackingID=Nachricht einer Unterhaltung die durch eine erste von Dolibarr gesendete E-Mail initiiert wurde WithoutDolTrackingID=Nachricht einer Unterhaltung die NICHT durch eine erste von Dolibarr gesendete E-Mail initiiert wurde @@ -2183,6 +2212,7 @@ ShowProjectLabel=Projektbezeichnung PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Den Namen des Geschäftspartners um Alias ergänzen THIRDPARTY_ALIAS=Name Geschäftspartner - Alias Geschäftspartner ALIAS_THIRDPARTY=Alias Geschäftspartner - Name Geschäftspartner +PDFIn2Languages=Beschreibungen im PDF in zwei verschiedenen Sprachen anzeigen PDF_USE_ALSO_LANGUAGE_CODE=Wenn Sie möchten, dass einige Texte in Ihrem PDF in 2 verschiedenen Sprachen in demselben generierten PDF dupliziert werden, müssen Sie hier diese zweite Sprache festlegen, damit das generierte PDF zwei verschiedene Sprachen auf derselben Seite enthält, die beim Generieren von PDF ausgewählte und diese (dies wird nur von wenigen PDF-Vorlagen unterstützt). Für 1 Sprache pro PDF leer halten. PDF_USE_A=PDF-Dokumente im Format PDF/A erstellen anstelle des Standardformats PDF FafaIconSocialNetworksDesc=Geben Sie hier den Code für ein FontAwesome-Icon ein. Wenn Sie FontAwesome nicht kennen, können Sie den Standard 'fa-address-book' benutzen. @@ -2216,7 +2246,7 @@ NoWritableFilesFoundIntoRootDir=In Ihrem Stammverzeichnis wurden keine beschreib RecommendedValueIs=Empfohlen: %s Recommended=Empfohlen NotRecommended=Nicht empfohlen -ARestrictedPath=Eingeschränkter Pfad +ARestrictedPath=Eingeschränkter Pfad für Datendateien CheckForModuleUpdate=Suchen Sie nach Updates für externe Module CheckForModuleUpdateHelp=Diese Aktion stellt eine Verbindung zu Editoren externer Module her, um zu überprüfen, ob eine neue Version verfügbar ist. ModuleUpdateAvailable=Eine Aktualisierung ist verfügbar @@ -2264,7 +2294,7 @@ LateWarningAfter=Warnung "verspätet" nach TemplateforBusinessCards=Vorlage für eine Visitenkarte in unterschiedlicher Größe InventorySetup= Bestandsaufnahme einrichten ExportUseLowMemoryMode=Verwenden Sie einen Low-Memory-Modus -ExportUseLowMemoryModeHelp=Verwenden Sie den Low-Memory-Modus, um den Dump zu erstellen (die Komprimierung erfolgt durch eine Pipe statt im PHP-Speicher). Mit dieser Methode kann nicht überprüft werden, ob die Datei vollständig ist, und es kann keine Fehlermeldung ausgeben werden, wenn der Vorgang fehlschlägt. +ExportUseLowMemoryModeHelp=Verwenden Sie den Low-Memory-Modus, um die Dump-Datei zu generieren (die Komprimierung erfolgt über eine Pipe statt in den PHP-Speicher). Mit dieser Methode kann nicht überprüft werden, ob die Datei vollständig ist, und es kann keine Fehlermeldung gemeldet werden, wenn der Vorgang fehlschlägt. Verwenden Sie diesen Modus, wenn Sie die Fehlermeldung "nicht genügend Speicher" erhalten. ModuleWebhookName = Webhook ModuleWebhookDesc = Schnittstelle zum Abfangen von Dolibarr-Triggern und zum Senden an eine URL @@ -2288,6 +2318,8 @@ IconOnly=Nur Icon - Der Text wird als Tooltipp angezeigt INVOICE_ADD_ZATCA_QR_CODE=Den ZATCA-QR-Code auf Rechnungen anzeigen INVOICE_ADD_ZATCA_QR_CODEMore=Einige arabische Länder benötigen diesen QR-Code auf ihren Rechnungen INVOICE_ADD_SWISS_QR_CODE=Schweizer QR-Rechnungscode auf Rechnungen anzeigen +INVOICE_SHOW_SHIPPING_ADDRESS=Lieferadresse anzeigen +INVOICE_SHOW_SHIPPING_ADDRESSMore=Obligatorische Angabe für Frankreich UrlSocialNetworksDesc=URL-Link des sozialen Netzwerks. Verwenden Sie {socialid} für den variablen Teil, der die ID des sozialen Netzwerks enthält. IfThisCategoryIsChildOfAnother=Wenn diese Kategorie unterhalb einer anderen ist DarkThemeMode=Dark Theme-Modus @@ -2307,3 +2339,30 @@ UsePassword=Passwort verwenden UseOauth=OAUTH-Token verwenden Images=Bilder MaxNumberOfImagesInGetPost=Maximal zulässige Anzahl von Bildern, die in einem HTML-Feld in einem Formular eingefügt werden können +MaxNumberOfPostOnPublicPagesByIP=Maximale Anzahl von Beiträgen auf öffentlichen Seiten mit derselben IP-Adresse in einem Monat +CIDLookupURL=Das Modul bringt eine URL mit, die von einem externen Tool verwendet werden kann, um den Namen eines Geschäftspartners oder Kontakts aus seiner Telefonnummer zu ermitteln. Zu verwendende URL ist: +ScriptIsEmpty=Das Skript ist leer +ShowHideTheNRequests=Anzeigen/Ausblenden der %s-SQL-Anfrage(n) +DefinedAPathForAntivirusCommandIntoSetup=Dateipfad zu Antivirenprogramm in %s +TriggerCodes=Triggerbare Ereignisse +TriggerCodeInfo=Geben Sie hier den/die Triggercode(s) ein, der/die das Auslösen einer Webanfrage generieren muss (nur externe URLs sind erlaubt). Sie können mehrere Triggercodes durch Komma getrennt eingeben. +EditableWhenDraftOnly=Wenn diese Option deaktiviert ist, kann der Wert nur geändert werden, wenn sich das Objekt im Entwurfsstatus befindet +CssOnEdit=CSS auf Bearbeitungsseiten +CssOnView=CSS auf Ansichtsseiten +CssOnList=CSS auf Listenseiten +HelpCssOnEditDesc=Beim Bearbeiten des Feldes verwendetes CSS.
Beispiel: „minwiwdth100 maxwidth500 widthcentpercentminusx“ +HelpCssOnViewDesc=Beim Anzeigen des Feldes verwendetes CSS. +HelpCssOnListDesc=CSS, das verwendet wird, wenn sich das Feld in einer Listentabelle befindet.
Beispiel: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Bestellte Menge auf den generierten Belegen für den Empfang ausblenden +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Anzeige des Preises auf den generierten Dokumenten für den Wareneingang +WarningDisabled=Warnung deaktiviert +LimitsAndMitigation=Zugriffsbeschränkungen +DesktopsOnly=Nur Desktop-Bildschirme +DesktopsAndSmartphones=Desktop-Bildschirme und Smartphones +AllowOnlineSign=Online-Unterzeichnung ermöglichen +AllowExternalDownload=Externen Download zulassen (ohne Anmeldung, über einen freigegebenen Link) +DeadlineDayVATSubmission=Stichtag für die MwSt.-Einreichung im nächsten Monat +MaxNumberOfAttachementOnForms=Maximale Anzahl verbundener Dateien in einem Formular +IfDefinedUseAValueBeetween=Wenn definiert, einen Wert zwischen %s und %s verwenden +Reload=Neu laden +ConfirmReload=Neuladen des Moduls bestätigen diff --git a/htdocs/langs/de_DE/agenda.lang b/htdocs/langs/de_DE/agenda.lang index 6236ce05914..e9cf555109a 100644 --- a/htdocs/langs/de_DE/agenda.lang +++ b/htdocs/langs/de_DE/agenda.lang @@ -4,7 +4,7 @@ Actions=Ereignisse Agenda=Agenda TMenuAgenda=Agenda Agendas=Agenden -LocalAgenda=Standardkalender +LocalAgenda=Standard-Kalender ActionsOwnedBy=Ereignis stammt von ActionsOwnedByShort=Eigentümer AffectedTo=Zugewiesen an @@ -58,9 +58,9 @@ 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 +MemberSubscriptionAddedInDolibarr=Abonnement %s zum Mitglied %s hinzugefügt +MemberSubscriptionModifiedInDolibarr=Abonnement %s von Mitglied %s geändert +MemberSubscriptionDeletedInDolibarr=Abonnement %s von Mitglied %s gelöscht ShipmentValidatedInDolibarr=Lieferung %s freigegeben ShipmentClassifyClosedInDolibarr=Lieferung %s als verrechnet markiert ShipmentUnClassifyCloseddInDolibarr=Lieferung %s als wiedereröffnet markieren @@ -68,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Sendung %s zurück zum Entwurfsstatus ShipmentDeletedInDolibarr=Lieferung %s gelöscht ShipmentCanceledInDolibarr=Sendung %s storniert ReceptionValidatedInDolibarr=Wareneingang %s bestätigt +ReceptionDeletedInDolibarr=Wareneingang %s gelöscht ReceptionClassifyClosedInDolibarr=Wareneingang %s als geschlossen klassifiziert OrderCreatedInDolibarr=Auftrag %s erstellt OrderValidatedInDolibarr=Auftrag %s freigegeben @@ -87,6 +88,7 @@ SupplierInvoiceSentByEMail=Lieferantenrechnung %s per E-Mail gesendet ShippingSentByEMail=Lieferung %s per E-Mail versendet ShippingValidated= Lieferung %s freigegeben InterventionSentByEMail=Serviceauftrag %s per E-Mail versendet +ProjectSentByEMail=Projekt %s per E-Mail gesendet ProposalDeleted=Angebot gelöscht OrderDeleted=Auftrag gelöscht InvoiceDeleted=Rechnung gelöscht diff --git a/htdocs/langs/de_DE/assets.lang b/htdocs/langs/de_DE/assets.lang index 73b2b3fbc55..8390fe6fc1b 100644 --- a/htdocs/langs/de_DE/assets.lang +++ b/htdocs/langs/de_DE/assets.lang @@ -16,7 +16,7 @@ # # Generic # -NewAsset=neue Anlage +NewAsset=Neues Anlagegut AccountancyCodeAsset=Buchungskonto (Anlagegut) AccountancyCodeDepreciationAsset=Buchungskonto (Abschreibung auf Anlagegut) AccountancyCodeDepreciationExpense=Buchungskonto (Aufwendungen für Abschreibungen) @@ -48,7 +48,7 @@ ASSET_ACCOUNTANCY_CATEGORY=Kontengruppe für Anlagevermögen # Menu # MenuAssets=Anlagen -MenuNewAsset=neue Anlage +MenuNewAsset=Neues Anlagegut MenuAssetModels=Modell für Vermögenswerte MenuListAssets=Liste MenuNewAssetModel=Neues Modell für Vermögenswerte @@ -63,14 +63,14 @@ ConfirmDeleteAsset=Möchten Sie diesen Vermögenswert wirklich entfernen? # Tab # AssetDepreciationOptions=Abschreibungsmöglichkeiten -AssetAccountancyCodes=Buchhaltungskonten +AssetAccountancyCodes=Buchungskonten AssetDepreciation=Abschreibung # # Asset # Asset=Anlagegut -Assets=Ressourcen / Anlagen +Assets=Anlagen/Vermögenswerten AssetReversalAmountHT=Stornobetrag (ohne Steuern) AssetAcquisitionValueHT=Anschaffungsbetrag (ohne Steuern) AssetRecoveredVAT=Zurückerstattete USt. @@ -80,7 +80,7 @@ AssetDateStart=Datum der Inbetriebnahme AssetAcquisitionType=Art des Erwerbs AssetAcquisitionTypeNew=Neu AssetAcquisitionTypeOccasion=Gebraucht -AssetType=Art des Vermögenswertes +AssetType=Art des Anlageguts AssetTypeIntangible=Immateriell AssetTypeTangible=Materiell AssetTypeInProgress=in Bearbeitung @@ -109,8 +109,8 @@ AssetDisposalSubjectToVat=Abgang USt.-pflichtig # # Asset model # -AssetModel=Modell des Vermögenswerts -AssetModels=Modelle des Vermögenswerts +AssetModel=Modell des Anlageguts +AssetModels=Modelle der Anlagegüter # # Asset depreciation options @@ -140,7 +140,7 @@ AssetAccountancyCodeDepreciationEconomic=Wirtschaftliche Abschreibung AssetAccountancyCodeAsset=Anlagegut AssetAccountancyCodeDepreciationAsset=Abschreibung AssetAccountancyCodeDepreciationExpense=Abschreibungsaufwand -AssetAccountancyCodeValueAssetSold=Wert des abgegangenen Vermögenswerts +AssetAccountancyCodeValueAssetSold=Wert des abgegangenen Anlageguts AssetAccountancyCodeReceivableOnAssignment=Forderung bei Abgang AssetAccountancyCodeProceedsFromSales=Erlös aus Abgang AssetAccountancyCodeVatCollected=Eingenommene USt. @@ -168,10 +168,10 @@ AssetDepreciationReversal=Umkehrung # # Errors # -AssetErrorAssetOrAssetModelIDNotProvide=Die ID des Vermögenswertes oder das Modell wurde nicht bereitgestellt -AssetErrorFetchAccountancyCodesForMode=Fehler beim Abrufen der Buchhaltungskonten für den Abschreibungsmodus '%s' -AssetErrorDeleteAccountancyCodesForMode=Fehler beim Löschen von Buchhaltungskonten aus dem Abschreibungsmodus '%s' -AssetErrorInsertAccountancyCodesForMode=Fehler beim Einfügen der Buchhaltungskonten des Abschreibungsmodus '%s' +AssetErrorAssetOrAssetModelIDNotProvide=Die ID des Anlageguts oder das Modell wurde nicht bereitgestellt +AssetErrorFetchAccountancyCodesForMode=Fehler beim Abrufen der Buchungskonten für den Abschreibungsmodus '%s' +AssetErrorDeleteAccountancyCodesForMode=Fehler beim Löschen von Buchungskonten aus dem Abschreibungsmodus '%s' +AssetErrorInsertAccountancyCodesForMode=Fehler beim Einfügen der Buchungskonten des Abschreibungsmodus '%s' AssetErrorFetchDepreciationOptionsForMode=Fehler beim Abrufen von Optionen für den Abschreibungsmodus „%s“. AssetErrorDeleteDepreciationOptionsForMode=Fehler beim Löschen der Optionen des Abschreibungsmodus '%s' AssetErrorInsertDepreciationOptionsForMode=Fehler beim Einfügen der Optionen des Abschreibungsmodus '%s' diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang index 10b75b18d0f..96398f48b67 100644 --- a/htdocs/langs/de_DE/bills.lang +++ b/htdocs/langs/de_DE/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Statistik Kundenrechnungen BillsStatisticsSuppliers=Statistik Lieferantenrechnungen DisabledBecauseDispatchedInBookkeeping=Deaktiviert, da die Rechnung schon in die Buchhaltung übernommen wurde DisabledBecauseNotLastInvoice=Deaktiviert da die Rechnung nicht gelöscht werden kann. Es wurden schon Rechnungen nach dieser Rechnung erstellt, so dass die Nummerierung nicht fortlaufend wäre. +DisabledBecauseNotLastSituationInvoice=Deaktiviert, da die Rechnung nicht löschbar ist. Diese Rechnung ist nicht die letzte in der Folge der Abschlagsrechnungen. DisabledBecauseNotErasable=Deaktiviert, da löschen nicht möglich InvoiceStandard=Standardrechnung InvoiceStandardAsk=Standardrechnung InvoiceStandardDesc=Dies ist das Standard-Rechnungsformat +InvoiceStandardShort=Standard InvoiceDeposit=Anzahlungsrechnung InvoiceDepositAsk=Anzahlungsrechnung InvoiceDepositDesc=Diese Art der Rechnung erfolgt, wenn eine Anzahlung getätigt wurde. @@ -24,6 +26,7 @@ InvoiceProForma=Proforma-Rechnung InvoiceProFormaAsk=Proforma-Rechnung InvoiceProFormaDesc=Die Proforma-Rechnung ist das Abbild einer echten Rechnung, hat aber keinen buchhalterischen Wert. InvoiceReplacement=Ersatzrechnung +InvoiceReplacementShort=Ersatz InvoiceReplacementAsk=Ersatzrechnung für Rechnung InvoiceReplacementDesc=Eine Ersatzrechnung wird benutzt um eine Rechnung zu ersetzen, bei der noch keine Zahlung erfolgte.

Hinweis: Nur Rechnungen ohne erfolgte Zahlung können ersetzt werden. Sofern die Rechnung noch nicht geschlossen wurde, wird sie automatisch verworfen. InvoiceAvoir=Gutschrift @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Dieser Artikel o ErrorInvoiceIsNotLastOfSameType=Fehler: Das Rechnungsdatum der Rechnung %s ist %s. Es muss gleich oder nach dem letzten Datum für Rechnungen des gleichen Typs sein (%s). Bitte ändern Sie das Rechnungsdatum. BillFrom=Von BillTo=An +ShippingTo=Lieferadresse ActionsOnBill=Ereignisse zu dieser Rechnung RecurringInvoiceTemplate=Vorlage/Wiederkehrende Rechnung NoQualifiedRecurringInvoiceTemplateFound=Keine Vorlagen zur Erstellung von wiederkehrenden Rechnungen gefunden. @@ -519,7 +523,7 @@ CreditNoteConvertedIntoDiscount=Diese Gutschrift %s wurde in %s umgewandelt UsBillingContactAsIncoiveRecipientIfExist=Verwenden Sie Kontakt / Adresse mit dem Typ "Rechnungskontakt" anstelle der Adresse eines Geschäftspartners als Empfänger für Rechnungen ShowUnpaidAll=Zeige alle unbezahlten Rechnungen ShowUnpaidLateOnly=Zeige nur verspätete unbezahlte Rechnung -PaymentInvoiceRef=Die Zahlung der Rechnung %s +PaymentInvoiceRef=Zahlung für Rechnung %s ValidateInvoice=Rechnung freigeben ValidateInvoices=Rechnungen freigeben Cash=Bar @@ -622,3 +626,8 @@ PaymentRegisteredAndInvoiceSetToPaid=Zahlung registriert und Rechnung %s auf bez SendEmailsRemindersOnInvoiceDueDate=Bei unbezahlten Rechnungen per E-Mail erinnern MakePaymentAndClassifyPayed=Zahlung aufzeichnen BulkPaymentNotPossibleForInvoice=Massenzahlung ist für Rechnung %s nicht möglich (falscher Typ oder Status) +MentionVATDebitOptionIsOn=Option zur Zahlung von Steuern auf Basis der Soll-Versteuerung +MentionCategoryOfOperations=Tätigkeitskategorie +MentionCategoryOfOperations0=Lieferung von Waren +MentionCategoryOfOperations1=Erbringung von Dienstleistungen +MentionCategoryOfOperations2=Gemischt - Lieferung von Waren und Erbringung von Dienstleistungen diff --git a/htdocs/langs/de_DE/boxes.lang b/htdocs/langs/de_DE/boxes.lang index f3ef38c8351..10eeb91d1e4 100644 --- a/htdocs/langs/de_DE/boxes.lang +++ b/htdocs/langs/de_DE/boxes.lang @@ -24,6 +24,7 @@ BoxFicheInter=Neueste Serviceaufträge BoxCurrentAccounts=Saldo offene Konten BoxTitleMemberNextBirthdays=Geburtstage in diesem Monat (Mitglieder) BoxTitleMembersByType=Mitglieder nach Typ und Status +BoxTitleMembersByTags=Mitglieder nach Kategorien und Status BoxTitleMembersSubscriptionsByYear=Mitgliederabonnements nach Jahr BoxTitleLastRssInfos=%s neueste Neuigkeiten von %s BoxTitleLastProducts=Zuletzt bearbeitete Produkte / Leistungen (maximal %s) @@ -44,8 +45,10 @@ BoxTitleSupplierOrdersAwaitingReception=Lieferantenbestellungen warten auf Einga BoxTitleLastModifiedContacts=Zuletzt bearbeitete Kontakte/Adressen (maximal %s) BoxMyLastBookmarks=Meine %s neuesten Lesezeichen BoxOldestExpiredServices=Die ältesten abgelaufenen aktiven Dienste +BoxOldestActions=Älteste zu erledigende Ereignisse BoxLastExpiredServices=Neueste Verträge mit abgelaufenen Leistungen (maximal %s) BoxTitleLastActionsToDo=Anstehende Termine/Aufgaben (maximal %s) +BoxTitleOldestActionsToDo=Älteste %s zu erledigende Ereignisse, die nicht abgeschlossen sind BoxTitleLastContracts=Zuletzt bearbeitete Verträge (maximal %s) BoxTitleLastModifiedDonations=Letzte %s Spenden, die geändert wurden BoxTitleLastModifiedExpenses=Neueste %s Spesenabrechnungen, die geändert wurden @@ -55,12 +58,12 @@ BoxTitleLastOutstandingBillReached=Kunden mit überschrittenen Maximal-Aussenst BoxGlobalActivity=Globale Aktivität (Rechnungen, Angebote, Aufträge) BoxGoodCustomers=Gute Kunden BoxTitleGoodCustomers=%s gute Kunden -BoxScheduledJobs=Geplante Aufträge +BoxScheduledJobs=Geplante Jobs BoxTitleFunnelOfProspection=Lead Funnel FailedToRefreshDataInfoNotUpToDate=Fehler beim RSS-Abruf. Letzte erfolgreiche Aktualisierung: %s LastRefreshDate=Letzte Aktualisierung NoRecordedBookmarks=Keine Lesezeichen definiert. -ClickToAdd=Hier klicken um hinzuzufügen. +ClickToAdd=Hier klicken zum Hinzufügen. NoRecordedCustomers=keine erfassten Kunden NoRecordedContacts=keine erfassten Kontakte NoActionsToDo=Keine Aufgaben/Termine zu erledigen diff --git a/htdocs/langs/de_DE/categories.lang b/htdocs/langs/de_DE/categories.lang index fac2e6f3d93..9e9f407c2b0 100644 --- a/htdocs/langs/de_DE/categories.lang +++ b/htdocs/langs/de_DE/categories.lang @@ -42,6 +42,7 @@ MemberHasNoCategory=Dieses Mitglied ist keiner Kategorie zugewiesen. ContactHasNoCategory=Dieser Kontakt ist keiner Kategorie zugewiesen. ProjectHasNoCategory=Dieses Projekt ist keiner Kategorie zugewiesen. ClassifyInCategory=Hinzufügen +RemoveCategory=Kategorie entfernen NotCategorized=ohne Kategoriezuordnung CategoryExistsAtSameLevel=Diese Kategorie existiert bereits auf diesem Level ContentsVisibleByAllShort=öffentlicher Inhalt @@ -67,6 +68,7 @@ StockCategoriesShort=Lagerort-Kategorien ThisCategoryHasNoItems=Diese Kategorie enthält keine Elemente. CategId=Kategorie-ID ParentCategory=Übergeordnetes Schlagwort / Kategorie +ParentCategoryID=ID des übergeordneten Tags / der übergeordneten Kategorie ParentCategoryLabel=Label des übergeordneten Schlagwortes / der übergeordneten Kategorie CatSupList=Liste der Schlagwörter / Kategorien für Anbieter CatCusList=Liste der Schlagwörter / Kategorien für Kunden / Interessenten @@ -76,17 +78,17 @@ CatContactList=Liste der Schlagwörter / Kategorien für Kontakte CatProjectsList=Liste der Schlagwörter / Kategorien für Projekte CatUsersList=Liste der Schlagwörter / Kategorien für Benutzer CatSupLinks=Verknüpfungen zwischen Anbietern und Schlagwörter / Kategorien -CatCusLinks=Verbindung zwischen Kunden-/Leads und Kategorien +CatCusLinks=Verknüpfungen zwischen Kunden-/Leads und Kategorien CatContactsLinks=Verknüpfungen zwischen Kontakten/Adressen und Tags/Kategorien -CatProdLinks=Verbindung zwischen Produkten/Leistungen und Kategorien -CatMembersLinks=Verbindung zwischen Mitgliedern und Kategorien -CatProjectsLinks=Verbindung zwischen Projekten und Kategorien bzw. Suchwörtern +CatProdLinks=Verknüpfungen zwischen Produkten/Leistungen und Kategorien +CatMembersLinks=Verknüpfungen zwischen Mitgliedern und Kategorien +CatProjectsLinks=Verknüpfungen zwischen Projekten und Kategorien bzw. Suchwörtern CatUsersLinks=Verknüpfungen zwischen Benutzern und Schlagwörter / Kategorien DeleteFromCat=Aus Kategorie entfernen ExtraFieldsCategories=Ergänzende Attribute CategoriesSetup=Kategorie-Einstellungen CategorieRecursiv=Automatisch mit übergeordneter Kategorie verbinden -CategorieRecursivHelp=Wenn die Option aktiviert ist, wird beim Hinzufügen eines Produkts zu einer Unterkategorie das Produkt auch automatisch zur übergeordneten Kategorie hinzugefügt. +CategorieRecursivHelp=Wenn die Option aktiviert ist und Sie ein Objekt zu einer Unterkategorie hinzufügen, wird das Objekt auch zu den übergeordneten Kategorien hinzugefügt. AddProductServiceIntoCategory=Folgendes Produkt / folgende Leistung dieser Kategorie hinzufügen: AddCustomerIntoCategory=Ordnen Sie dem Kunden eine Kategorie zu AddSupplierIntoCategory=Ordnen Sie dem Lieferanten eine Kategorie zu @@ -99,5 +101,5 @@ TicketsCategoriesArea=Ticketkategorien ActionCommCategoriesArea=Ereigniskategorien WebsitePagesCategoriesArea=Seiteninhalte-Kategorien KnowledgemanagementsCategoriesArea=KM Artikelkategorien -UseOrOperatorForCategories=Verwenden Sie den Operator 'ODER' für Kategorien +UseOrOperatorForCategories=Kategoriesuche mit "ODER"-Verknüpfung ausführen AddObjectIntoCategory=Objekt zur Kategorie hinzufügen diff --git a/htdocs/langs/de_DE/commercial.lang b/htdocs/langs/de_DE/commercial.lang index ef4728401fb..0dbcc615b4e 100644 --- a/htdocs/langs/de_DE/commercial.lang +++ b/htdocs/langs/de_DE/commercial.lang @@ -18,7 +18,7 @@ TaskRDVWith=Termin mit %s ShowTask=Aufgabe anzeigen ShowAction=Ereignis anzeigen ActionsReport=Ereignis Journal -ThirdPartiesOfSaleRepresentative=Partner mit Vertriebsmitarbeiter +ThirdPartiesOfSaleRepresentative=Geschäftspartner des Vertriebsmitarbeiters SaleRepresentativesOfThirdParty=Vertriebsmitarbeiter des Geschäftspartners SalesRepresentative=Vertriebsmitarbeiter SalesRepresentatives=Vertriebsmitarbeiter @@ -74,8 +74,16 @@ StatusProsp=Kontaktstatus DraftPropals=Entworfene Angebote NoLimit=ohne Begrenzung ToOfferALinkForOnlineSignature=Link zur Onlinesignatur -WelcomeOnOnlineSignaturePage=%s begrüßt Sie zum Online-Service für Angebotsfreigaben -ThisScreenAllowsYouToSignDocFrom=Auf dieser Seite können Angebote angenommen und unterschrieben oder abgelehnt werden. -ThisIsInformationOnDocumentToSign=Information zum Dokument +WelcomeOnOnlineSignaturePageProposal=%s begrüßt Sie zum Online-Service für Angebotsfreigaben +WelcomeOnOnlineSignaturePageContract=Willkommen auf der %s Vertrags-PDF-Unterzeichnungsseite +WelcomeOnOnlineSignaturePageFichinter=Willkommen auf der PDF-Signaturseite von Serviceauftrag %s +ThisScreenAllowsYouToSignDocFromProposal=Auf dieser Seite können Angebote angenommen und unterschrieben oder abgelehnt werden. +ThisScreenAllowsYouToSignDocFromContract=Auf dieser Seite können Sie den Vertrag im PDF-Format online unterzeichnen. +ThisScreenAllowsYouToSignDocFromFichinter=Auf dieser Seite können Sie Serviceaufträge im PDF-Format online unterzeichnen. +ThisIsInformationOnDocumentToSignProposal=Information zum Dokument +ThisIsInformationOnDocumentToSignContract=Diese Vertragsinformationen sind zu unterzeichnen +ThisIsInformationOnDocumentToSignFichinter=Dies ist eine Information über den zu unterzeichnenden Serviceauftrag SignatureProposalRef=Unterschrift des Angebotes %s +SignatureContractRef=Unterschrift zum Vertrag %s +SignatureFichinterRef=Unterzeichnung des Serviceauftrags %s FeatureOnlineSignDisabled=Onlineunterschrift ist deaktiviert oder das Dokument wurde erstellt, bevor diese Funktion aktiviert wurde diff --git a/htdocs/langs/de_DE/companies.lang b/htdocs/langs/de_DE/companies.lang index 0797e3164ab..2c1086dbf3a 100644 --- a/htdocs/langs/de_DE/companies.lang +++ b/htdocs/langs/de_DE/companies.lang @@ -29,7 +29,7 @@ AliasNameShort=Alias-Name Companies=Firmen CountryIsInEEC=Land ist EU-Mitglied PriceFormatInCurrentLanguage=Preisanzeigeformat in der aktuellen Sprache und Währung -ThirdPartyName=Name des Partners +ThirdPartyName=Name des Geschäftspartners ThirdPartyEmail=Geschäftspartner E-Mail ThirdParty=Geschäftspartner ThirdParties=Geschäftspartner @@ -130,7 +130,7 @@ ProfId1AT=Steuernummer (Finanzamt) ProfId2AT=Gerichtsstand ProfId3AT=Firmenbuchnummer ProfId4AT=DVR-Nummer -ProfId5AT=EORI-Nummer +ProfId5AT=EORI Nummer ProfId6AT=- ProfId1AU=Prof ID 1 ProfId2AU=- @@ -313,7 +313,7 @@ CustomerAbsoluteDiscountShort=Rabatt absolut CompanyHasRelativeDiscount=Dieser Kunde hat einen Rabatt von %s%% CompanyHasNoRelativeDiscount=Dieser Kunde hat standardmäßig keinen prozentualen Rabatt HasRelativeDiscountFromSupplier=Sie haben einen Standardrabatt von %s%% bei diesem Lieferanten -HasNoRelativeDiscountFromSupplier=Kein prozentualer Rabatt bei diesem Lieferanten +HasNoRelativeDiscountFromSupplier=Kein prozentualer Standardrabatt 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 @@ -358,8 +358,8 @@ ValidityControledByModule=Vom Modul kontrollierte Gültigkeit ThisIsModuleRules=Regeln für dieses Modul ProspectToContact=Zu kontaktierender Interessent CompanyDeleted=Unternehmen "%s" aus der Datenbank gelöscht. -ListOfContacts=Liste der Kontakte -ListOfContactsAddresses=Liste der Kontakte +ListOfContacts=Liste der Kontakte/Adressen +ListOfContactsAddresses=Liste der Kontakte/Adressen ListOfThirdParties=Liste der Geschäftspartner ShowCompany=Geschäftspartner ShowContact=Kontakt-Adresse @@ -435,8 +435,8 @@ ExportDataset_company_1=Geschäftspartner (Firmen/Stiftungen/Natürliche Persone ExportDataset_company_2=Kontakte und ihre Eigenschaften ImportDataset_company_1=Geschäftspartner und ihre Eigenschaften ImportDataset_company_2=Kontakte/Adressen und Attribute -ImportDataset_company_3=Bankkonten des Geschäftspartners -ImportDataset_company_4=Dem Geschäftspartner zugeordneter Vertriebsmitarbeiter (Vertriebsmitarbeiter/Benutzer zu Unternehmen zuordnen) +ImportDataset_company_3=Bankkonten der Geschäftspartner +ImportDataset_company_4=Geschäftspartnern zugeordnete Vertriebsmitarbeiter (Vertriebsmitarbeiter/Benutzer zu Unternehmen zuordnen) PriceLevel=Preisstufe PriceLevelLabels=Preisniveau Etiketten DeliveryAddress=Lieferadresse @@ -444,7 +444,7 @@ AddAddress=Adresse hinzufügen SupplierCategory=Lieferantenkategorie JuridicalStatus200=Unabhängig DeleteFile=Datei löschen -ConfirmDeleteFile=Möchten Sie diese Datei wirklich löschen? +ConfirmDeleteFile=Möchten Sie die Datei %s wirklich löschen? AllocateCommercial=Diesem Vertriebsmitarbeiter zugeordnet Organization=Organisation FiscalYearInformation=Geschäftsjahr @@ -498,3 +498,8 @@ RestOfEurope=übriges Europa (EU / EWG) OutOfEurope=außerhalb Europas (EU / EWG) CurrentOutstandingBillLate=Offene Posten BecarefullChangeThirdpartyBeforeAddProductToInvoice=Seien Sie vorsichtig: Abhängig von Ihren Produktpreiseinstellungen sollten Sie den Geschäftspartner wechseln, bevor Sie das Produkt zum POS hinzufügen. +EmailAlreadyExistsPleaseRewriteYourCompanyName=E-Mail existiert bereits, bitte geben Sie Ihren Firmennamen neu ein +TwoRecordsOfCompanyName=Für dieses Unternehmen existiert mehr als ein Datensatz. Bitte kontaktieren Sie uns, um Ihre Partnerschaftsanfrage abzuschließen. +CompanySection=Unternehmensbereich +ShowSocialNetworks=Soziale Netzwerke anzeigen +HideSocialNetworks=Soziale Netzwerke ausblenden diff --git a/htdocs/langs/de_DE/compta.lang b/htdocs/langs/de_DE/compta.lang index 35463b55e12..0d5579f0a49 100644 --- a/htdocs/langs/de_DE/compta.lang +++ b/htdocs/langs/de_DE/compta.lang @@ -5,8 +5,8 @@ TaxModuleSetupToModifyRulesLT=Hier können Sie die Einstellungen Die Gültigkeit der Zahlen ist nur bei Überprüfung der Zu- und Abgänge auf den Konten über Rechnungen gewährleistet. +OptionModeTrueDesc=Der Umsatz wird über Zahlungen (Zahlungszeitpunkt) berechnet (Ist-Versteuerung). Die Aussagekraft ist nur gegeben, wenn die Einnahmen und Ausgaben auf Basis entsprechender Rechnungen korrekt auf den Konten verbucht werden. +OptionModeVirtualDesc=Der Umsatz wird über Rechnungen (Rechnungsdatum) ermittelt (Soll-Versteuerung). Wenn diese Rechnungen fällig sind, ob sie bezahlt wurden oder nicht, werden sie in der Umsatzausgabe aufgeführt. FeatureIsSupportedInInOutModeOnly=Dieses Feature ist nur in der Soll-Haben-Option verfügbar (siehe Konfiguration des Rechnungswesen-Moduls) VATReportBuildWithOptionDefinedInModule=Die hier ausgewiesenen Beträge werden unter Verwendung der USt.-Regeln definiert. LTReportBuildWithOptionDefinedInModule=Die hier ausgewiesenen Beträge werden unter Verwendung der Firmen-Regeln definiert. @@ -29,6 +29,8 @@ BalanceBefore=Saldo (vorher) Balance=Saldo Debit=Soll Credit=Haben +AccountingDebit=Soll +AccountingCredit=Haben Piece=Beleg AmountHTVATRealReceived=Einnahmen (netto) AmountHTVATRealPaid=Ausgaben (netto) @@ -126,10 +128,10 @@ Turnover=Verrechneter Umsatz TurnoverCollected=Realisierter Umsatz SalesTurnoverMinimum=Mindestumsatz ByExpenseIncome=Ausgaben & Einnahmen -ByThirdParties=Durch Partner -ByUserAuthorOfInvoice=Durch Rechnungsersteller -CheckReceipt=Scheck erhalten -CheckReceiptShort=Scheck erhalten +ByThirdParties=Nach Geschäftspartnern +ByUserAuthorOfInvoice=Nach Rechnungsersteller +CheckReceipt=Scheckeinlösung +CheckReceiptShort=Scheckeinlösung LastCheckReceiptShort=%s neueste Schecks NewCheckReceipt=Neuen Scheck erhalten NewCheckDeposit=Neue Check Hinterlegung @@ -156,7 +158,7 @@ CalcModeVATDebt=Modus %s USt. auf Engagement Rechnungslegung %s. CalcModeVATEngagement=Modus %sTVA auf Einnahmen-Ausgaben%s. CalcModeDebt=Analyse bekannter erfasster Dokumente, auch wenn diese noch nicht im Hauptbuch erfasst sind. CalcModeEngagement=Analyse der erfassten Zahlungen, auch wenn diese noch nicht kontiert wurden -CalcModeBookkeeping=Analyse der in der Tabelle Buchhaltungs-Ledger protokollierten Daten. +CalcModeBookkeeping=Analyse der im Hauptbuch protokollierten Daten. CalcModeLT1= Modus %sRE auf Kundenrechnungen - Lieferantenrechnungen%s CalcModeLT1Debt=Modus %sRE auf Kundenrechnungen%s CalcModeLT1Rec= Modus %sRE auf Lieferantenrechnungen%s @@ -166,19 +168,19 @@ CalcModeLT2Rec= Modus %sIRPF auf Lieferantenrechnungen%s AnnualSummaryDueDebtMode=Saldo der Erträge und Aufwendungen, Jahresübersicht AnnualSummaryInputOutputMode=Saldo der Erträge und Aufwendungen, Jahresübersicht AnnualByCompanies=Bilanz Ertrag/Aufwand, pro vordefinierten Kontogruppen -AnnualByCompaniesDueDebtMode=Die Ertrags-/Aufwands-Bilanz nach vordefinierten Gruppen, im Modus %sForderungen-Verbindlichkeiten%s meldet Kameralistik. -AnnualByCompaniesInputOutputMode=Die Ertrags-/Aufwands-Bilanz im Modus %sEinkünfte-Ausgaben%s meldet Ist-Besteuerung. +AnnualByCompaniesDueDebtMode=Die Ertrags-/Aufwands-Bilanz nach vordefinierten Gruppen im Modus %sForderungen-Verbindlichkeiten%s d.h. Soll-Versteuerung. +AnnualByCompaniesInputOutputMode=Die Ertrags-/Aufwands-Bilanz im Modus %sEinkünfte-Ausgaben%s d.h. Soll-Versteuerung. SeeReportInInputOutputMode=Siehe %sAnalyse der Zahlungen%s für eine Berechnung basierend auf erfassten Zahlungen , auch wenn diese noch nicht ins Hauptbuch übernommen wurden. -SeeReportInDueDebtMode=Siehe %sAnalyse aufgezeichneter Dokumente%s für eine Berechnung basierend auf bekannten aufgezeichneten Dokumenten , auch wenn diese noch nicht ins Hauptbuch übernommen wurden. +SeeReportInDueDebtMode=Siehe %sAnalyse aufgezeichneter Dokumente%s für eine Berechnung basierend auf bekannten aufgezeichneten Dokumenten, auch wenn diese noch nicht ins Hauptbuch übernommen wurden. SeeReportInBookkeepingMode=Siehe %sAnalyse des Buchhaltungsbuchs-Tabelle%s für einen Bericht basierend auf Buchhaltungstabelle -RulesAmountWithTaxIncluded=- Angezeigte Beträge enthalten alle Steuern +RulesAmountWithTaxIncluded=- Angezeigte Beträge enthalten sämtliche Steuern RulesAmountWithTaxExcluded=- Die ausgewiesenen Rechnungsbeträge verstehen sich ohne Steuern -RulesResultDue=- Es beinhaltet alle Rechnungen, Ausgaben, Mehrwertsteuer, Spenden, Gehälter, unabhängig davon, ob sie bezahlt wurden oder nicht.
- Es basiert auf dem Fälligkeitsdatum von Rechnungen und dem Fälligkeitsdatum für Spesen oder Steuerzahlungen. Für Gehälter wird das Datum des Periodenendes verwendet. -RulesResultInOut=- Es enthält die tatsächlichen Zahlungen auf Rechnungen, Ausgaben, Mehrwertsteuer und Gehälter.
- Es basiert auf den Zahlungsterminen der Rechnungen, Spesen, Mehrwertsteuer, Spenden und Gehälter. -RulesCADue=- Es enthält die fälligen Rechnungen des Kunden, ob diese bezahlt sind oder nicht.
- Es basiert auf dem Rechnungsdatum dieser Rechnungen.
-RulesCAIn=- Es umfasst alle effektiven Zahlungen von Rechnungen, die von Kunden erhalten wurden.
- Es basiert auf dem Zahlungsdatum dieser Rechnungen.
-RulesCATotalSaleJournal=Es beinhaltet alle Gutschriftspositionen aus dem Verkaufsjournal. -RulesSalesTurnoverOfIncomeAccounts=Es umfasst (Gutschrift - Lastschrift) von Zeilen für Produktkonten in der Gruppe EINKOMMEN +RulesResultDue=- Es sind alle Rechnungen, Ausgaben, Mehrwertsteuer, Spenden, Gehälter, unabhängig davon, ob sie bezahlt wurden oder nicht, enthalten.
- Basis ist das Fälligkeitsdatum von Rechnungen und das Fälligkeitsdatum für Spesen oder Steuerzahlungen. Für Gehälter wird das Datum des Periodenendes verwendet. +RulesResultInOut=- Enthalten sind die tatsächlichen Zahlungen auf Rechnungen, Ausgaben, Mehrwertsteuer und Gehälter.
- Basis ist der Zahlungstermin der Rechnungen, Spesen, Mehrwertsteuer, Spenden und Gehälter. +RulesCADue=- Fällige Kundenrechnungen sind enthalten, ob diese bezahlt sind oder nicht.
- Basis ist das Rechnungsdatum dieser Rechnungen.
+RulesCAIn=- Enthalten sind alle effektiven Zahlungen von Rechnungen, die von Kunden erhalten wurden.
- Basis ist das Zahlungsdatum dieser Rechnungen.
+RulesCATotalSaleJournal=Alle Gutschriftspositionen aus dem Verkaufsjournal sind einbezogen. +RulesSalesTurnoverOfIncomeAccounts=Buchungen (Soll - Haben) von Positionen für Produktkonten in der Gruppe "Ertrag" sind enthalten RulesAmountOnInOutBookkeepingRecord=Beinhaltet Datensätze aus dem Hauptbuch mit den Gruppen "Aufwand" oder "Ertrag" RulesResultBookkeepingPredefined=Beinhaltet Datensätze aus dem Hauptbuch mit den Gruppen "Aufwand" oder "Ertrag" RulesResultBookkeepingPersonalized=Zeigt die Buchungen im Hauptbuch mit Konten gruppiert nach Kontengruppen @@ -220,7 +222,7 @@ InvoiceStats=Rechnungen Statistik Dispatch=Versenden Dispatched=Versendet ToDispatch=Zu versenden -ThirdPartyMustBeEditAsCustomer=Partner muss als Kunde definiert werden +ThirdPartyMustBeEditAsCustomer=Geschäftspartner muss als Kunde definiert werden SellsJournal=Verkaufsjournal PurchasesJournal=Einkaufsjournal DescSellsJournal=Verkaufsjournal @@ -228,10 +230,10 @@ DescPurchasesJournal=Einkaufsjournal CodeNotDef=Nicht definiert WarningDepositsNotIncluded=Anzahlungsrechnungen werden in dieser Version des Rechnungswesens nicht berücksichtigt. DatePaymentTermCantBeLowerThanObjectDate=Die Zahlungsfrist darf nicht kleiner als das Objektdatum sein -Pcg_version=Kontenplan Modelle +Pcg_version=Kontenplan-Vorlagen Pcg_type=Klasse des Kontos Pcg_subtype=Klasse des Kontos -InvoiceLinesToDispatch=versandbereite Rechnungspositionen +InvoiceLinesToDispatch=Versandbereite Rechnungspositionen ByProductsAndServices=Nach Produkten und Leistungen RefExt=Externe Referenz ToCreateAPredefinedInvoice=Um eine Vorlagenrechnung zu erstellen, erstellen Sie eine Standardrechnung und klicken Sie dann ohne Validierung auf die Schaltfläche "%s". @@ -243,14 +245,14 @@ CalculationRuleDescSupplier=Wählen Sie je nach Anbieter die geeignete Methode a TurnoverPerProductInCommitmentAccountingNotRelevant=Der Umsatzbericht pro Produkt ist nicht verfügbar. Dieser Bericht ist nur für verrechneten Umsatz verfügbar. TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Der Umsatzbericht pro Ust.-Satz ist nicht verfügbar. Dieser Bericht ist nur für den verrechneten Umsatz verfügbar. CalculationMode=Berechnungsmodus -AccountancyJournal=Kontierungscode-Journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Standard Buchhaltungs-Konto für Mehrwertsteuer - USt. auf Umsatz (wird verwendet, wenn nicht unter Einstellungen->Stammdaten USt-Sätze mit Kontozuordnungen hinterlegt sind) -ACCOUNTING_VAT_BUY_ACCOUNT=Standard Buchhaltungs-Konto für Vorsteuer - USt. bei Einkäufen (wird verwendet, wenn nicht unter Einstellungen->Stammdaten USt.-Sätze mit Kontozuordnungen hinterlegt sind) -ACCOUNTING_VAT_PAY_ACCOUNT=Standard-Aufwandskonto, um MwSt zu bezahlen -ACCOUNTING_ACCOUNT_CUSTOMER=Standard Buchhaltungskonto für Kunden/Debitoren (wenn nicht beim Partner definiert) -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Das beim Geschäftspartner definierte spezielle Buchhaltungskonto wird nur für die Nebenbuchhaltung verwendet. Dieses wird für das Hauptbuch und als Standardwert der Nebenbuchhaltung verwendet, wenn kein eigenes Debitorenbuchhaltungskonto für den Geschäftspartner definiert ist. -ACCOUNTING_ACCOUNT_SUPPLIER=Buchhaltungskonto für Lieferanten/Kreditoren -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Das beim Geschäftspartner definierte spezielle Buchhaltungskonto wird nur für die Nebenbuchhaltung verwendet. Dieses wird für das Hauptbuch und als Standardwert der Nebenbuchhaltung verwendet, wenn kein dediziertes Kreditorenbuchhaltungskonto für den Partner definiert ist. +AccountancyJournal=Erfassung in Journal +ACCOUNTING_VAT_SOLD_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die Umsatzsteuer auf Verkäufe verwendet werden soll (wird verwendet, wenn nicht in den Umsatzsteuer-Stammdaten definiert) +ACCOUNTING_VAT_BUY_ACCOUNT=Konto (aus dem Kontenplan), das als Standardkonto für die Umsatzsteuer auf Einkäufe verwendet werden soll (wird verwendet, wenn nicht in den Umsatzsteuer-Stammdaten definiert) +ACCOUNTING_VAT_PAY_ACCOUNT=Konto (aus dem Kontenplan), das als Standard-Aufwandskonto für die Zahlung der Umsatzsteuer verwendet werden soll +ACCOUNTING_ACCOUNT_CUSTOMER=Konto (aus dem Kontenplan), das für Geschäftspartner, die „Kunde" sind, verwendet wird +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Das beim Geschäftspartner definierte spezielle Buchungskonto wird nur für die Nebenbuchhaltung verwendet. Dieses wird für das Hauptbuch und als Standardwert der Nebenbuchhaltung verwendet, wenn kein eigenes Debitorenbuchungskonto für den Geschäftspartner definiert ist. +ACCOUNTING_ACCOUNT_SUPPLIER=Konto (aus dem Kontenplan), das für Geschäftspartner, die "Lieferanten" sind, verwendet wird +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Das beim Geschäftspartner definierte spezielle Buchungskonto wird nur für die Nebenbuchhaltung verwendet. Dieses wird für das Hauptbuch und als Standardwert der Nebenbuchhaltung verwendet, wenn kein dediziertes Kreditorenbuchungskonto für den Geschäftspartner definiert ist. ConfirmCloneTax=Duplizierung der Steuer-/Sozialabgaben bestätigen ConfirmCloneVAT=Bestätigen Sie den Klon einer Mehrwertsteuererklärung ConfirmCloneSalary=Bestätige das Klonen der Gehaltsangabe @@ -266,7 +268,7 @@ ImportDataset_tax_contrib=Steuern/Sozialabgaben ImportDataset_tax_vat=USt.-Zahlungen ErrorBankAccountNotFound=Fehler: Bankkonto nicht gefunden FiscalPeriod=Buchhaltungsperiode -ListSocialContributionAssociatedProject=Liste der Sozialabgaben für dieses Projekt +ListSocialContributionAssociatedProject=Liste der mit dem Projekt verbundenen Sozialabgaben DeleteFromCat=Aus Kontengruppe entfernen AccountingAffectation=Kontierung zuweisen LastDayTaxIsRelatedTo=Letzter Tag an dem die Steuer relevant ist @@ -274,7 +276,7 @@ VATDue=Umsatzsteuer beansprucht ClaimedForThisPeriod=Beantragt in der Periode PaidDuringThisPeriod=Für diesen Zeitraum bezahlt PaidDuringThisPeriodDesc=Dies ist die Summe aller Zahlungen im Zusammenhang mit Mehrwertsteuererklärungen, deren Periodenende im ausgewählten Zeitraum liegt -ByVatRate=Pro Steuersatz +ByVatRate=Nach Steuersätzen TurnoverbyVatrate=Verrechneter Umsatz pro Steuersatz TurnoverCollectedbyVatrate=Realisierter Umsatz pro Steuersatz PurchasebyVatrate=Einkäufe pro Steuersatz @@ -282,9 +284,9 @@ LabelToShow=Kurzbezeichnung PurchaseTurnover=Einkaufsumsatz PurchaseTurnoverCollected=Einkaufsumsatz abgerechnet RulesPurchaseTurnoverDue=- Es enthält die fälligen Rechnungen des Lieferanten, ob diese bezahlt sind oder nicht.
- Es basiert auf dem Rechnungsdatum dieser Rechnungen.
-RulesPurchaseTurnoverIn=- Es umfasst alle effektiven Zahlungen von Rechnungen an Lieferanten.
- Es basiert auf dem Zahlungsdatum dieser Rechnungen
+RulesPurchaseTurnoverIn=- Es umfasst alle effektiven Zahlungen von Rechnungen an Lieferanten.
- Es basiert auf dem Zahlungsdatum dieser Rechnungen.
RulesPurchaseTurnoverTotalPurchaseJournal=Es enthält alle Belastungszeilen aus dem Einkaufsjournal. -RulesPurchaseTurnoverOfExpenseAccounts=Es umfasst (Lastschrift - Gutschrift) von Zeilen für Produktkonten in der Gruppe AUSGABEN +RulesPurchaseTurnoverOfExpenseAccounts=Umfasst Buchungen (Soll - Haben) von Positionen für Produktkonten in der Gruppe "Aufwand". ReportPurchaseTurnover=Einkaufsumsatz fakturiert ReportPurchaseTurnoverCollected=Einkaufsumsatz abgerechnet IncludeVarpaysInResults = Nehmen Sie verschiedene Zahlungen in Berichte auf @@ -298,5 +300,6 @@ InvoiceNotLate30Days = Demnächst fällig (> 30 Tage) InvoiceToPay=Zu zahlen (< 15 Tage) InvoiceToPay15Days=Zu zahlen (15 bis 30 Tage) InvoiceToPay30Days=Zu zahlen (> 30 Tage) -ConfirmPreselectAccount=Buchhaltungscode vorbelegen +ConfirmPreselectAccount=Buchungskonto vorbelegen ConfirmPreselectAccountQuestion=Möchten Sie die %s ausgewählten Zeilen wirklich mit diesem Buchhaltungscode vorbelegen? +AmountPaidMustMatchAmountOfDownPayment=Der gezahlte Betrag muss mit dem Betrag der Anzahlung übereinstimmen diff --git a/htdocs/langs/de_DE/contracts.lang b/htdocs/langs/de_DE/contracts.lang index 87886ef5226..1fdb8b46c12 100644 --- a/htdocs/langs/de_DE/contracts.lang +++ b/htdocs/langs/de_DE/contracts.lang @@ -3,17 +3,17 @@ ContractsArea=Übersicht Verträge/Abonnements ListOfContracts=Liste der Verträge AllContracts=Alle Verträge ContractCard=Vertrag – Übersicht -ContractStatusNotRunning=Nicht aktiviert +ContractStatusNotRunning=Nicht aktiv ContractStatusDraft=Entwurf ContractStatusValidated=Freigegeben -ContractStatusClosed=Geschlossen -ServiceStatusInitial=Nicht aktiviert +ContractStatusClosed=Beendet +ServiceStatusInitial=Nicht aktiv ServiceStatusRunning=Läuft -ServiceStatusNotLate=Läuft (noch nicht abgelaufen) +ServiceStatusNotLate=Aktiv ServiceStatusNotLateShort=Nicht abgelaufen ServiceStatusLate=Läuft (abgelaufen) ServiceStatusLateShort=Abgelaufen -ServiceStatusClosed=Geschlossen +ServiceStatusClosed=Beendet ShowContractOfService=Zeige Vertrag zur Leistung Contracts=Verträge ContractsSubscriptions=Verträge/Abonnements @@ -27,7 +27,7 @@ MenuServices=Leistungen MenuInactiveServices=Inaktive Leistungen MenuRunningServices=Aktive Leistungen MenuExpiredServices=Abgelaufene Leistungen -MenuClosedServices=Geschlossene Leistungen +MenuClosedServices=Beendete Leistungen NewContract=Neuer Vertrag NewContractSubscription=Neuer Vertrag oder Abonnement AddContract=Vertrag erstellen @@ -37,7 +37,7 @@ CloseAContract=Vertrag schließen ConfirmDeleteAContract=Möchten Sie diesen Vertrag und alle verbundenen Leistungen wirklich löschen? ConfirmValidateContract=Möchten Sie diesen Vertrag wirklich unter dem Namen %s freigeben? ConfirmActivateAllOnContract=Dies wird alle Leistungen aktivieren, die noch nicht aktiv sind. Sollen wirklich alle Leistungen aktiviert werden? -ConfirmCloseContract=Es werden alle Leistungen geschlossen (auch laufende). Möchten Sie diesen Vertrag wirklich schließen? +ConfirmCloseContract=Es werden alle Leistungen beendet (auch laufende). Möchten Sie diesen Vertrag wirklich schließen? ConfirmCloseService=Möchten Sie diese Leistung wirklich mit Datum %s deaktivieren? ValidateAContract=Einen Vertrag freigeben ActivateService=Leistung aktivieren @@ -48,7 +48,7 @@ DateServiceActivate=Aktivierungsdatum der Leistung ListOfServices=Liste der Leistungen ListOfInactiveServices=Liste der nicht aktiven Leistungen ListOfExpiredServices=Liste der abgelaufenen, aktiven Leistungen -ListOfClosedServices=Liste der geschlossenen Leistungen +ListOfClosedServices=Liste der beendeten Leistungen ListOfRunningServices=Liste aktiver Leistungen NotActivatedServices=Inaktive Leistungen (in freigegebenen Verträgen) BoardNotActivatedServices=Zu aktivierende Leistungen in freigegebenen Verträgen @@ -80,7 +80,7 @@ ConfirmDeleteContractLine=Möchten Sie diese Vertragsposition wirklich löschen? MoveToAnotherContract=Leistung in anderen Vertrag verschieben. ConfirmMoveToAnotherContract=Neuer Vertrag als Ziel für das Verschieben gewählt. Die Leistung jetzt in diesen Vertrag verschieben. ConfirmMoveToAnotherContractQuestion=Auswählen, in welchen bestehenden Vertrag (desselben Geschäftspartners) diese Leistung verschoben werden soll? -PaymentRenewContractId=Verlängere Vertragsposition (Nummer %s) +PaymentRenewContractId=Vertrag verlängern %s (Leistung %s) ExpiredSince=Ablaufdatum NoExpiredServices=Keine abgelaufen aktiven Leistungen ListOfServicesToExpireWithDuration=Liste der Leistungen die in %s Tagen ablaufen diff --git a/htdocs/langs/de_DE/cron.lang b/htdocs/langs/de_DE/cron.lang index 2d6a6b86deb..fb71ac7e632 100644 --- a/htdocs/langs/de_DE/cron.lang +++ b/htdocs/langs/de_DE/cron.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - cron # About page # Right -Permission23101 = geplante Aufgabe einsehen -Permission23102 = Erstelle/ändere geplanten Job +Permission23101 = Geplante Aufgabe einsehen +Permission23102 = Erstelle/aktualisiere geplanten Job Permission23103 = Lösche geplanten Job Permission23104 = Führe geplanten Job aus # Admin @@ -16,7 +16,7 @@ CronExplainHowToRunWin=In Microsoft™ Windows Umgebungen können Sie die Aufgab CronMethodDoesNotExists=Klasse %s enthält keine Methode %s CronMethodNotAllowed=Die Methode %s der Klasse %s befindet sich in der schwarzen Liste der verbotenen Methoden CronJobDefDesc=Cron-Jobprofile sind in der Moduldeskriptordatei definiert. Wenn das Modul aktiviert ist, sind diese geladen und verfügbar, so dass Sie die Jobs über das Menü admin tools %s verwalten können. -CronJobProfiles=Liste vordefinierter Cron-Jobprofile +CronJobProfiles=Liste vordefinierter Cron-Job Profile # Menu EnabledAndDisabled=Aktiviert und deaktiviert # Page list @@ -26,7 +26,7 @@ CronCommand=Befehl CronList=Geplante Jobs CronDelete=Geplante Jobs löschen CronConfirmDelete=Sind Sie sicher, dass Sie diese geplanten Aufträge jetzt löschen möchten? -CronExecute=Geplanten Job jetzt ausführen +CronExecute=Jetzt starten CronConfirmExecute=Sind Sie sicher, dass Sie diese geplante Aufträge jetzt ausführen möchten? CronInfo=Das Modul "Cron-Jobs" erlaubt es Aufgaben zu bestimmten Zeitpunkten auszuführen. Die Aufgaben können auch manuell gestartet werden. CronTask=Job @@ -58,7 +58,7 @@ CronNote=Kommentar CronFieldMandatory=Feld %s ist zwingend nötig CronErrEndDateStartDt=Enddatum kann nicht vor dem Startdatum liegen StatusAtInstall=Status bei der Modulinstallation -CronStatusActiveBtn=Zeitplan +CronStatusActiveBtn=Zeitplanung aktivieren CronStatusInactiveBtn=Deaktivieren CronTaskInactive=Dieser Job ist deaktiviert (keine Ausführung geplant) CronId=ID @@ -84,10 +84,17 @@ MakeLocalDatabaseDumpShort=Lokales Datenbank-Backup MakeLocalDatabaseDump=Erstellen Sie einen lokalen Datenbankspeicherauszug. Parameter sind: Komprimierung ('gz' oder 'bz' oder 'none'), Sicherungstyp ('mysql', 'pgsql', 'auto'), 1, 'auto' oder zu erstellender Dateiname, Anzahl der zu speichernden Sicherungsdateien MakeSendLocalDatabaseDumpShort=Lokale Datenbanksicherung senden MakeSendLocalDatabaseDump=Lokale Datenbanksicherung per E-Mail senden. Parameter sind: an, von, Betreff, Nachricht, Dateiname (Name der gesendeten Datei), Filter ('sql' nur für Backup der Datenbank). +BackupIsTooLargeSend=Die letzte Sicherungsdatei ist zu groß, um per E-Mail gesendet zu werden +CleanUnfinishedCronjobShort=Unbeendeten Cronjob bereinigen +CleanUnfinishedCronjob=Bereinigen eines in der Verarbeitung hängengebliebenen Cronjob, wenn der Prozess nicht mehr ausgeführt wird WarningCronDelayed=Bitte beachten: Aus Leistungsgründen können Ihre Jobs um bis zu %s Stunden verzögert werden, unabhängig vom nächsten Ausführungstermin. DATAPOLICYJob=Datenbereiniger und Anonymisierer JobXMustBeEnabled=Job %s muss aktiviert sein +EmailIfError=E-Mail zur Warnung bei Fehler +ErrorInBatch=Fehler beim Ausführen des Jobs %s + # Cron Boxes LastExecutedScheduledJob=Zuletzt ausgeführter geplanter Job NextScheduledJobExecute=Nächster geplanter Job, der ausgeführt werden soll NumberScheduledJobError=Anzahl der fehlerhaften geplanten Jobs +NumberScheduledJobNeverFinished=Anzahl der geplanten Jobs, die nie beendet wurden diff --git a/htdocs/langs/de_DE/datapolicy.lang b/htdocs/langs/de_DE/datapolicy.lang new file mode 100644 index 00000000000..4880c97ae67 --- /dev/null +++ b/htdocs/langs/de_DE/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Datenschutzrichtlinien +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Modul zur Verwaltung der Datenschutzeinstellungen (DSGVO-Konform) + +# +# Administration page +# +datapolicySetup = Modul Datenschutzrichtlinien einrichten +Deletion = Löschung von Daten +datapolicySetupPage = Abhängig von den Gesetzen Ihres Landes (Beispiel Artikel 5 der DSGVO) müssen personenbezogene Daten für einen Zeitraum aufbewahrt werden, der den für die Zwecke, für die sie erhoben wurden, erforderlichen Zeitraum nicht überschreitet, mit Ausnahme von Archivierungszwecken.
Die Löschung erfolgt automatisch nach einer bestimmten Dauer ohne Ereignis (die Dauer, die Sie unten angegeben haben). +NB_MONTHS = %s Monate +ONE_YEAR = 1 Jahr +NB_YEARS = %s Jahre +DATAPOLICY_TIERS_CLIENT = Kunde +DATAPOLICY_TIERS_PROSPECT = Interessent +DATAPOLICY_TIERS_PROSPECT_CLIENT = Interessent/Kunde +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Weder Interessent noch Kunde +DATAPOLICY_TIERS_FOURNISSEUR = Lieferant +DATAPOLICY_CONTACT_CLIENT = Kunde +DATAPOLICY_CONTACT_PROSPECT = Interessent +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Interessent/Kunde +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Weder Interessent noch Kunde +DATAPOLICY_CONTACT_FOURNISSEUR = Lieferant +DATAPOLICY_ADHERENT = Mitglied +DATAPOLICY_Tooltip_SETUP = Art des Kontakts – Geben Sie Ihre Auswahl für jede Art an. +DATAPOLICYMail = E-Mail-Einrichtung +DATAPOLICYSUBJECTMAIL = Betreff der E-Mail +DATAPOLICYCONTENTMAIL = Inhalt der E-Mail +DATAPOLICYSUBSITUTION = Sie können die folgenden Variablen in Ihrer E-Mail verwenden (LINKACCEPT ermöglicht es, einen Link zu erstellen, der die Zustimmung der Person aufzeichnet, LINKREFUSED ermöglicht es, die Ablehnung der Person aufzuzeichnen): +DATAPOLICYACCEPT = Nachricht nach einer Zustimmung +DATAPOLICYREFUSE = Nachricht nach einer Ablehnung +SendAgreementText = Sie können eine DSGVO-E-Mail an alle Ihre relevanten Kontakte senden (die noch keine E-Mail erhalten haben und für die Sie nichts über ihre DSGVO-Vereinbarung registriert haben). Verwenden Sie dazu die folgende Schaltfläche. +SendAgreement = E-Mails senden +AllAgreementSend = Alle E-Mails wurden versendet +TXTLINKDATAPOLICYACCEPT = Text für den Link "Zustimmung" +TXTLINKDATAPOLICYREFUSE = Text für den Link "Ablehnung" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = DSGVO: Verarbeitung personenbezogener Daten +DATAPOLICY_consentement = Einwilligung zur Verarbeitung personenbezogener Daten eingeholt +DATAPOLICY_opposition_traitement = Widerspricht der Verarbeitung seiner personenbezogenen Daten +DATAPOLICY_opposition_prospection = widersetzt sich der Verarbeitung seiner personenbezogenen Daten zum Zwecke der Kundenakquise + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymisieren Sie einen Geschäftspartner +DATAPOLICY_POPUP_ANONYME_TEXTE = Sie können diesen Kontakt nicht aus Dolibarr löschen, da es zugeordnete Objekte gibt. In Übereinstimmung mit der DSGVO werden alle diese Daten anonymisiert, um Ihren Verpflichtungen nachzukommen. Möchten Sie fortfahren ? + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Übertragbarkeit DSGVO +DATAPOLICY_PORTABILITE_TITLE = Export personenbezogener Daten +DATAPOLICY_PORTABILITE_CONFIRMATION = Sie möchten die personenbezogenen Daten dieses Kontakts exportieren. Sind Sie sicher ? + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Anonymisiert die %s + +# V2 +DATAPOLICYReturn = DSGVO-Validierung +DATAPOLICY_date = Datum der Zustimmung/Ablehnung DSGVO +DATAPOLICY_send = Datum, an dem die Vereinbarungs-E-Mail gesendet wird +DATAPOLICYReturn = DSGVO-Validierung +DATAPOLICY_SEND = DSGVO-E-Mail senden +MailSent = Die Email wurde verschickt + +# ERROR +ErrorSubjectIsRequired = Fehler: Der Betreff der E-Mail ist erforderlich. Geben Sie ihn im Modul-Setup an +=Aufgrund eines technischen Problems konnten wir Ihre Auswahl nicht registrieren. Wir bitten dafür um Entschuldigung. Kontaktieren Sie uns, um uns Ihre Wahl zu senden. +NUMBER_MONTH_BEFORE_DELETION = Anzahl der Monate bis zum Löschen diff --git a/htdocs/langs/de_DE/dict.lang b/htdocs/langs/de_DE/dict.lang index 09e842d86b7..d28eed5e738 100644 --- a/htdocs/langs/de_DE/dict.lang +++ b/htdocs/langs/de_DE/dict.lang @@ -250,7 +250,9 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Frau +CivilityMMEShort=Frau CivilityMR=Herr +CivilityMRShort=Herr CivilityMLE=Frau CivilityMTRE=Professor CivilityDR=Doktor diff --git a/htdocs/langs/de_DE/ecm.lang b/htdocs/langs/de_DE/ecm.lang index f8a78c892f1..f5a10c0deb2 100644 --- a/htdocs/langs/de_DE/ecm.lang +++ b/htdocs/langs/de_DE/ecm.lang @@ -5,18 +5,21 @@ ECMSectionManual=Manueller Ordner ECMSectionAuto=Automatischer Ordner ECMSectionsManual=Manuelle Hierarchie ECMSectionsAuto=Automatische Hierarchie +ECMSectionsMedias=Verzeichnisbaum Medien ECMSections=Verzeichnisse (Ordner) ECMRoot=Stammverzeichnis ECMNewSection=Neuer Ordner ECMAddSection=Verzeichnis hinzufügen -ECMCreationDate=Erstellungsdatum +ECMCreationDate=Erstellungszeitpunkt ECMNbOfFilesInDir=Anzahl der Dateien im Verzeichnis ECMNbOfSubDir=Anzahl Unterverzeichnisse ECMNbOfFilesInSubDir=Anzahl der Dateien in Unterverzeichnissen ECMCreationUser=Autor ECMArea=DMS/ECM Bereich ECMAreaDesc=Der Bereich DMS/ECM (Document Management System / Electronic Content Management) ermöglicht Ihnen das schnelle Speichern, Teilen und Durchsuchen von Dokumenten aller Art in Dolibarr. -ECMAreaDesc2=* In den automatischen Verzeichnissen werden die vom System erzeugten Dokumente abgelegt.
* Die manuellen Verzeichnisse können Sie selbst verwalten und zusätzliche nicht direkt zuordenbare Dokumente hinterlegen. +ECMAreaDesc2a=* Manuelle Verzeichnisse können verwendet werden, um Dokumente zu speichern, die nicht mit einem bestimmten Element verknüpft sind. +ECMAreaDesc2b=* Automatische Verzeichnisse werden automatisch gefüllt, wenn Dokumente von der Seite eines Elements hinzugefügt werden. +ECMAreaDesc3=* Medienverzeichnis umfasst Dateien im Unterverzeichnis /medias des Dokumentenverzeichnisses, die von jedem gelesen werden können, ohne dass eine Anmeldung erforderlich ist und die Datei nicht explizit freigegeben werden muss. Es wird verwendet, um Bilddateien von E-Mail- oder Website-Modulen zu speichern. ECMSectionWasRemoved=Verzeichnis %s wurde gelöscht. ECMSectionWasCreated=Verzeichnis %s wurde erstellt. ECMSearchByKeywords=Suche nach Stichwörtern diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang index fcf914761dd..0791a31a29a 100644 --- a/htdocs/langs/de_DE/errors.lang +++ b/htdocs/langs/de_DE/errors.lang @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Benutzername %s existiert bereits. ErrorGroupAlreadyExists=Gruppe %s existiert bereits. ErrorEmailAlreadyExists=E-Mail %s existiert bereits. ErrorRecordNotFound=Eintrag wurde nicht gefunden. +ErrorRecordNotFoundShort=Nicht gefunden ErrorFailToCopyFile=Konnte die Datei '%s' nicht nach '%s' kopieren. ErrorFailToCopyDir=Konnte Verzeichnis '%s' nicht nach '%s' kopieren. ErrorFailToRenameFile=Konnte die Datei '%s' nicht in '%s' umbenennen. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Bildformat nicht unsterstützt (Ihr PHP hat keine Konvertier ErrorBadDateFormat=Eintrag '%s' hat falsche Datumsformat ErrorWrongDate=Falsches Datum! ErrorFailedToWriteInDir=Fehler beim Schreiben in das Verzeichnis %s +ErrorFailedToBuildArchive=Archivdatei %s konnte nicht erstellt werden ErrorFoundBadEmailInFile=Ungültige E-Mail-Adresse in %s Zeilen der Datei gefunden (z.B. Zeile %s mit E-Mail=%s) ErrorUserCannotBeDelete=Dieser Benutzer kann nicht gelöscht werden. Eventuell ist er noch mit einem Partner verknüpft. ErrorFieldsRequired=Einige erforderliche Felder wurden leer gelassen. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Bitte Wert für Kontrollkästchen-Liste eingeben ErrorNoValueForRadioType=Bitte Wert für Radiobutton-Liste eingeben ErrorBadFormatValueList=Die Listewerte kann nicht mehr als ein Komma:%s , muss jedoch mindestens einen Schlüssel, Wert beinhalten ErrorFieldCanNotContainSpecialCharacters=Das Feld %s darf keine Sonderzeichen enthalten. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Das Feld %s darf keine Sonderzeichen, Großbuchstaben und Leerzeichen enthalten und darf nicht nur aus Ziffern bestehen. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Das Feld %s darf weder Sonderzeichen noch Großbuchstaben enthalten und muss mit einem Buchstaben (a-z) beginnen ErrorFieldMustHaveXChar=Das Feld %s muss aus mindestens %s Zeichen bestehen. ErrorNoAccountancyModuleLoaded=Kein Buchhaltungsmodul aktiviert ErrorExportDuplicateProfil=Dieser Profilname existiert bereits für dieses Exportprofil. @@ -95,9 +97,9 @@ ErrorWrongValueForField=Feld %s (Wert '%s' passt nicht zur Regex-R ErrorHtmlInjectionForField=Feld %s : Der Wert '%s' enthält schädliche Daten, die nicht erlaubt sind ErrorFieldValueNotIn=Feld %s: '%s' ist kein Wert in Feld %s von %s ErrorFieldRefNotIn=Das Feld %s : ' %s ' ist keine %s Referenz +ErrorMultipleRecordFoundFromRef=Mehrere Datensätze gefunden bei der Suche von Ref.Nr. %s. Es ist daher unklar, welche ID verwendet werden soll. ErrorsOnXLines=%s Fehler gefunden ErrorFileIsInfectedWithAVirus=Der Virenschutz konnte diese Datei nicht freigeben (eventuell ist diese mit einem Virus infiziert) -ErrorSpecialCharNotAllowedForField=Sonderzeichen sind im Feld '%s' nicht erlaubt ErrorNumRefModel=Es besteht ein Bezug zur Datenbank (%s) der mit dieser Numerierungsfolge nicht kompatibel ist. Entfernen Sie den Eintrag oder benennen Sie den Verweis um, um dieses Modul zu aktivieren. ErrorQtyTooLowForThisSupplier=Menge zu niedrig für diesen Lieferanten oder kein für dieses Produkt definierter Preis für diesen Lieferanten ErrorOrdersNotCreatedQtyTooLow=Einige Bestellungen wurden aufgrund zu geringer Mengen nicht erstellt @@ -178,7 +180,7 @@ ErrorPriceExpression24=Variable '%s' existiert, hat aber keinen Wert ErrorPriceExpressionInternal=Interner Fehler '%s' ErrorPriceExpressionUnknown=Unbekannter Fehler '%s' ErrorSrcAndTargetWarehouseMustDiffers=Quelle und Ziel-Lager müssen unterschiedlich sein -ErrorTryToMakeMoveOnProductRequiringBatchData=Fehler, Sie versuchen Sie eine Lagerbewegung ohne Chargen-/Seriennummer für Produkt '%s' zu machen, welches diese Information benötigt +ErrorTryToMakeMoveOnProductRequiringBatchData=Fehler, Sie versuchen eine Lagerbewegung ohne Chargen-/Seriennummer für Produkt '%s' vorzunehmen, das diese Information benötigt ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Alle erfassten Eingänge müssen zunächst überprüft werden (genehmigt oder abgelehnt), bevor es erlaubt ist diese Aktion auszuführen ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Alle gespeicherten Empfänge müssen erst überprüft werden (zugelassen), bevor es ihm gestattet ist diese Aktion zu tun ErrorGlobalVariableUpdater0=HTTP-Anforderung ist mit dem Fehler '%s' fehlgeschlagen @@ -198,10 +200,10 @@ ErrorFileMustHaveFormat=Die Datei muss das Format %s haben. ErrorFilenameCantStartWithDot=Dateiname darf nicht mit "." beginnen ErrorSupplierCountryIsNotDefined=Land für diesen Lieferanten ist nicht definiert. Muss zuerst korrigiert werden. ErrorsThirdpartyMerge=Fehler beim Zusammenführen der beiden Einträge. Die Anforderung wurde abgebrochen. -ErrorStockIsNotEnoughToAddProductOnOrder=Nicht genug Bestand von Produkt %s, um es einem neuen Auftrag zuzufügen. -ErrorStockIsNotEnoughToAddProductOnInvoice=Nicht genug Bestand von Produkt %s, um es einer neuen Rechnung zuzufügen. -ErrorStockIsNotEnoughToAddProductOnShipment=Nicht genug Bestand von Produkt %s, um es einer neuen Sendung zuzufügen. -ErrorStockIsNotEnoughToAddProductOnProposal=Nicht genug Bestand von Produkt %s, um es einem neuen Angebot zuzufügen. +ErrorStockIsNotEnoughToAddProductOnOrder=Lagerbestand für Produkt %s ist zu niedrig, um es zum neuen Auftrag hinzuzufügen. +ErrorStockIsNotEnoughToAddProductOnInvoice=Lagerbestand für Produkt %s ist zu niedrig, um es zur neuen Rechnung hinzuzufügen. +ErrorStockIsNotEnoughToAddProductOnShipment=Lagerbestand für Produkt %s ist zu niedrig, um es zur neuen Lieferung hinzuzufügen. +ErrorStockIsNotEnoughToAddProductOnProposal=Lagerbestand für Produkt %s ist zu niedrig, um es zum neuen Angebot hinzuzufügen. ErrorFailedToLoadLoginFileForMode=Konnte Loginschlüssel für Modul '%s' nicht ermitteln. ErrorModuleNotFound=Datei des Modul nicht gefunden. ErrorFieldAccountNotDefinedForBankLine=Buchungskonto nicht definiert für Quell-Position %s(%s) @@ -218,7 +220,7 @@ ErrorDuplicateTrigger=Fehler, doppelter Triggername %s. Schon geladen durch %s. ErrorNoWarehouseDefined=Fehler, keine Warenlager definiert. ErrorBadLinkSourceSetButBadValueForRef=Der Link ist ungültig. Die Quelle für die Zahlung ist definiert, aber die Referenz ist ungültig. ErrorTooManyErrorsProcessStopped=Zu viele Fehler, Verarbeitung abgebrochen. -ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Massenfreigabe ist nicht Möglich, wenn die Option um den Lagerbestand zu Verändern eingeschaltet ist (Sie müssen jedes Dokument einzeln freigeben umd das Lager für die Lagerbewegung anzugeben) +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Massenfreigabe ist nicht möglich, wenn die Option zur Veränderung des Lagerbestands eingeschaltet ist (jedes Dokument ist einzeln freizugeben, um das Lager für die Lagerbewegung anzugeben) ErrorObjectMustHaveStatusDraftToBeValidated=Objekt %s muss im Entwurfstatus sein um es zu bestätigen. ErrorObjectMustHaveLinesToBeValidated=Objekt %s muss Zeilen haben damit es freigegeben werden kann. ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Nur freigegebene Rechnungen können mittels der "Via E-Mail senden" Massenaktion versendet werden. @@ -242,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Objekte müssen den Status 'Aktiv' h ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Objekte müssen den Status 'Entwurf' oder 'Deaktiviert' haben, um aktiviert werden zu können ErrorNoFieldWithAttributeShowoncombobox=Kein Feld mit der Eigenschaft 'showoncombobox' in Objektdefinition '%s'. Kann keine Combo-Box anzeigen. ErrorFieldRequiredForProduct=Feld '%s' ist erforderlich für Produkt '%s' +AlreadyTooMuchPostOnThisIPAdress=Sie haben bereits zu viel unter dieser IP-Adresse gepostet. ProblemIsInSetupOfTerminal=Das Problem liegt an der Einrichtung des Terminals %s. ErrorAddAtLeastOneLineFirst=Fügen Sie mindestens eine Zeile hinzu ErrorRecordAlreadyInAccountingDeletionNotPossible=Fehler, Datensatz ist bereits in Buchhaltung übertragen, Löschen nicht möglich. @@ -277,8 +280,8 @@ ErrorWrongFileName=Der Dateiname darf nicht __SOMETHING__ enthalten ErrorNotInDictionaryPaymentConditions=Nicht im Dictionary der Zahlungsbedingungen, bitte ändern. ErrorIsNotADraft=%s ist kein Entwurf ErrorExecIdFailed=Befehl "id" kann nicht ausgeführt werden -ErrorBadCharIntoLoginName=Unzulässiges Zeichen im Login-Namen -ErrorRequestTooLarge=Fehler, Anfrage zu groß +ErrorBadCharIntoLoginName=Unzulässiges Zeichen im Feld %s +ErrorRequestTooLarge=Fehler, Anfrage zu groß oder Sitzung abgelaufen ErrorNotApproverForHoliday=Sie sind nicht der Genehmiger für den Urlaub %s ErrorAttributeIsUsedIntoProduct=Dieses Attribut wird in mindestens einer Produktvariante verwendet ErrorAttributeValueIsUsedIntoProduct=Dieser Attributwert wird in mindestens einer Produktvariante verwendet @@ -291,6 +294,16 @@ ErrorAjaxRequestFailed=Anfrage fehlgeschlagen ErrorThirpdartyOrMemberidIsMandatory=Geschäftspartner oder Mitglied ist für die Partnerschaft verpflichtend ErrorFailedToWriteInTempDirectory=Fehler beim Schreiben in das temporäre Verzeichnis ErrorQuantityIsLimitedTo=Die Menge ist auf %s begrenzt +ErrorFailedToLoadThirdParty=Geschäftspartner mi id=%s, email=%s, name=%s konnte nicht gefunden/geladen werden +ErrorThisPaymentModeIsNotSepa=Diese Zahlungsart ist kein Bankkonto +ErrorStripeCustomerNotFoundCreateFirst=Stripe-Kunde ist für diesen Geschäftspartner nicht festgelegt (oder auf einen Wert gesetzt, der auf der Stripe-Seite gelöscht wurde). Erstellen Sie ihn zuerst (oder fügen Sie ihn erneut hinzu). +ErrorCharPlusNotSupportedByImapForSearch=Die IMAP-Suche ist nicht in der Lage, im Absender oder Empfänger nach einer Zeichenfolge zu suchen, die das Zeichen + enthält +ErrorTableNotFound=Tabelle %s nicht gefunden +ErrorValueForTooLow=Wert für %s ist zu niedrig +ErrorValueCantBeNull=Der Wert für %s darf nicht null sein +ErrorDateOfMovementLowerThanDateOfFileTransmission=Das Datum der Banküberweisung darf nicht vor dem Datum der Dateiübermittlung liegen +ErrorTooMuchFileInForm=Zu viele Dateien im Formular, die maximale Anzahl beträgt %s Datei(en) +ErrorSessionInvalidatedAfterPasswordChange=Die Sitzung wurde nach einer Änderung von Passwort, Status oder Gültigkeitsdaten ungültig. Bitte melden Sie sich erneut an. # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Ihr PHP Parameter upload_max_filesize (%s) ist größer als Parameter post_max_size (%s). Dies ist eine inkonsistente Einstellung. @@ -304,7 +317,7 @@ WarningConfFileMustBeReadOnly=Achtung: Die Konfigurationsdatei (htdocs/conf/c WarningsOnXLines=Warnhinweise in %s Quellzeilen WarningNoDocumentModelActivated=Für das Erstellen von Dokumenten ist keine Vorlage gewählt. Eine Standardvorlage wurde ausgewählt, bis Sie die Moduleinstellungen angepasst haben. WarningLockFileDoesNotExists=Achtung, nach Abschluss der Installation müssen Sie die Installations- und Migrationstools durch Hinzufügen der Datei install.lock im Verzeichnis %s deaktivieren. Die Nichterstellung dieser Datei stellt ein schwerwiegendes Sicherheitsrisiko dar. -WarningUntilDirRemoved=Alle Sicherheitswarnungen (nur für Admin-Benutzer sichtbar) bleiben aktiv, solange die Sicherheitsanfälligkeit vorliegt (oder die Konstante MAIN_REMOVE_INSTALL_WARNING in Startseite - Einstellungen - Andere Einstellungen hinzugefügt wird). +WarningUntilDirRemoved=Diese Sicherheitswarnung bleibt aktiv, solange die Schwachstelle vorhanden ist. WarningCloseAlways=Achtung: es wird auch dann geschlossen, wenn der Betrag zwischen Quelle und Ziel unterschiedlich ist. Aktivieren Sie dieses Feature mit Bedacht. WarningUsingThisBoxSlowDown=Warnung: Der Einsatz dieses Widgets verlangsamt Seiten auf denen dieses Widget aktiv ist spürbar. WarningClickToDialUserSetupNotComplete=Die ClickToDial-Informationen für Ihren Benutzer sind nicht vollständig (siehe Registerkarte ClickToDial auf Ihrer Benutzerkarte). @@ -313,6 +326,7 @@ WarningPaymentDateLowerThanInvoiceDate=Zahlungsdatum (%s) liegt vor dem Rechnung WarningTooManyDataPleaseUseMoreFilters=Zu viele Ergebnisse (mehr als %s Zeilen). Bitte benutzen Sie mehr Filter oder erhöhen sie die Konstante %s auf einen höheren Wert. WarningSomeLinesWithNullHourlyRate=Einige erfasste Zeiten wurden von Benutzern erfasst bei denen der Stundensatz undefiniert war. Ein Stundenansatz von 0 %s pro Stunde wurde verwendet, was eine fehlerhafte Zeitauswertungen zur Folge haben kann. WarningYourLoginWasModifiedPleaseLogin=Ihr Login wurde verändert. Aus Sicherheitsgründen müssen Sie sich vor der nächsten Aktion mit Ihrem neuen Login anmelden. +WarningYourPasswordWasModifiedPleaseLogin=Ihr Passwort wurde geändert. Aus Sicherheitsgründen müssen Sie sich jetzt mit Ihrem neuen Passwort anmelden. 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 @@ -326,6 +340,8 @@ WarningAvailableOnlyForHTTPSServers=Nur verfügbar, wenn eine HTTPS-gesicherte V WarningModuleXDisabledSoYouMayMissEventHere=Das Modul %s wurde nicht aktiviert. Sie können also eine Menge Veranstaltung hier verpassen. WarningPaypalPaymentNotCompatibleWithStrict=Der Wert 'Strict' führt dazu, dass die Online-Zahlungsfunktionen nicht richtig funktionieren. Verwenden Sie stattdessen 'Lax'. WarningThemeForcedTo=Warnung, das Theme wurde durch die versteckte Konstante MAIN_FORCETHEME auf %s erzwungen +WarningPagesWillBeDeleted=Achtung: dadurch werden auch alle bestehenden Seiten/Container der Website gelöscht. Sie sollten Ihre Website vorher exportieren, damit Sie ein Backup haben, um sie später wieder zu importieren. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Die automatische Freigabe ist deaktiviert, wenn die Option zur Bestandsverringerung auf "Rechnungsfreigabe" eingestellt ist. # Validate RequireValidValue = Wert nicht gültig diff --git a/htdocs/langs/de_DE/eventorganization.lang b/htdocs/langs/de_DE/eventorganization.lang index be567b9d11a..d3b21af3c45 100644 --- a/htdocs/langs/de_DE/eventorganization.lang +++ b/htdocs/langs/de_DE/eventorganization.lang @@ -54,6 +54,7 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = Schränkt im Formular zum Erstellen/Hin # Object # EventOrganizationConfOrBooth= Konferenzbeitrag oder Stand +EventOrganizationConfOrBoothes=Konferenzbeiträge oder Stände ManageOrganizeEvent = Veranstaltung organisieren ConferenceOrBooth = Konferenzbeitrag oder Stand ConferenceOrBoothTab = Konferenzbeitrag oder Stand @@ -114,25 +115,25 @@ EvntOrgRegistrationHelpMessage = Hier können Sie für einen Konferenzbeitrag ab EvntOrgRegistrationConfHelpMessage = Hier können Sie einen neue Konferenzbeitrag vorschlagen, der während der Veranstaltung gehalten werden soll. EvntOrgRegistrationBoothHelpMessage = Hier können Sie sich für einen Stand während der Veranstaltung bewerben. ListOfSuggestedConferences = Liste der vorgeschlagenen Konferenzbeiträge -ListOfSuggestedBooths = Liste der vorgeschlagenen Stände -ListOfConferencesOrBooths=Liste der Konferenzbeiträge und Stände des Veranstaltungsprojekts +ListOfSuggestedBooths=Vorgeschlagene Stände +ListOfConferencesOrBooths=Konferenzbeiträge oder Stände des Veranstaltungsprojekts SuggestConference = Einen neuen Konferenzbeitrag vorschlagen SuggestBooth = Einen Stand vorschlagen ViewAndVote = Vorgeschlagene Veranstaltungen ansehen und abstimmen PublicAttendeeSubscriptionGlobalPage = Öffentlicher Link für die Anmeldung zur Veranstaltung PublicAttendeeSubscriptionPage = Öffentlicher Link für die Anmeldung nur zu dieser Veranstaltung MissingOrBadSecureKey = Der Sicherheitsschlüssel ist ungültig oder fehlt -EvntOrgWelcomeMessage = Mit diesem Formular können Sie sich als neuer Teilnehmer für die Veranstaltung anmelden: %s +EvntOrgWelcomeMessage = Mit diesem Formular können Sie sich als neuer Teilnehmer zur Veranstaltung anmelden EvntOrgDuration = Diese Konferenz beginnt am %s und endet am %s. ConferenceAttendeeFee = Konferenzteilnehmergebühr für die Veranstaltung: '%s' vom %s bis %s. BoothLocationFee = Stand für die Veranstaltung: '%s' vom %s bis %s EventType = Ereignistyp -LabelOfBooth=Stand-Label -LabelOfconference=Konferenz-Label +LabelOfBooth=Standbezeichnung +LabelOfconference=Vortragsbezeichnung ConferenceIsNotConfirmed=Anmeldung nicht möglich, Konferenz ist noch nicht freigegeben DateMustBeBeforeThan=%s muss vor %s sein DateMustBeAfterThan=%s muss nach %s sein - +MaxNbOfAttendeesReached=Die maximale Teilnehmerzahl ist erreicht NewSubscription=Anmeldung OrganizationEventConfRequestWasReceived=Ihr Vorschlag für einen Konferenzbeitrag ist eingegangen OrganizationEventBoothRequestWasReceived=Ihre Anfrage für einen Stand ist eingegangen @@ -157,7 +158,7 @@ VoteOk = Ihre Stimme wurde angenommen. AlreadyVoted = Sie haben bereits für diese Veranstaltung abgestimmt. VoteError = Bei der Abstimmung ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut. -SubscriptionOk = Ihre Anmeldung wurde bestätigt +SubscriptionOk=Ihre Anmeldung wurde erfasst ConfAttendeeSubscriptionConfirmation = Bestätigung Ihrer Anmeldung zu einer Veranstaltung Attendee = Teilnehmer PaymentConferenceAttendee = Zahlung für Konferenzteilnehmer @@ -165,8 +166,11 @@ 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 EmailAttendee=Teilnehmer-E-Mail +EmailCompany=Firmen-E-Mail EmailCompanyForInvoice=Firmen-E-Mail (für Rechnung, falls abweichend von der Teilnehmer-E-Mail) ErrorSeveralCompaniesWithEmailContactUs=Es wurden mehrere Unternehmen mit dieser E-Mail-Adresse gefunden, sodass wir Ihre Registrierung nicht automatisch freigeben können. Bitte kontaktieren Sie uns unter %s für eine manuelle Freigabe ErrorSeveralCompaniesWithNameContactUs=Es wurden mehrere Unternehmen mit diesem Namen gefunden, 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 +DateStartEvent=Startdatum der Veranstaltung +DateEndEvent=Enddatum der Veranstaltung diff --git a/htdocs/langs/de_DE/exports.lang b/htdocs/langs/de_DE/exports.lang index e8781a675e0..2899ae434d0 100644 --- a/htdocs/langs/de_DE/exports.lang +++ b/htdocs/langs/de_DE/exports.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - exports ExportsArea=Exporte ImportArea=Import -NewExport=neuer Export -NewImport=neuer Import +NewExport=Neuer Export +NewImport=Neuer Import ExportableDatas=Exportfähige Datensätze ImportableDatas=Importfähige Datensätze SelectExportDataSet=Wählen Sie den zu exportierenden Datensatz... @@ -18,6 +18,7 @@ ExportableFields=Exportfähige Felder ExportedFields=Exportierte Felder ImportModelName=Name des Importprofils ImportModelSaved=Importprofil gespeichert unter dem Namen %s +ImportProfile=Importprofil DatasetToExport=Zu exportierender Datensatz DatasetToImport=Zu importierender Datensatz ChooseFieldsOrdersAndTitle=Wählen Sie die Reihenfolge und Bezeichnung der Felder... @@ -53,6 +54,7 @@ TypeOfLineServiceOrProduct=Art der Zeile (0=Produkt, 1=Leistung) FileWithDataToImport=Datei mit zu importierenden Daten FileToImport=Quelldatei für Import FileMustHaveOneOfFollowingFormat=Die zu importierende Datei muss eines der folgenden Formate haben +DownloadEmptyExampleShort=Beispieldatei herunterladen DownloadEmptyExample=Vorlagendatei herunterladen mit Beispielen und Informationen zu importierbaren Feldern StarAreMandatory=In der Vorlagendatei sind alle Felder mit einem * Pflichtfelder ChooseFormatOfFileToImport=Wählen Sie das Dateiformat aus, das als Importdateiformat verwendet werden soll, indem Sie auf das Symbol %s klicken, um es auszuwählen ... @@ -82,7 +84,7 @@ SelectFormat=Wählen Sie das Format der Importdatei RunImportFile=Datenimport starten NowClickToRunTheImport=Überprüfen Sie die Ergebnisse der Importsimulation. Korrigieren Sie alle Fehler und testen Sie sie erneut.
Wenn die Simulation keine Fehler meldet, können Sie die Daten in die Datenbank importieren. DataLoadedWithId=Die importierten Daten enthalten in jeder Datenbanktabelle ein zusätzliches Feld mit der folgenden Import-ID: %s , damit sie bei der Untersuchung im Falle eines Problems im Zusammenhang mit diesem Import durchsucht werden können. -ErrorMissingMandatoryValue=Pflichtfeld ist in der Quelldatei für das Feld %s leer. +ErrorMissingMandatoryValue=In der Quelldatei fehlen Pflichtdaten in der Spalte %s. TooMuchErrors=Es gibt immer noch %s andere Quellzeilen mit Fehlern, aber die Ausgabe wurde beschränkt. TooMuchWarnings=Es gibt noch %s andere Quelltextzeilen mit Warnungen, aber die Ausgabe wurde beschränkt. EmptyLine=Leerzeile (verworfen) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=Sie können alle importierten Datensätze in Ihrer NbOfLinesOK=Zeilenanzahl ohne Fehler und Warnungen: %s. NbOfLinesImported=Anzahl der erfolgreich importierten Zeilen: %s. DataComeFromNoWhere=Der einzufügende Wert kommt nicht aus der Quelldatei. -DataComeFromFileFieldNb=Der einzufügende Wert stammt aus Feldnummer %s der Quelldatei. -DataComeFromIdFoundFromRef=Der Wert, der von der Feldnummer %s der Quelldatei stammt, wird verwendet, um die ID des zu verwendenden übergeordneten Objekts zu ermitteln (daher muss das Objekt %s , welches die Referenz der Quelldatei hat in der Datenbank existieren). -DataComeFromIdFoundFromCodeId=Code, der aus der Feldnummer %s der Quelldatei stammt, wird verwendet, um die ID des zu verwendenden übergeordneten Objekts zu ermitteln (also muss der Code der Quelldatei im Verzeichnis %s existieren). Wenn Sie die ID kennen, können Sie sie auch in der Quelldatei anstelle des Codes verwenden. Der Import sollte in beiden Fällen funktionieren. +DataComeFromFileFieldNb=Einzufügender Wert stammt aus Spalte %s in der Quelldatei. +DataComeFromIdFoundFromRef=Der Wert, der aus der Quelldatei stammt, wird verwendet, um die ID des zu verwendenden übergeordneten Objekts zu finden (das Objekt %s mit der Referenz aus der Quelldatei muss daher in der Datenbank vorhanden sein). +DataComeFromIdFoundFromCodeId=Der Wert des Codes, der aus der Quelldatei stammt, wird verwendet, um die ID des zu verwendenden übergeordneten Objekts zu finden (der Code aus der Quelldatei muss daher im Wörterbuch %s vorhanden sein). Beachten Sie, dass Sie, wenn Sie die ID kennen, diese auch in der Quelldatei anstelle des Codes verwenden können. Der Import sollte in beiden Fällen funktionieren. DataIsInsertedInto=Die Quelldateidaten werden in folgendes Feld eingefügt: DataIDSourceIsInsertedInto=Die ID des übergeordneten Objekts, das anhand der Daten in der Quelldatei gefunden wurde, wird in das folgende Feld eingefügt: DataCodeIDSourceIsInsertedInto=Die ID der übergeordneten Zeile, die mittels Code gefunden wurde, wird in das folgende Feld eingefügt: @@ -132,9 +134,14 @@ FormatControlRule=Regel für die Formatkontrolle ## imports updates KeysToUseForUpdates=Schlüssel (Spalte), der zum Aktualisieren der vorhandenen Daten von verwendet wird NbInsert=Anzahl eingefügter Zeilen: %s +NbInsertSim=Anzahl der einzufügenden Zeilen: %s NbUpdate=Anzahl geänderter Zeilen: %s +NbUpdateSim=Anzahl der Zeilen, die aktualisiert werden: %s MultipleRecordFoundWithTheseFilters=Mehrere Ergebnisse wurden mit diesen Filtern gefunden: %s StocksWithBatch=Lagerbestände und Standort (Lager) von Produkten mit Chargen- / Seriennummer WarningFirstImportedLine=Die erste(n) Zeile(n) werden mit der aktuellen Auswahl nicht importiert NotUsedFields=Nicht verwendete Felder der Datenbank SelectImportFieldsSource = Ordnen Sie die Felder aus der zu importierenden Datei den entsprechenden Feldern in der Datenbank mit Hilfe der Auswahlelemente zu oder wählen Sie ein vordefiniertes Importprofil aus: +MandatoryTargetFieldsNotMapped=Einige Pflicht-Zielfelder sind nicht zugeordnet +AllTargetMandatoryFieldsAreMapped=Alle Pflicht-Zielfelder sind zugeordnet +ResultOfSimulationNoError=Simulationsergebnis: Kein Fehler diff --git a/htdocs/langs/de_DE/hrm.lang b/htdocs/langs/de_DE/hrm.lang index 6dfa51139c0..c456572ac18 100644 --- a/htdocs/langs/de_DE/hrm.lang +++ b/htdocs/langs/de_DE/hrm.lang @@ -26,8 +26,8 @@ HRM_DEFAULT_SKILL_DESCRIPTION=Standardbeschreibung der Qualifikationsstufen beim deplacement=Schicht DateEval=Bewertungstag JobCard=Position – Übersicht -JobPosition=Position -JobsPosition=Positionen +JobPosition=Stellenbeschreibung +JobsPosition=Stellenbeschreibungen NewSkill=Neue Kompetenz SkillType=Art der Kompetenz Skilldets=Liste der Qualifikationsstufen für diese Kompetenz @@ -62,7 +62,7 @@ MaxLevelLowerThan=Maximales Niveau niedriger in der Anforderung MaxlevelGreaterThanShort=Mitarbeiterniveau höher als in der Anforderung MaxLevelEqualToShort=Mitarbeiterniveau entspricht der Anforderung MaxLevelLowerThanShort=Mitarbeiterniveau niedriger als in der Anforderung -SkillNotAcquired=Kompetenz wurde nicht von allen Benutzern erworben, aber im Vergleiche angefragt +SkillNotAcquired=Kompetenz wurde nicht von allen Benutzern erworben, aber im Vergleich angefragt legend=Legende TypeSkill=Art der Kompetenz AddSkill=Kompetenzen zur Position hinzufügen @@ -86,7 +86,7 @@ SaveAddSkill = Kompetenz(en) hinzugefügt SaveLevelSkill = Kompetenzstufe gespeichert DeleteSkill = Kompetenz entfernt SkillsExtraFields=Ergänzende Attribute (Kompetenzen) -JobsExtraFields=Ergänzende Attribute (Mitarbeiter) +JobsExtraFields=Ergänzende Attribute (Stellenprofil) EvaluationsExtraFields=Ergänzende Attribute (Beurteilungen) NeedBusinessTravels=Geschäftsreisen erforderlich NoDescription=Keine Beschreibung diff --git a/htdocs/langs/de_DE/interventions.lang b/htdocs/langs/de_DE/interventions.lang index 74d8993e3eb..5a7e2d3142f 100644 --- a/htdocs/langs/de_DE/interventions.lang +++ b/htdocs/langs/de_DE/interventions.lang @@ -53,7 +53,7 @@ NumberOfInterventionsByMonth=Anzahl Dokumente für Serviceaufträge pro Monat (F AmountOfInteventionNotIncludedByDefault=Der Beitrag der Einsätze ist normalerweise nicht im Umsatz enthalten. (In den meisten Fällen werden die Einsatzstunden separat erfasst). Die globale Option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT auf 1 setzen, damit diese berücksichtigt werden. InterId=Serviceauftrag ID InterRef=Serviceauftrag Ref. -InterDateCreation=Erstellungsdatum Serviceauftrag +InterDateCreation=Erstellungszeitpunkt Serviceauftrag InterDuration=Dauer Serviceauftrag InterStatus=Status Serviceauftrag InterNote=Serviceauftrag Bemerkung @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Möchten Sie den Serviceauftrag %s wieder öffn GenerateInter=Serviceauftrag erstellen FichinterNoContractLinked=Der Serviceauftrag %s wurde ohne verknüpften Vertrag erstellt. ErrorFicheinterCompanyDoesNotExist=Unternehmen existiert nicht. Serviceauftrag wurde nicht erstellt. +NextDateToIntervention=Datum für die nächste Erzeugung eines Serviceauftrags +NoIntervention=Kein Serviceauftrag diff --git a/htdocs/langs/de_DE/link.lang b/htdocs/langs/de_DE/link.lang index 2c9e412b742..e66eb1bdf6f 100644 --- a/htdocs/langs/de_DE/link.lang +++ b/htdocs/langs/de_DE/link.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - languages -LinkANewFile=Verknüpfe eine neue Datei / ein Dokument -LinkedFiles=Verknüpfte Dateien und Dokumente +LinkANewFile=Neue Verknüpfung erstellen +LinkedFiles=Verknüpfte Dateien NoLinkFound=Keine verknüpften Links LinkComplete=Die Datei wurde erfolgreich verlinkt. ErrorFileNotLinked=Die Datei konnte nicht verlinkt werden. LinkRemoved=Der Link %s wurde entfernt ErrorFailedToDeleteLink= Fehler beim entfernen des Links '%s' ErrorFailedToUpdateLink= Fehler beim aktualisieren des Link '%s' -URLToLink=URL zum verlinken -OverwriteIfExists=Overwrite file if exists +URLToLink=zu verlinkende URL +OverwriteIfExists=Datei überschreiben, falls vorhanden diff --git a/htdocs/langs/de_DE/loan.lang b/htdocs/langs/de_DE/loan.lang index 2b5bd545473..ddc056fcbd5 100644 --- a/htdocs/langs/de_DE/loan.lang +++ b/htdocs/langs/de_DE/loan.lang @@ -28,7 +28,7 @@ CantUseScheduleWithLoanStartedToPaid = Es kann kein Zahlungsplan für ein Darleh CantModifyInterestIfScheduleIsUsed = Sie können die Zinsen nicht ändern, wenn Sie den Zahlungsplan verwenden. # Admin ConfigLoan=Konfiguration des Moduls Darlehen -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Standard-Buchungskonto Darlehensbetrag -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Standard-Buchungskonto Zinsen -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Standard-Buchungskonto Versicherung +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Konto (aus dem Kontenplan), das standardmäßig für Kapital verwendet werden soll (Darlehensmodul) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Konto (aus dem Kontenplan), das standardmäßig für Zinsen verwendet werden soll (Darlehensmodul) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Konto (aus dem Kontenplan), das standardmäßig für Versicherungen verwendet werden soll (Darlehensmodul) CreateCalcSchedule=Zahlungsplan bearbeiten diff --git a/htdocs/langs/de_DE/mailmanspip.lang b/htdocs/langs/de_DE/mailmanspip.lang index b204c1051d6..78cc73c782d 100644 --- a/htdocs/langs/de_DE/mailmanspip.lang +++ b/htdocs/langs/de_DE/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Einschreibetest wurde erfolgreich durchgeführt MailmanDeletionSuccess=Abmeldetest wurde erfolgreich durchgeführt SynchroMailManEnabled=Ein Mailman-Update wird durchgeführt werden SynchroSpipEnabled=Ein Spip-Update wird durchgeführt werden -DescADHERENT_MAILMAN_ADMINPW=Administratorpasswort +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Administratorpasswort DescADHERENT_MAILMAN_URL=URL für Mailman Anmeldungen DescADHERENT_MAILMAN_UNSUB_URL=URL für Mailman Abmeldungen DescADHERENT_MAILMAN_LISTS=Liste(n) für die automatische Beschriftung der neuen Mitglieder (durch Komma getrennt) diff --git a/htdocs/langs/de_DE/mails.lang b/htdocs/langs/de_DE/mails.lang index 2ecaed7fd36..95e4c06ba4b 100644 --- a/htdocs/langs/de_DE/mails.lang +++ b/htdocs/langs/de_DE/mails.lang @@ -7,13 +7,13 @@ MailCard=E-Mail-Kampagnenkarte MailRecipients=Empfänger MailRecipient=Empfänger MailTitle=Bezeichnung -MailFrom=Absenderadresse +MailFrom=Von MailErrorsTo=Fehlerrückmeldungen an MailReply=Antwort an -MailTo=Empfänger -MailToUsers=An Empfänger: +MailTo=An +MailToUsers=An Benutzer MailCC=Kopie an -MailToCCUsers=Kopie an Empfänger +MailToCCUsers=Kopie an Benutzer MailCCC=Blindkopie an MailTopic=E-Mail Betreff MailText=Inhalt diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang index 331d0bd8ef7..6b1db066cd9 100644 --- a/htdocs/langs/de_DE/main.lang +++ b/htdocs/langs/de_DE/main.lang @@ -34,6 +34,7 @@ NoTemplateDefined=Für diesen E-Mail-Typ ist keine Vorlage verfügbar AvailableVariables=verfügbare Variablen NoTranslation=Keine Übersetzung Translation=Übersetzung +Translations=Übersetzungen CurrentTimeZone=Aktuelle Zeitzone des PHP-Servers EmptySearchString=Keine leeren Suchkriterien eingeben EnterADateCriteria=Geben Sie ein Datumskriterium ein @@ -173,7 +174,7 @@ ConfirmSendCardByMail=Möchten Sie wirklich die Inhalte dieser Karteikarte per E Delete=Löschen Remove=Entfernen Resiliate=Beenden -Cancel=Abbrechen +Cancel=Stornieren Modify=Ändern Edit=Bearbeiten Validate=Freigeben @@ -205,6 +206,7 @@ Valid=Freigeben Approve=Genehmigen Disapprove=Abgelehnt ReOpen=Wiedereröffnen +OpenVerb=Offen Upload=Upload ToLink=Link Select=Auswählen @@ -222,8 +224,9 @@ UserGroup=Benutzergruppe UserGroups=Benutzergruppen NoUserGroupDefined=Keine Benutzergruppe definiert Password=Passwort -PasswordRetype=Geben Sie das Passwort noch einmal ein +PasswordRetype=Passwort wiederholen NoteSomeFeaturesAreDisabled=Bitte beachten Sie, dass viele Funktionen/Module in dieser Demo deaktiviert sind +YourUserFile=Ihre Benutzerdatei Name=Name NameSlashCompany=Name / Firma Person=Person @@ -280,11 +283,11 @@ DateToday=heutiges Datum DateReference=Referenzdatum DateStart=Startdatum DateEnd=Enddatum -DateCreation=Erstellungsdatum +DateCreation=Erstellungszeitpunkt DateCreationShort=Erstelldatum IPCreation=Erstellungs-IP -DateModification=Änderungsdatum -DateModificationShort=Änderungsdatum +DateModification=letzte Änderung +DateModificationShort=letzte Änderung IPModification=Änderungs-IP DateLastModification=Datum letzte Änderung DateValidation=Festschreibungsdatum @@ -296,7 +299,7 @@ DateValueShort=Valutadatum DateOperation=Ausführungsdatum DateOperationShort=Ausführungsdatum DateLimit=Frist -DateRequest=Anfragedatum +DateRequest=Auftragsdatum DateProcess=Verarbeite Datum DateBuild=Datum der Berichterstellung DatePayment=Zahlungsdatum @@ -371,9 +374,9 @@ UnitPriceHT=Stückpreis (netto) UnitPriceHTCurrency=Stückpreis (netto) (Währung) UnitPriceTTC=Stückpreis (brutto) PriceU=Einzelpr. -PriceUHT=Einzelpr. (netto) +PriceUHT=EP (netto) PriceUHTCurrency=Einzelpr. (netto) (Währung) -PriceUTTC=Einzelpr. (inkl. St.) +PriceUTTC=Einzelpr. (brutto) Amount=Betrag AmountInvoice=Rechnungsbetrag AmountInvoiced=berechneter Betrag @@ -461,7 +464,7 @@ OtherStatistics=Weitere Statistiken Status=Status Favorite=Favorit ShortInfo=Info. -Ref=Ref.Nr. +Ref=Artikelnummer ExternalRef=Externe-ID RefSupplier=Lieferanten-Zeichen RefPayment=Zahlungsref.-Nr. @@ -487,11 +490,12 @@ ActionsOnContact=Termine / Ereignisse für diesen Kontakt ActionsOnContract=Ereignisse zu diesem Kontakt ActionsOnMember=Ereignisse zu diesem Mitglied ActionsOnProduct=Ereignisse zu diesem Produkt +ActionsOnAsset=Ereignisse für dieses Anlagegut NActionsLate=%s verspätet ToDo=zu erledigen Completed=Abgeschlossen Running=in Bearbeitung -RequestAlreadyDone=Anfrage bereits bekannt +RequestAlreadyDone=Überweisungsauftrag ist bereits erstellt Filter=Filter FilterOnInto=Suchkriterium '%s' ist in den Feldern %s RemoveFilter=Filter entfernen @@ -625,7 +629,7 @@ MonthVeryShort09=S MonthVeryShort10=O MonthVeryShort11=N MonthVeryShort12=D -AttachedFiles=Angehängte Dateien und Dokumente +AttachedFiles=Angehängte Dateien JoinMainDoc=Hauptdokument verbinden JoinMainDocOrLastGenerated=Das Hauptdokument senden oder, falls nicht gefunden, das zuletzt generierte DateFormatYYYYMM=MM-YYYY @@ -808,6 +812,7 @@ URLPhoto=URL für Foto/Bild SetLinkToAnotherThirdParty=Link zu einem anderen Geschäftspartner LinkTo=Link zu LinkToProposal=Link zu Angebot +LinkToExpedition= Link zur Sendung LinkToOrder=Link zur Bestellung LinkToInvoice=Link zur Rechnung LinkToTemplateInvoice=Link zur Rechnungsvorlage @@ -893,6 +898,9 @@ MassFilesArea=Bereich für Dateien aus Massenaktionen ShowTempMassFilesArea=Bereich für Dateien aus Massenaktionen zeigen ConfirmMassDeletion=Bestätigung für Massenlöschen ConfirmMassDeletionQuestion=Möchten Sie den/die %s ausgewählten Datensatz/-sätze wirklich löschen? +ConfirmMassClone=Bestätigung des Massen-Klonens +ConfirmMassCloneQuestion=Wählen Sie das Projekt aus, in das geklont werden soll +ConfirmMassCloneToOneProject=In Projekt %s klonen RelatedObjects=Verknüpfte Objekte ClassifyBilled=Als verrechnet markieren ClassifyUnbilled=als "nicht berechnet" markieren @@ -908,8 +916,8 @@ ExportFilteredList=Exportiere gefilterte Auswahl ExportList=Liste exportieren ExportOptions=Exportoptionen IncludeDocsAlreadyExported=Bereits exportierte Dokumente einschließen -ExportOfPiecesAlreadyExportedIsEnable=Der Export von bereits exportierten Daten ist möglich -ExportOfPiecesAlreadyExportedIsDisable=Der Export von bereits exportierten Daten ist deaktiviert +ExportOfPiecesAlreadyExportedIsEnable=Bereits exportierte Dokumente sind sichtbar und werden exportiert +ExportOfPiecesAlreadyExportedIsDisable=Bereits exportierte Dokumente sind ausgeblendet und werden nicht exportiert AllExportedMovementsWereRecordedAsExported=Alle exportierten Buchungen wurden als exportiert erfasst NotAllExportedMovementsCouldBeRecordedAsExported=Nicht alle exportierten Bewegungen konnten als exportiert erfasst werden. Miscellaneous=Verschiedenes @@ -926,6 +934,7 @@ DirectDownloadInternalLink=Privater Download-Link PrivateDownloadLinkDesc=Sie müssen eingeloggt sein und Berechtigungen zum Anzeigen oder Herunterladen der Datei benötigen Download=Download DownloadDocument=Dokument herunterladen +DownloadSignedDocument=Unterzeichnetes Dokument herunterladen ActualizeCurrency=Wechselkurs aktualisieren Fiscalyear=Fiskalisches Jahr ModuleBuilder=Module Builder für Module und Anwendungen @@ -1051,6 +1060,7 @@ SearchIntoContracts=Verträge SearchIntoCustomerShipments=Kundenlieferungen SearchIntoExpenseReports=Spesenabrechnungen SearchIntoLeaves=Urlaub +SearchIntoKM=Wissensbasis SearchIntoTickets=Tickets SearchIntoCustomerPayments=Kundenzahlungen SearchIntoVendorPayments=Zahlungen an Lieferanten @@ -1122,10 +1132,11 @@ DeleteFileText=Möchten Sie diese Datei wirklich löschen? ShowOtherLanguages=Andere Sprachen anzeigen SwitchInEditModeToAddTranslation=Wechseln Sie in den Bearbeitungsmodus, um Übersetzungen für diese Sprache hinzuzufügen NotUsedForThisCustomer=Wird für diesen Kunden nicht verwendet +NotUsedForThisVendor=Für diesen Lieferanten nicht verwendet AmountMustBePositive=Der Betrag muss positiv sein ByStatus=Nach Status InformationMessage=Information -Used=Gebraucht +Used=Verwendet ASAP=So schnell wie möglich CREATEInDolibarr=Datensatz %s erstellt MODIFYInDolibarr=Datensatz %s geändert @@ -1142,15 +1153,29 @@ EventReminder=Ereignis-Erinnerung UpdateForAllLines=Aktualisierung für alle Zeilen OnHold=angehalten Civility=Anrede/Titel -AffectTag=Schlagwort/Kategorie anpassen +AffectTag=Schlagwort/Kategorie zuweisen +AffectUser=Benutzer zuordnen +SetSupervisor=Führungskraft festlegen CreateExternalUser=Externen Benutzer anlegen -ConfirmAffectTag=Massen-Verschlagwortung/Kategorisierung -ConfirmAffectTagQuestion=Sind Sie sicher, dass Sie die Schlagwörter/Kategorien für die ausgewählten Datensätze von %s anpassen möchten? +ConfirmAffectTag=Massenzuweisung von Schlagwörtern/Kategorien +ConfirmAffectUser=Massenzuordnung von Benutzern +ProjectRole=Für jedes Projekt / jeden Lead zugewiesene Rolle +TasksRole=Für jede Aufgabe zugewiesene Rolle (falls verwendet) +ConfirmSetSupervisor=Führungskraft für mehrere festlegen +ConfirmUpdatePrice=Wählen Sie den Wert der Preiserhöhung/-senkung +ConfirmAffectTagQuestion=Möchten Sie den %s ausgewählten Datensätzen wirklich Schlagwörter/Kategorien zuweisen? +ConfirmAffectUserQuestion=Möchten Sie die Benutzer wirklich den ausgewählten %s Datensätzen zuordnen? +ConfirmSetSupervisorQuestion=Möchten Sie die Führungskraft wirklich für die ausgewählten %s-Datensätze festlegen? +ConfirmUpdatePriceQuestion=Möchten Sie den Preis der %s ausgewählten Datensätze wirklich aktualisieren? CategTypeNotFound=Für den Datensatztyp wurde kein Tag-Typ gefunden +Rate=Rate +SupervisorNotFound=Führungskraft nicht gefunden CopiedToClipboard=In die Zwischenablage kopiert InformationOnLinkToContract=Dieser Betrag ist nur die Summe aller Vertragszeilen. Zeitbegriff wird nicht berücksichtigt. ConfirmCancel=Sind Sie sicher, dass Sie abbrechen möchten EmailMsgID=E-Mail MsgID +EmailDate=E-Mail-Datum +SetToStatus=Auf Status %s setzen SetToEnabled=Auf aktiviert setzen SetToDisabled=Auf deaktiviert setzen ConfirmMassEnabling=Bestätigung, alle zu aktivieren @@ -1179,11 +1204,21 @@ Terminated=Deaktiviert AddLineOnPosition=Zeile an folgender Position hinzufügen (am Ende, falls leer) ConfirmAllocateCommercial=Bestätigung der Zuordnung eines Vertriebsmitarbeiters ConfirmAllocateCommercialQuestion=Möchten Sie die ausgewählten %s-Datensätze wirklich zuweisen? -CommercialsAffected=Betroffene Vertriebsmitarbeiter -CommercialAffected=Betroffene Vertriebsmitarbeiter +CommercialsAffected=Zugeordnete Vertriebsmitabeiter +CommercialAffected=Zugeordneter Vertriebsmitarbeiter YourMessage=Ihre Nachricht YourMessageHasBeenReceived=Ihre Nachricht wurde erfasst. Wir werden Ihnen so schnell wie möglich antworten. UrlToCheck=Zu überprüfende URL Automation=Automatisierung CreatedByEmailCollector=Erstellt durch E-Mail-Collector CreatedByPublicPortal=Erstellt aus dem öffentlichen Portal +UserAgent=User-Agent +InternalUser=Interne Benutzer +ExternalUser=Externer Benutzer +NoSpecificContactAddress=Kein Kontakt oder Adresse +NoSpecificContactAddressBis=Diese Registerkarte dient dazu, bestimmte Kontakte oder Adressen für das aktuelle Objekt zu erzwingen. Verwenden Sie diese Funktion nur, wenn Sie einen oder mehrere spezifische Kontakte oder Adressen für das Objekt definieren möchten für den Fall, dass die Informationen über den Geschäftspartner nicht ausreichen oder nicht spezifisch genug sind. +HideOnVCard=%s ausblenden +AddToContacts=Adresse zu meinen Kontakten hinzufügen +LastAccess=Letzter Zugriff +UploadAnImageToSeeAPhotoHere=Laden Sie ein Bild auf der Registerkarte %s hoch, um hier ein Foto zu sehen +LastPasswordChangeDate=Datum der letzten Passwortänderung diff --git a/htdocs/langs/de_DE/margins.lang b/htdocs/langs/de_DE/margins.lang index 5629247e4d5..a03f864fecd 100644 --- a/htdocs/langs/de_DE/margins.lang +++ b/htdocs/langs/de_DE/margins.lang @@ -2,7 +2,7 @@ Margin=Gewinnspanne Margins=Gewinnspannen -TotalMargin=Gesamt-Spanne +TotalMargin=Gewinnspanne gesamt MarginOnProducts=Gewinnspanne / Produkte MarginOnServices=Gewinnspanne / Leistungen MarginRate=Gewinnspannen-Rate @@ -17,17 +17,17 @@ ProductMargins=Produkt-Gewinnspannen CustomerMargins=Kunden-Gewinnspannen SalesRepresentativeMargins=Vertreter-Gewinnspannen ContactOfInvoice=Kontakt der Rechnung -UserMargins=Spannen nach Benutzer -ProductService=Produkt oder Dienstleistung +UserMargins=Gewinnspannen nach Benutzer +ProductService=Produkt oder Leistung AllProducts=Alle Produkte und Leistungen -ChooseProduct/Service=Produkt oder Service wählen +ChooseProduct/Service=Produkt oder Leistung wählen ForceBuyingPriceIfNull=Benutze EK-Preis/Herstellkosten als Verkaufspreis, wenn nicht definiert -ForceBuyingPriceIfNullDetails=Wenn beim Hinzufügen einer neuen Zeile kein Kauf-/Einstandspreis angegeben wird und diese Option aktiviert ist, beträgt die Marge auf der neuen Zeile 0%% (Einkaufs-/Einstandspreis = Verkaufspreis). Wenn diese Option deaktiviert ist (empfohlen), entspricht die Marge dem standardmäßig vorgeschlagenen Wert (und kann 100%% betragen, wenn kein Standardwert gefunden werden kann). +ForceBuyingPriceIfNullDetails=Wenn beim Hinzufügen einer neuen Position kein Kauf-/Einstandspreis angegeben wird und diese Option AKTIVIERT ist, beträgt die Marge der neuen Position 0%% (Einkaufs-/Einstandspreis = Verkaufspreis). Wenn diese Option DEAKTIVIERT ist (empfohlen), entspricht die Marge dem standardmäßig vorgeschlagenen Wert (und kann 100%% betragen, wenn kein Standardwert gefunden werden kann). MARGIN_METHODE_FOR_DISCOUNT=Margin-Methode für globale Rabatte UseDiscountAsProduct=als Produkt -UseDiscountAsService=als Dienstleistung +UseDiscountAsService=Als Leistung UseDiscountOnTotal=auf Zwischensumme -MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Definiert, ob ein globaler Rabatt als Produkt, Service oder nur als Zwischensumme für die Gewinnberechnung benutzt wird. +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Definiert, ob ein globaler Rabatt als Produkt, als Leistung oder nur als Zwischensumme für die Gewinnberechnung benutzt wird. MARGIN_TYPE=Kaufpreis / Kosten standardmäßig vorgeschlagen für Standardmargenkalkulation empfohlen\n MargeType1=Marge beim günstigsten Einkaufspreis MargeType2=gewichtete Durchschnittspreis (WAP) diff --git a/htdocs/langs/de_DE/members.lang b/htdocs/langs/de_DE/members.lang index 6c2cbf4a389..5262debe779 100644 --- a/htdocs/langs/de_DE/members.lang +++ b/htdocs/langs/de_DE/members.lang @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Ein anderes Mitglied (Name: %s ErrorUserPermissionAllowsToLinksToItselfOnly=Aus Sicherheitsgründen müssen Sie die Berechtigungen zur Mitgliederbearbeitung besitzen, um ein Mitglied mit einem fremden Benutzerkonto (einem anderen als Ihrem eigenen) zu verknüpfen. SetLinkToUser=Mit Benutzer verknüpft SetLinkToThirdParty=Mit Geschäftspartner verknüpft +MemberCountersArePublic=Zähler gültiger Mitglieder sind öffentlich MembersCards=Erstellung von Karten MembersList=Liste der Mitglieder MembersListToValid=Liste freizugebender Mitglieder @@ -34,7 +35,8 @@ DateSubscription=Datum der Mitgliedschaft DateEndSubscription=Enddatum der Mitgliedschaft EndSubscription=Ende der Mitgliedschaft SubscriptionId=Beitrags-ID -WithoutSubscription=Ohne Mitgliedsbeitrag +WithoutSubscription=Ohne Mitgliedschaft +WaitingSubscription=Mitgliedschaft ausstehend MemberId=Mitglieds-Id MemberRef=Mitglieds-Ref. NewMember=Neues Mitglied @@ -72,6 +74,12 @@ MemberTypeCanNotBeDeleted=Mitgliedschaftstyp kann nicht gelöscht werden NewSubscription=Neuer Mitgliedsbeitrag NewSubscriptionDesc=Hier können Sie Ihre Mitgliedschaft beantragen und den Beitrag als neues Mitglied festlegen.\nWenn Sie bereits Mitglied sind und eine Beitragszahlung erneuern möchten, kontaktieren Sie uns bitte per E-Mail %s. Subscription=Mitgliedsbeitrag +AnyAmountWithAdvisedAmount=Beliebiger Betrag Ihrer Wahl, empfohlen %s +AnyAmountWithoutAdvisedAmount=Beliebiger Betrag Ihrer Wahl +CanEditAmountShort=Jeder Betrag +CanEditAmountShortForValues=empfohlen, jeder Betrag +MembershipDuration=Dauer +GetMembershipButtonLabel=Beitreten Subscriptions=Mitgliedsbeiträge SubscriptionLate=Verspätet SubscriptionNotReceived=Mitgliedsbeitrag nie erhalten @@ -104,7 +112,7 @@ FollowingLinksArePublic=Die folgenden Links sind öffentlich zugängliche Seiten PublicMemberList=Liste öffentlicher Mitglieder BlankSubscriptionForm=Öffentliches Erfassungsformular BlankSubscriptionFormDesc=Dolibarr kann ihnen eine öffentliche URL/Website zur Verfügung stellen, die es externen Besuchern erlaubt, einen Beitrag zu entrichten. Wenn ein Online-Zahlungsmodul aktiviert ist, kann auch automatisch ein Zahlungsformular bereitgestellt werden. -EnablePublicSubscriptionForm=Aktivieren der öffentlichen Webseite mit dem Formular für die Beitragshöhenerklärung (Mitgliedsantrag). +EnablePublicSubscriptionForm=Aktivieren der öffentlichen Webseite mit dem Anmeldeformular (Mitgliedsantrag). ForceMemberType=Mitgliedschaftstyp erzwingen ExportDataset_member_1=Mitglieder und Beitragszahlungen ImportDataset_member_1=Mitglieder @@ -136,7 +144,7 @@ CardContent=Inhalt der Mitgliedskarte # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Wir haben Ihren Mitgliedsantrag erhalten.

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

-ThisIsContentOfYourSubscriptionWasRecorded=Ihr neuer Beitrag wurde erfasst.

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

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

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

DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Betreff der Benachrichtigungsmail bei automatischer Registrierung eines Gastes @@ -198,11 +206,13 @@ SubscriptionsStatistics=Statistiken zu Mitgliedsbeiträgen NbOfSubscriptions=Anzahl der Beitragszahlungen AmountOfSubscriptions=Summer der erhaltenen Beitragszahlungen TurnoverOrBudget=Umsatz (Firma) oder Budget (Verein/Stiftung) -DefaultAmount=Standardhöhe des Mitgliesbeitrages -CanEditAmount=Der Besucher kann die Höhe seines Beitrags auswählen/bearbeiten -MEMBER_NEWFORM_PAYONLINE=Zur integrierten Bezahlseite gehen -ByProperties=Natürlich -MembersStatisticsByProperties=Natürliche Mitgliederstatistiken +DefaultAmount=Standardhöhe des Mitgliedsbeitrags +CanEditAmount=Die Mitgliedschaft ist kostenlos +CanEditAmountDetail=Der Besucher kann die Höhe seines Beitrags unabhängig vom Mitgliedstyp auswählen/bearbeiten +AmountIsLowerToMinimumNotice=von einem Gesamtbetrag von %s +MEMBER_NEWFORM_PAYONLINE=Nach der Online-Registrierung automatisch auf die Online-Zahlungsseite wechseln +ByProperties=Mitgliedsart +MembersStatisticsByProperties=Mitgliederstatistik nach Mitgliedsart VATToUseForSubscriptions=USt.-Satz für Mitgliedsbeiträge NoVatOnSubscription=Keine USt. für Mitgliedsbeiträge ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Produkt/Leistung für die Rechnungsposition: %s @@ -221,3 +231,4 @@ CreateDolibarrLoginDesc=Die Erstellung eines Benutzer-Logins für Mitglieder erm CreateDolibarrThirdPartyDesc=Der Geschäftspartner ist der Rechnungsempfänger, wenn für die Beitragszahlung eine Rechnung erstellt wird. Sie können den Geschäftspartner später während der Erfassung der Beitragszahlung festlegen. MemberFirstname=Vorname des Mitglieds MemberLastname=Nachname des Mitglieds +MemberCodeDesc=Mitgliedsnummer, individuell für alle Mitglieder diff --git a/htdocs/langs/de_DE/mrp.lang b/htdocs/langs/de_DE/mrp.lang index 91485cadecc..339079761f1 100644 --- a/htdocs/langs/de_DE/mrp.lang +++ b/htdocs/langs/de_DE/mrp.lang @@ -11,8 +11,8 @@ Bom=Stücklisten BillOfMaterials=Stückliste BillOfMaterialsLines=Stücklistenpositionen BOMsSetup=Stücklisten Modul einrichten -ListOfBOMs=Stücklisten-Übersicht -ListOfManufacturingOrders=Liste der Fertigungsaufträge +ListOfBOMs=Stücklisten - BOM +ListOfManufacturingOrders=Fertigungsaufträge NewBOM=Neue Stückliste ProductBOMHelp=Mit dieser Stückliste zu erstellendes (oder zu zerlegendes) Produkt.
Hinweis: Produkte mit der Eigenschaft 'Art des Produkts' = 'Rohstoff' sind in dieser Liste nicht sichtbar. BOMsNumberingModules=Vorlage für die Stücklistennummerierung @@ -27,6 +27,7 @@ ConfirmCloneBillOfMaterials=Sind Sie sicher, dass Sie die Stückliste %s klonen ConfirmCloneMo=Möchten Sie den Fertigungsauftrag %s wirklich duplizieren? ManufacturingEfficiency=Produktionseffizienz ConsumptionEfficiency=Verbrauchseffizienz +Consumption=Verbrauch ValueOfMeansLoss=Ein Wert von 0,95 bedeutet einen durchschnittlichen Verlust von 5%% während der Herstellung oder Demontage ValueOfMeansLossForProductProduced=Ein Wert von 0,95 bedeutet im Durchschnitt 5%% Verlust bei dem hergestellten Produkt DeleteBillOfMaterials=Stückliste löschen @@ -41,7 +42,7 @@ DateEndPlannedMo=Geplantes Enddatum KeepEmptyForAsap=Leer bedeutet 'So bald wie möglich' EstimatedDuration=geschätzte Dauer EstimatedDurationDesc=Geschätzte Dauer der Herstellung (oder Demontage) dieses Produkts unter Verwendung dieser Stückliste -ConfirmValidateBom=Sicher, dass die Stückliste abgeglichen wird mit der Referenz %s (kann genutzt werden, um neue Fertigungsaufträge zu erstellen) +ConfirmValidateBom=Sind Sie sicher, dass Sie die Stückliste mit der Referenz %s freigeben möchten? (Sie können sie verwenden, um neue Fertigungsaufträge zu erstellen) ConfirmCloseBom=Soll diese Stückliste wirlich storniert werden (Sie kann nicht mehr zum Erstellen neuer Fertigungsaufträge verwendet werden)? ConfirmReopenBom=Soll diese Stückliste erneut geöffnet werden (Sie können damit neue Fertigungsaufträge erstellen)? StatusMOProduced=Produziert @@ -73,7 +74,7 @@ CancelProductionForRef=Stornierung der Produktbestandsverringerung für Produkt TooltipDeleteAndRevertStockMovement=Position löschen und Bestandsbewegung rückgängig machen AutoCloseMO=Automatisch den Fertigungsauftrag beenden, wenn die zu verbrauchenden und zu produzierenden Mengen erreicht sind NoStockChangeOnServices=Keine Bestandsveränderung bei Leistungen -ProductQtyToConsumeByMO=zu verbrauchende Produktmenge von offenem Fertigungsauftrag +ProductQtyToConsumeByMO=Noch zu verbrauchende Produktmenge durch offene Fertigungsaufträge ProductQtyToProduceByMO=Noch herzustellende Produktmenge des offenen Fertigungsauftrags AddNewConsumeLines=Eine neue Zeile Verbrauch hinzufügen AddNewProduceLines=Neue Position hinzufügen, um zu fertigen @@ -82,6 +83,7 @@ ProductsToProduce=Produkte zu produzieren UnitCost=Kosten pro Einheit TotalCost=Gesamtsumme Kosten BOMTotalCost=Die Herstellungskosten dieser Stückliste, basierend auf den Kosten jeder Menge und jeden verbrauchten Produktes (nutzt den Selbstkostenpreis wenn er definiert ist, ansonsten den Durchschnittspreis sofern definiert oder den besten Einkaufspreis) +BOMTotalCostService=Wenn das Modul "Arbeitsstation" aktiviert ist und auf der Zeile standardmäßig eine Arbeitsstation definiert ist, dann lautet die Berechnung "Menge (umgerechnet in Stunden) x Fertigungsstundensatz der Arbeitsstation", sonst "Menge (umgerechnet in Stunden) x Selbstkosten der Leistung". GoOnTabProductionToProduceFirst=Die Produktion muss begonnen sein, um einen Produktionsauftrag zu schließen (siehe Tab '%s'). Alternativ kann er storniert werden. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Ein Set kann nicht in einer Stückliste oder einem Fertigungsauftrag verwendet werden Workstation=Arbeitsstationen @@ -100,6 +102,7 @@ NbOperatorsRequired=Anzahl der erforderlichen Bediener THMOperatorEstimated=Geschätzter Bediener THM THMMachineEstimated=Geschätzter Maschinen THM WorkstationType=Arbeitsstationstyp +DefaultWorkstation=Standard-Arbeitsstation Human=Mensch Machine=Maschine HumanMachine=Mensch & Maschine @@ -112,3 +115,7 @@ MOAndLines=Fertigungsaufträge und Auftragspositionen MoChildGenerate=Untergeordneten Fertigungsauftrag generieren ParentMo=Übergeordneter Fertigungsauftrag MOChild=Untergeordneter Fertigungsauftrag +BomCantAddChildBom=Die Nomenklatur %s ist bereits im Baum vorhanden, der zur Nomenklatur %s führt +BOMNetNeeds = BOM-Nettobedarf +BOMProductsList=BOM-Produkte +BOMServicesList=BOM-Leistungen diff --git a/htdocs/langs/de_DE/multicurrency.lang b/htdocs/langs/de_DE/multicurrency.lang index 0885224c974..a3c816d2a38 100644 --- a/htdocs/langs/de_DE/multicurrency.lang +++ b/htdocs/langs/de_DE/multicurrency.lang @@ -9,7 +9,7 @@ multicurrency_useOriginTx=Wenn ein Beleg anhand eines anderen erstellt wird, den CurrencyLayerAccount=Währungslayer API CurrencyLayerAccount_help_to_synchronize=Sie sollten ein Konto auf der Website %s erstellen, um diese Funktion zu verwenden.
API-Schlüssel abrufen
Verwenden Sie ein kostenloses Konto, können Sie die Quellwährung nicht ändern (Standard: USD)
Ist ihre Hauptwährung nicht USD, wird die Anwendung dies automatisch umrechnen.

Sie sind auf 1000 Synchronisierungen pro Monat beschränkt. multicurrency_appId=API Schlüssel -multicurrency_appCurrencySource=Quell-/Ausgangswährung +multicurrency_appCurrencySource=Ausgangswährung multicurrency_alternateCurrencySource=alternative Quellwährung CurrenciesUsed=verwendete Währungen CurrenciesUsed_help_to_add=Fügen Sie die Währungen und Währungskurse hinzu, die Sie für ihre Angebote, Bestellungen, etc. benötigen diff --git a/htdocs/langs/de_DE/orders.lang b/htdocs/langs/de_DE/orders.lang index 7fa65acad2f..984e8eb981c 100644 --- a/htdocs/langs/de_DE/orders.lang +++ b/htdocs/langs/de_DE/orders.lang @@ -42,7 +42,7 @@ StatusOrderProcessedShort=Bearbeitet StatusOrderDelivered=Geliefert StatusOrderDeliveredShort=Geliefert StatusOrderToBillShort=Zu verrechnen -StatusOrderApprovedShort=genehmigt +StatusOrderApprovedShort=Genehmigt StatusOrderRefusedShort=Abgelehnt StatusOrderToProcessShort=Zu bearbeiten StatusOrderReceivedPartiallyShort=Teilweise erhalten @@ -77,7 +77,7 @@ DeleteOrder=Bestellung löschen CancelOrder=Bestellung stornieren OrderReopened= Bestellung %s wieder geöffnet AddOrder=Auftrag erstellen -AddSupplierOrderShort=Bestellung erstellen +AddSupplierOrderShort=Auftrag erstellen AddPurchaseOrder=Lieferantenbestellung erstellen AddToDraftOrders=Zu Bestellentwurf hinzufügen ShowOrder=Bestellung anzeigen @@ -96,6 +96,10 @@ OrdersStatisticsSuppliers=Statistik Lieferantenbestellungen NumberOfOrdersByMonth=Anzahl der Bestellungen pro Monat AmountOfOrdersByMonthHT=Gesamtbetrag der Bestellungen pro Monat (exkl. Steuern) ListOfOrders=Liste Aufträge +ListOrderLigne=Auftragspositionen +productobuy=Produkte nur zum Kaufen +productonly=Nur Produkte +disablelinefree=Keine kostenfreien Positionen anzeigen CloseOrder=Bestellung schließen ConfirmCloseOrder=Möchten Sie diese Bestellung wirklich auf "geliefert" setzen? Sobald eine Bestellung geliefert ist, kann sie auf "berechnet" gesetzt werden. ConfirmDeleteOrder=Möchten Sie diese Bestellung wirklich löschen? @@ -131,6 +135,7 @@ SupplierOrderClassifiedBilled=Bestellung %s als verrechnet markieren OtherOrders=zeige weitere Bestellungen dieses Partners SupplierOrderValidatedAndApproved=Die Lieferantenbestellung ist freigegeben und genehmigt: %s SupplierOrderValidated=Lieferantenbestellung ist freigegeben: %s +OrderShowDetail=Auftragsdetail anzeigen ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Kundenauftrag-Nachbetreuung durch Vertreter TypeContact_commande_internal_SHIPPING=Versand-Nachbetreuung durch Vertreter @@ -183,7 +188,7 @@ StatusSupplierOrderProcessedShort=Bearbeitet StatusSupplierOrderDelivered=Geliefert StatusSupplierOrderDeliveredShort=Geliefert StatusSupplierOrderToBillShort=Geliefert -StatusSupplierOrderApprovedShort=genehmigt +StatusSupplierOrderApprovedShort=Genehmigt StatusSupplierOrderRefusedShort=Abgelehnt StatusSupplierOrderToProcessShort=Zu bearbeiten StatusSupplierOrderReceivedPartiallyShort=Teilweise erhalten @@ -195,7 +200,9 @@ StatusSupplierOrderOnProcess=Bestellt - wartet auf Eingang StatusSupplierOrderOnProcessWithValidation=Bestellt - wartet auf Eingang/Bestätigung StatusSupplierOrderProcessed=Bearbeitet StatusSupplierOrderToBill=Geliefert -StatusSupplierOrderApproved=genehmigt +StatusSupplierOrderApproved=Genehmigt StatusSupplierOrderRefused=Abgelehnt StatusSupplierOrderReceivedPartially=Teilweise erhalten StatusSupplierOrderReceivedAll=Alle Produkte erhalten +NeedAtLeastOneInvoice = Es muss mindestens eine Rechnung vorhanden sein +LineAlreadyDispatched = Die Bestellposition ist bereits eingegangen. diff --git a/htdocs/langs/de_DE/other.lang b/htdocs/langs/de_DE/other.lang index cd376581467..78e2310165c 100644 --- a/htdocs/langs/de_DE/other.lang +++ b/htdocs/langs/de_DE/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Lieferantenbestellung freigegeben Notify_ORDER_SUPPLIER_REFUSE=Lieferantenbestellung abgelehnt Notify_PROPAL_VALIDATE=Angebot freigegeben Notify_PROPAL_CLOSE_SIGNED=Geschlossene unterzeichnete Kundenangebote +Notify_PROPAL_CLOSE_SIGNED_WEB=Ein auf der Portalseite akzeptiertes Kundenangebot wurde geschlossen Notify_PROPAL_CLOSE_REFUSED=verworfene Kundenangebote, geschlossen +Notify_PROPAL_CLOSE_REFUSED_WEB=Ein auf der Portalseite abgelehnte Kundenangebot wurde geschlossen Notify_PROPAL_SENTBYMAIL=Angebot mit E-Mail gesendet Notify_WITHDRAW_TRANSMIT=Transaktion zurückziehen Notify_WITHDRAW_CREDIT=Kreditkarten Rücknahme @@ -83,10 +85,10 @@ Notify_HOLIDAY_VALIDATE=Urlaubsantrag überprüft (Genehmigung ausstehend) Notify_HOLIDAY_APPROVE=Urlaubsantrag genehmigt Notify_ACTION_CREATE=Aktion zur Tagesplanung hinzugefügt SeeModuleSetup=Finden Sie im Modul-Setup %s -NbOfAttachedFiles=Anzahl der angehängten Dateien/Dokumente -TotalSizeOfAttachedFiles=Gesamtgröße der angehängten Dateien/Dokumente +NbOfAttachedFiles=Anzahl der angehängten Dateien +TotalSizeOfAttachedFiles=Gesamtgröße der angehängten Dateien MaxSize=Maximalgröße -AttachANewFile=Neue Datei/Dokument anhängen +AttachANewFile=Neue Datei anhängen LinkedObject=Verknüpftes Objekt NbOfActiveNotifications=Anzahl der Benachrichtigungen (Anzahl der E-Mail Empfänger) PredefinedMailTest=__(Hallo)__\nDies ist eine Testmail, die an __EMAIL__ gesendet wird.\nDie Zeilen sind durch einen Zeilenumbruch getrennt.\n\n__USER_SIGNATURE__ @@ -129,7 +131,7 @@ ModifiedByLogin=Letzte Änderung durch Benutzerlogin ValidatedByLogin=Freigabe durch User CanceledByLogin=storniert durch Benutzername ClosedByLogin=geschlossen von User -FileWasRemoved=Datei wurde entfernt +FileWasRemoved=Datei %s wurde entfernt DirWasRemoved=Verzeichnis wurde entfernt FeatureNotYetAvailable=Diese Funktion steht in dieser Version noch nicht zur Verfügung FeatureNotAvailableOnDevicesWithoutMouse=Funktion auf Geräten ohne Maus nicht verfügbar @@ -181,6 +183,7 @@ SizeUnitfoot=Fuß SizeUnitpoint=Punkt BugTracker=Fehlerverfolgung (Bug-Tracker) SendNewPasswordDesc=Mit diesem Formular können Sie ein neues Passwort anfordern, welches an Ihre hinterlegte E-Mail-Adresse gesendet wird.
Die Änderung wird wirksam, sobald Sie auf den Bestätigungslink in der E-Mail klicken. +EnterNewPasswordHere=Neues Passwort hier eingeben BackToLoginPage=Zurück zur Anmeldeseite AuthenticationDoesNotAllowSendNewPassword=Im derzeit gewählten Authentifizierungsmodus (%s) kann das System nicht auf Ihre Passwortdaten zugreifen und diese auch nicht ändern.
Wenden Sie sich hierzu bitte an den Systemadministrator. EnableGDLibraryDesc=Installiere oder aktiviere die GD Bibliothek in der PHP Installtion um dieses Option zu verwenden. @@ -210,6 +213,9 @@ EMailTextInvoiceValidated=Rechnung %s wurde freigegeben. EMailTextInvoicePayed=Rechnung %s wurde bezahlt. EMailTextProposalValidated=Angebot %s wurde freigegeben EMailTextProposalClosedSigned=Das Angebot %s wurde unterschrieben. +EMailTextProposalClosedSignedWeb=Das auf der Portalseite akzeptierte Angebot %s wurde geschlossen. +EMailTextProposalClosedRefused=Abgelehntes Angebot %s wurde geschlossen. +EMailTextProposalClosedRefusedWeb=Auf der Portalseite abgelehntes Angebot %s wurde geschlossen. EMailTextOrderValidated=Auftrag %s wurde freigegeben EMailTextOrderApproved=Auftrag %s wurde genehmigt. EMailTextOrderValidatedBy=Der Auftrag %s wurde von %s aufgezeichnet. @@ -311,10 +317,10 @@ ExternalSiteURL=URL der externen Seite zur Einbettung in einen HTML-iframe ExternalSiteModuleNotComplete=Modul ExternalSite wurde nicht richtig konfiguriert. ExampleMyMenuEntry=Mein Menü-Eintrag -# FTP +# ftp FTPClientSetup=Einrichtung des FTP- oder SFTP-Client-Moduls -NewFTPClient=Neue FTP/FTPS-Verbindungs-Konfiguration -FTPArea=FTP/FTPS-Bereich +NewFTPClient=Neue FTP/SFTP-Verbindung einrichten +FTPArea=FTP/SFTP-Bereich FTPAreaDesc=Diese Ansicht zeigt Ihnen den Inhalt eines FTP- oder SFTP-Servers an. SetupOfFTPClientModuleNotComplete=Die Konfiguration des FTP- oder SFTP-Client-Moduls scheint unvollständig zu sein FTPFeatureNotSupportedByYourPHP=Ihre PHP-Umgebung unterstützt keine FTP- oder SFTP-Funktionen @@ -325,3 +331,9 @@ FTPFailedToRemoveDir=Konnte Verzeichnis %s nicht entfernen. Überprüfen FTPPassiveMode=Passives FTP ChooseAFTPEntryIntoMenu=Wählen Sie eine FTP/SFTP-Site aus dem Menü... FailedToGetFile=Folgende Datei(en) konnte(n) nicht geladen werden: %s +ErrorFTPNodisconnect=Fehler beim Trennen des FTP/SFTP-Servers +FileWasUpload=Datei %s wurde hochgeladen +FTPFailedToUploadFile=Fehler beim Hochladen der Datei %s. +AddFolder=Ordner erstellen +FileWasCreateFolder=Ordner %s wurde erstellt +FTPFailedToCreateFolder=Ordner %s konnte nicht erstellt werden. diff --git a/htdocs/langs/de_DE/partnership.lang b/htdocs/langs/de_DE/partnership.lang index 7a614d7fbd9..de9ceb49567 100644 --- a/htdocs/langs/de_DE/partnership.lang +++ b/htdocs/langs/de_DE/partnership.lang @@ -20,6 +20,7 @@ ModulePartnershipName=Partnerschaften PartnershipDescription=Modul zur Parnterschafts-Verwaltung PartnershipDescriptionLong= Modul zur Parnterschafts-Verwaltung Partnership=Partnerschaft +Partnerships=Partnerschaften AddPartnership=Partnerschaft hinzufügen CancelPartnershipForExpiredMembers=Partnerschaft: Partnerschaft von Mitgliedern mit abgelaufenen Abonnements kündigen PartnershipCheckBacklink=Partnerschaft: Überprüfen Sie den verweisenden Backlink @@ -28,6 +29,7 @@ PartnershipCheckBacklink=Partnerschaft: Überprüfen Sie den verweisenden Backli # Menu # NewPartnership=Neue Partnerschaft +NewPartnershipbyWeb= Ihre Partnerschaft wurde erfolgreich hinzugefügt. ListOfPartnerships=Liste der Partnerschaften # diff --git a/htdocs/langs/de_DE/productbatch.lang b/htdocs/langs/de_DE/productbatch.lang index 1a17635f56a..9b69c243044 100644 --- a/htdocs/langs/de_DE/productbatch.lang +++ b/htdocs/langs/de_DE/productbatch.lang @@ -6,10 +6,10 @@ ProductStatusNotOnBatch=Nein (keine Chargen-/Serien-Nr.) ProductStatusOnBatchShort=Los ProductStatusOnSerialShort=Seriennummer ProductStatusNotOnBatchShort=Keine -Batch=Charge / Seriennr. +Batch=Charge/Seriennr. atleast1batchfield="Verzehr bis" oder "Verkaufen bis"-Datum oder Chargen- / Seriennummer batch_number=Chargen-/Seriennummer -BatchNumberShort=Charge / Seriennr. +BatchNumberShort=Charge/Seriennr. EatByDate=Haltbarkeitsdatum SellByDate=Verkaufslimitdatum DetailBatchNumber=Details zur Chargen-/Seriennummer @@ -17,11 +17,12 @@ printBatch=Chargen-/Serien-Nr.: %s printEatby=Verzehren bis: %s printSellby=Verkaufen bis: %s printQty=Menge: %d +printPlannedWarehouse=Warenlager: %s AddDispatchBatchLine=Fügen Sie eine Zeile für den Versand bis Haltbarkeit hinzu -WhenProductBatchModuleOnOptionAreForced=Wenn das Modul "Produkt-Chargen und Serien" aktiviert ist, wird die automatische Warenbestandsanpassung gezwungen beim Ereignis "versendet" den tatsächlichen Bestand zu verringern und beim Ereignis "manuelles Buchen in ein Warenlager" die tatsächlichen Bestand zu erhöhen. Dies kann nicht beeinflusst werden. Andere Optionen können wie gewünscht definiert werden. +WhenProductBatchModuleOnOptionAreForced=Wenn das Modul "Produkt-Chargen und Serien" aktiviert ist, wird die automatische Lagerbestandsanpassung gezwungen beim Ereignis "versendet" den tatsächlichen Bestand zu verringern und beim Ereignis "manuelles Buchen in ein Warenlager" die tatsächlichen Bestand zu erhöhen. Dies kann nicht beeinflusst werden. Andere Optionen können wie gewünscht definiert werden. ProductDoesNotUseBatchSerial=Dieses Produkt hat keine Chargen-/Seriennummer ProductLotSetup=Einstellungen des Moduls "Produkt-Chargen und Serien" -ShowCurrentStockOfLot=Warenbestand für diese Chargen-/Seriennummer anzeigen +ShowCurrentStockOfLot=Lagerbestand für diese Chargen-/Seriennummer anzeigen ShowLogOfMovementIfLot=Bewegungen für diese Chargen-/Seriennummer anzeigen StockDetailPerBatch=Lagerdetail nach Chargen SerialNumberAlreadyInUse=Die Seriennummer %s wird bereits für das Produkt %s verwendet @@ -30,9 +31,9 @@ ManageLotMask=Benutzerdefinierte Maske CustomMasks=Option, für jedes Produkt ein anderes Nummerierungsschema zu definieren BatchLotNumberingModules=Nummerierungsregel zur automatischen Generierung der Chargennummer BatchSerialNumberingModules=Nummerierungsregel zur automatischen Generierung der Seriennummer (für Produkte mit der Eigenschaft 1 eindeutiges Los/Serie für jedes Produkt) -QtyToAddAfterBarcodeScan=Menge %s für jeden gescannten Barcode/jede Charge/jede Seriennummer -LifeTime=Lebensdauer (in Tagen) -EndOfLife=Ende der Lebensdauer +QtyToAddAfterBarcodeScan=%s als Menge für jeden gescannten Barcode/Charge/Seriennr. +LifeTime=Haltbarkeit (in Tagen) +EndOfLife=Ende der Haltbarkeit ManufacturingDate=Herstellungsdatum DestructionDate=Datum der Vernichtung FirstUseDate=Datum der ersten Verwendung diff --git a/htdocs/langs/de_DE/projects.lang b/htdocs/langs/de_DE/projects.lang index 6c9d5370ee3..92589e6721a 100644 --- a/htdocs/langs/de_DE/projects.lang +++ b/htdocs/langs/de_DE/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Diese Ansicht ist beschränkt auf Projekt und Aufgaben bei welch TasksDesc=Diese Ansicht zeigt alle Projekte und Aufgaben (Ihre Benutzerberechtigungen berechtigt Sie alles zu sehen). AllTaskVisibleButEditIfYouAreAssigned=Alle Aufgaben für qualifizierte Projekte sind sichtbar, Sie können jedoch nur die Zeit für die Aufgabe eingeben, die dem ausgewählten Benutzer zugewiesen ist. Weisen Sie eine Aufgabe zu, wenn Sie Zeiten dafür eingeben müssen. OnlyYourTaskAreVisible=Nur Ihnen zugewiesene Aufgaben sind sichtbar. Wenn Sie Zeit für eine Aufgabe eingeben müssen und die Aufgabe hier nicht sichtbar ist, müssen Sie sich die Aufgabe selbst zuweisen. +ImportDatasetProjects=Projekte oder Leads ImportDatasetTasks=Aufgaben der Projekte ProjectCategories=Projektkategorien/Tags NewProject=Neues Projekt @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Betrag der Leads aus offenen Projekten nach OpportunitiesStatusForProjects=Anzahl Kundeninteressen je Projekt nach Status ShowProject=Projekt anzeigen ShowTask=Aufgabe anzeigen +SetThirdParty=Geschäftspartner festlegen SetProject=Projekt einstellen +OutOfProject=Außerhalb des Projekts NoProject=Kein Projekt definiert oder keine Rechte NbOfProjects=Anzahl Projekte NbOfTasks=Anzahl Aufgaben @@ -122,7 +125,8 @@ ValidateProject=Projekt freigeben ConfirmValidateProject=Möchten Sie dieses Projekt wirklich freigeben? CloseAProject=Projekt schließen ConfirmCloseAProject=Möchten Sie dieses Projekt wirklich schließen? -AlsoCloseAProject=Das Projekt auch schließen (lassen Sie es offen, wenn Sie noch Produktions-Aufgaben laufen haben) +AlsoCloseAProject=Projekt auch schließen +AlsoCloseAProjectTooltip=Offen lassen, wenn Sie noch zugehörige Produktionsaufgaben verfolgen müssen ReOpenAProject=Projekt öffnen ConfirmReOpenAProject=Möchten Sie dieses Projekt wirklich wiedereröffnen? ProjectContact=Projektkontakte @@ -165,7 +169,7 @@ OpportunityProbability=Wahrscheinlichkeit Kundeninteresse OpportunityProbabilityShort=Wahrscheinl. Kundeninteresse OpportunityAmount=Wert/Betrag für Lead OpportunityAmountShort=Wert/Betrag für Lead -OpportunityWeightedAmount=Gewichteter Wert der Verkaufschance +OpportunityWeightedAmount=Opportunitätsbetrag, gewichtet nach Wahrscheinlichkeit OpportunityWeightedAmountShort=Verkaufsschancen gew. OpportunityAmountAverageShort=Kundeninteresse im Durchschnitt OpportunityAmountWeigthedShort=Kundeninteresse gewichtet @@ -238,7 +242,7 @@ OppStatusPENDING=Anstehend OppStatusWON=Gewonnen OppStatusLOST=Verloren Budget=Budget -AllowToLinkFromOtherCompany=Verknüpfungen der Projekte anderer Unternehmen zulassen

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

Unterstützte Werte:
- Leer lassen: Kann Elemente mit beliebigen Projekten in derselben Firma verknüpfen (Standard)
- "alle": Verknüpfung mit allen Projekten, auch denen anderer Unternehmen
- Eine durch Kommas getrennte Liste von Drittanbieter-IDs: kann Elemente mit beliebigen Projekten dieser Drittanbieter verknüpfen (Beispiel: 123,4795,53) LatestProjects=%s neueste Projekte LatestModifiedProjects=Zuletzt bearbeitete Projekte (maximal %s) OtherFilteredTasks=Andere gefilterte Aufgaben @@ -255,11 +259,12 @@ RecordsClosed=%s Projekt(e) geschlossen SendProjectRef=Informationen zu Projekt %s ModuleSalaryToDefineHourlyRateMustBeEnabled=Das Modul 'Gehälter' muss aktiviert sein, um den Stundensatz des Mitarbeiters zu definieren und den Zeitaufwand zu bewerten NewTaskRefSuggested=Aufgabenreferenz bereits verwendet, eine neue Aufgabenreferenz ist erforderlich +NumberOfTasksCloned=%s Aufgabe(n) geklont TimeSpentInvoiced=Zeitaufwand in Rechnung gestellt TimeSpentForIntervention=Zeitaufwand TimeSpentForInvoice=Zeitaufwand OneLinePerUser=Eine Zeile pro Benutzer -ServiceToUseOnLines=Zeiten über Leistung abrechnen +ServiceToUseOnLines=Standardmäßig in den Einzelpositionen zu verwendende Leistung InvoiceGeneratedFromTimeSpent=Die Rechnung %s wurde aus der für das Projekt aufgewendeten Zeit generiert InterventionGeneratedFromTimeSpent=Der Serviceauftrag %s wurde aus der für das Projekt aufgewendeten Zeit generiert ProjectBillTimeDescription=Auswählen, wenn Arbeitszeiten für Projektaufgaben erfasst UND Rechnungen aus diesen Zeiten erzeugt werden sollen, um mit dem Kunden des Projekts abzurechnen (nicht auswählen, wenn nur Rechnungen erstellt werden sollen, die nicht auf erfassten Arbeitszeiten basieren). Hinweis: Um eine Rechnung zu erstellen, gehen Sie auf die Registerkarte 'Zeitaufwand' des Projekts und wählen die abzurechnenden Zeilen aus. @@ -282,7 +287,7 @@ ProfitIsCalculatedWith=Der Gewinn wird berechnet mit AddPersonToTask=Auch zu Aufgaben hinzufügen UsageOrganizeEvent=Verwendung: Organisation von Veranstaltungen PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Klassifizieren Sie das Projekt als abgeschlossen, wenn alle seine Aufgaben abgeschlossen sind (100%% Fortschritt). -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Hinweis: Bestehende Projekte mit allen Aufgaben mit dem Fortschritt 100%% sind nicht betroffen: Sie müssen sie manuell schließen. Diese Option betrifft nur offene Projekte. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Hinweis: Bestehende Projekte, bei denen alle Aufgaben bereits auf einen Fortschritt von 100%% eingestellt sind, werden nicht berücksichtigt: Sie müssen sie manuell schließen. Diese Option wirkt sich nur auf geöffnete Projekte aus. SelectLinesOfTimeSpentToInvoice=Wählen Sie Positionen mit Zeiten aus, die noch nicht in Rechnung gestellt wurden, und führen Sie dann die Massenaktion "Rechnung erstellen" aus, um sie zu berechnen ProjectTasksWithoutTimeSpent=Projektaufgaben ohne Zeitaufwand FormForNewLeadDesc=Vielen Dank für das Ausfüllen des Formulars, um uns zu kontaktieren. Sie können uns auch direkt eine E-Mail an %s senden. @@ -294,3 +299,4 @@ EnablePublicLeadForm=Öffentliches Kontaktformular aktivieren NewLeadbyWeb=Ihre Nachricht bzw. Anfrage wurde erfasst. Wir werden uns so bald wie möglich mit Ihnen in Verbindung setzen. NewLeadForm=Neues Kontaktformular LeadFromPublicForm=Online-Interessent per öffentlichem Formular +ExportAccountingReportButtonLabel=Bericht erhalten diff --git a/htdocs/langs/de_DE/propal.lang b/htdocs/langs/de_DE/propal.lang index 8a587547f9d..050b83a7a33 100644 --- a/htdocs/langs/de_DE/propal.lang +++ b/htdocs/langs/de_DE/propal.lang @@ -3,12 +3,12 @@ Proposals=Angebote Proposal=Angebot ProposalShort=Angebot ProposalsDraft=Angebotsentwürfe -ProposalsOpened=offene Angebote +ProposalsOpened=Offene Angebote CommercialProposal=Angebot PdfCommercialProposalTitle=Angebot ProposalCard=Angebot – Übersicht NewProp=Neues Angebot -NewPropal=neues Angebot +NewPropal=Neues Angebot Prospect=Interessent DeleteProp=Angebot löschen ValidateProp=Angebot freigeben @@ -20,7 +20,7 @@ LastModifiedProposals=Zuletzt bearbeitete Angebote (maximal %s) AllPropals=Alle Angebote SearchAProposal=Angebot suchen NoProposal=kein Angebot -ProposalsStatistics=Angebote - Statistiken +ProposalsStatistics=Angebote – Statistiken NumberOfProposalsByMonth=Anzahl pro Monat AmountOfProposalsByMonthHT=Betrag pro Monat (ohne Steuern) NbOfProposals=Anzahl der Angebote @@ -30,13 +30,13 @@ PropalsOpened=Offen PropalStatusDraft=Entwurf (freizugeben) PropalStatusValidated=Freigegeben (Angebot ist offen) PropalStatusSigned=unterzeichnet (abrechenbar) -PropalStatusNotSigned=abgelehnt (geschlossen) +PropalStatusNotSigned=Abgelehnt (geschlossen) PropalStatusBilled=Verrechnet PropalStatusDraftShort=Entwurf PropalStatusValidatedShort=Freigegeben (offen) PropalStatusClosedShort=geschlossen -PropalStatusSignedShort=beauftragt -PropalStatusNotSignedShort=abgelehnt +PropalStatusSignedShort=Beauftragt +PropalStatusNotSignedShort=Abgelehnt PropalStatusBilledShort=Verrechnet PropalsToClose=Zu schließende Angebote PropalsToBill=Unterzeichnete Angebote zur Verrechnung @@ -47,9 +47,9 @@ SendPropalByMail=Angebot per E-Mail versenden DatePropal=Angebotsdatum DateEndPropal=Gültig bis ValidityDuration=Gültigkeitsdauer -SetAcceptedRefused=Setze beauftragt / abgelehnt +SetAcceptedRefused=Setze beauftragt/abgelehnt ErrorPropalNotFound=Angebot %s nicht gefunden -AddToDraftProposals=Zu Angebots-Entwurf hinzufügen +AddToDraftProposals=Zu Angebotsentwurf hinzufügen NoDraftProposals=Keine Angebotsentwürfe CopyPropalFrom=Erstelle neues Angebot durch Kopieren eines vorliegenden Angebots CreateEmptyPropal=Erstelle leeres Angebot oder aus der Liste der Produkte/Leistungen @@ -64,50 +64,55 @@ ProposalLines=Angebotszeilen AvailabilityPeriod=Gültig bis SetAvailability=Gültigkeitszeitraum definieren AfterOrder=nach Bestellung -OtherProposals=zeige weitere Angebote für diesen Partner +OtherProposals=Zeige weitere Angebote für diesen Geschäftspartner + ##### Availability ##### AvailabilityTypeAV_NOW=Sofort AvailabilityTypeAV_1W=7 Tage AvailabilityTypeAV_2W=14 Tage AvailabilityTypeAV_3W=3 Wochen AvailabilityTypeAV_1M=1 Monat -##### Types de contacts ##### + +##### Types ofe contacts ##### TypeContact_propal_internal_SALESREPFOLL=Vertreter für Angebot TypeContact_propal_external_BILLING=Kontakt für Kundenrechnungen TypeContact_propal_external_CUSTOMER=Kundenkontakt für Angebot TypeContact_propal_external_SHIPPING=Kundenkontakt für Lieferung + # Document models -DocModelAzurDescription=Ein vollständiges Angebotsmodell (alte Implementierung der Cyan-Vorlage) -DocModelCyanDescription=Ein vollständiges Angebotsmodell -DefaultModelPropalCreate=Erstellung Standardvorlage -DefaultModelPropalToBill=Standardvorlage, wenn Sie ein Angebot schließen wollen (zur Verrechung) -DefaultModelPropalClosed=Standardvorlage, wenn sie ein Angebot schließen wollen (ohne Rechnung) -ProposalCustomerSignature=Bei Beauftragung: Name in Klarschrift, Ort, Datum, Unterschrift -ProposalsStatisticsSuppliers=Statistik Lieferantenanfragen -CaseFollowedBy=Fall gefolgt von -SignedOnly=nur signiert -NoSign=Auf "abgelehnt" setzen -NoSigned=auf "abgelehnt" setzen CantBeNoSign=Kann nicht auf "abgelehnt" gesetzt werden +CaseFollowedBy=Fall gefolgt von ConfirmMassNoSignature=Massenbestätigung für "abgelehnt" ConfirmMassNoSignatureQuestion=Möchten Sie die ausgewählten Datensätze wirklich auf den Status "abgelehnt" setzen? -IsNotADraft=ist kein Entwurf -PassedInOpenStatus=wurde freigegeben -Sign=Beauftragen -Signed=beauftragt -ConfirmMassValidation=Massenbestätigung für Validierung ConfirmMassSignature=Massenbestätigung Unterzeichnung -ConfirmMassValidationQuestion=Möchten Sie die ausgewählten Datensätze wirklich freigeben? ConfirmMassSignatureQuestion=Möchten Sie die ausgewählten Datensätze wirklich beauftragen? -IdProposal=Angebots-ID +ConfirmMassValidation=Massenbestätigung für Validierung +ConfirmMassValidationQuestion=Möchten Sie die ausgewählten Datensätze wirklich freigeben? +ConfirmRefusePropal=Möchten Sie dieses Angebot wirklich ablehnen? +ContractSigned=Vertrag unterschrieben +DefaultModelPropalClosed=Standardvorlage, wenn sie ein Angebot schließen wollen (ohne Rechnung) +DefaultModelPropalCreate=Erstellung Standardvorlage +DefaultModelPropalToBill=Standardvorlage, wenn Sie ein Angebot schließen wollen (zur Verrechung) +DocModelAzurDescription=Ein vollständiges Angebotsmodell (alte Implementierung der Cyan-Vorlage) +DocModelCyanDescription=Ein vollständiges Angebotsmodell +FichinterSigned=Serviceauftrag unterzeichnet IdProduct=Produkt ID +IdProposal=Angebots-ID +IsNotADraft=ist kein Entwurf LineBuyPriceHT=Betrag Kaufpreis abzüglich Steuern für Zeile -SignPropal=Angebot annehmen +NoSign=Ablehnen +NoSigned=auf "abgelehnt" setzen +PassedInOpenStatus=wurde freigegeben +PropalAlreadyRefused=Angebot bereits abgelehnt +PropalAlreadySigned=Angebot bereits angenommen +PropalRefused=Angebot abgelehnt +PropalSigned=Angebot beauftragt +ProposalCustomerSignature=Auftraggeber: Name in Klarschrift, Ort, Datum, Unterschrift +ProposalsStatisticsSuppliers=Statistik Lieferantenanfragen RefusePropal=Angebot ablehnen Sign=Beauftragen -NoSign=Auf "abgelehnt" setzen -PropalAlreadySigned=Angebot bereits angenommen -PropalAlreadyRefused=Angebot bereits abgelehnt -PropalSigned=Angebot beauftragt -PropalRefused=Angebot abgelehnt -ConfirmRefusePropal=Möchten Sie dieses Angebot wirklich ablehnen? +SignContract=Vertrag unterzeichnen +SignFichinter=Serviceauftrag unterzeichnen +SignPropal=Angebot annehmen +Signed=beauftragt +SignedOnly=nur signiert diff --git a/htdocs/langs/de_DE/receptions.lang b/htdocs/langs/de_DE/receptions.lang index 4728cc7b62d..51a284ed95b 100644 --- a/htdocs/langs/de_DE/receptions.lang +++ b/htdocs/langs/de_DE/receptions.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - receptions ReceptionDescription=Verwaltung des Wareneingangs (Empfangsdokumente erstellen) ReceptionsSetup=Wareneingang einrichten -RefReception=Wareneingangs Nummer +RefReception=Ref. Wareneingang Reception=Wareneingang Receptions=Wareneingänge AllReceptions=Alle Wareneingänge @@ -24,14 +24,15 @@ ReceptionsAndReceivingForSameOrder=Empfänge and receipts für dieses order ReceptionsToValidate=Empfänge an validate StatusReceptionCanceled=Storniert StatusReceptionDraft=Entwurf -StatusReceptionValidated=Validiert (zu erhaltende oder bereits erhaltene Produkte) -StatusReceptionValidatedToReceive=Validiert (zu erhaltende Produkte) -StatusReceptionValidatedReceived=Validiert (Produkte erhalten) +StatusReceptionValidated=Freigegeben (zu erhaltende oder bereits erhaltene Produkte) +StatusReceptionValidatedToReceive=Freigegeben (zu erhaltende Produkte) +StatusReceptionValidatedReceived=Freigegeben (Produkte erhalten) StatusReceptionProcessed=Bearbeitet StatusReceptionDraftShort=Entwurf StatusReceptionValidatedShort=Freigegeben StatusReceptionProcessedShort=Bearbeitet ReceptionSheet=Empfangsblatt +ValidateReception=Warenempfang bestätigen ConfirmDeleteReception=Möchten Sie diesen Wareneingang wirklich löschen? ConfirmValidateReception=Möchten Sie diesen Wareneingang mit der Referenz %s wirklich freigeben ? ConfirmCancelReception=Möchten Sie diesen Wareneingang wirklich stornieren? @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Nummerierungsmodul für Empfänge ReceptionsReceiptModel=Dokumentvorlagen für Empfänge NoMorePredefinedProductToDispatch=Keine vordefinierten Produkte mehr zum Versand ReceptionExist=Ein Wareneingang ist vorhanden -ByingPrice=Einkaufspreis ReceptionBackToDraftInDolibarr=Wareneingang%s zurück auf Entwurf ReceptionClassifyClosedInDolibarr=Wareneingang %s als geschlossen klassifizieren ReceptionUnClassifyCloseddInDolibarr=Wareneingang %s wieder öffnen diff --git a/htdocs/langs/de_DE/recruitment.lang b/htdocs/langs/de_DE/recruitment.lang index beb8ab5994e..13fb604b489 100644 --- a/htdocs/langs/de_DE/recruitment.lang +++ b/htdocs/langs/de_DE/recruitment.lang @@ -20,7 +20,7 @@ # Module label 'ModuleRecruitmentName' ModuleRecruitmentName = Personalbeschaffung # Module description 'ModuleRecruitmentDesc' -ModuleRecruitmentDesc = Verwalten und verfolgen Sie Rekrutierungs-Kampagnen für neue Job-Positionen. +ModuleRecruitmentDesc = Verwalten und verfolgen Sie Rekrutierungs-Kampagnen für offene Stellen # # Admin page @@ -40,32 +40,33 @@ RecruitmentAbout = Über Rekrutierung RecruitmentAboutPage = Seite 'Über Personalbeschaffung' NbOfEmployeesExpected=Erwartete Anzahl von Mitarbeitern JobLabel=Bezeichnung der beruflichen Position -WorkPlace=Arbeitsplatz +WorkPlace=Arbeitsort DateExpected=Erwartetes Datum -FutureManager=Zukünftiger Manager +FutureManager=Zukünftige Führungskraft ResponsibleOfRecruitement=Verantwortlicher für die Personalbeschaffung -IfJobIsLocatedAtAPartner=Wenn sich der Job an einem Partnerort befindet +IfJobIsLocatedAtAPartner=Wenn sich die Stelle am Standort eines Geschäftspartners befindet PositionToBeFilled=Offene Stelle PositionsToBeFilled=Offene Stellen ListOfPositionsToBeFilled=Liste der offenen Stellen -NewPositionToBeFilled=Neue offene Stellen +NewPositionToBeFilled=Neue offene Stelle(n) JobOfferToBeFilled=Zu besetzende Stelle ThisIsInformationOnJobPosition=Information über die zu besetzende Stelle ContactForRecruitment=Ansprechpartner für die Rekrutierung -EmailRecruiter=E-Mail Rekruter +EmailRecruiter=E-Mail-Adresse verwenden ToUseAGenericEmail=So verwenden Sie eine generische E-Mail. Falls nicht definiert, wird die E-Mail-Adresse des für die Personalbeschaffung Verantwortlichen verwendet NewCandidature=Neue Bewerbung ListOfCandidatures=Liste der Bewerbungen -RequestedRemuneration=gewünschtes Gehalt -ProposedRemuneration=vorgeschlagenes Gehalt +Remuneration=Gehalt +RequestedRemuneration=Gefordertes Gehalt +ProposedRemuneration=Gehaltsvorschlag ContractProposed=Vertrag unterbreitet ContractSigned=Vertrag unterschrieben ContractRefused=Vertrag abgelehnt RecruitmentCandidature=Bewerbung JobPositions=Offene Stellen RecruitmentCandidatures=Bewerbungen -InterviewToDo=Bewerbungsgespräch machen +InterviewToDo=Nachzuverfolgende Kontakte AnswerCandidature=Antwort auf die Bewerbung YourCandidature=Ihre Bewerbung YourCandidatureAnswerMessage=Vielen Dank für Ihre Bewerbung.
... diff --git a/htdocs/langs/de_DE/salaries.lang b/htdocs/langs/de_DE/salaries.lang index cff8bef69b0..cd3e8d03ccd 100644 --- a/htdocs/langs/de_DE/salaries.lang +++ b/htdocs/langs/de_DE/salaries.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Standard Buchungskonto für Benutzer von Geschäftspartnern +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Konto (aus dem Kontenplan), das standardmäßig für Geschäftspartner, die „Benutzer“ sind, verwendet wird SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Das in der Benutzerkarte hinterlegte Konto wird nur für die Nebenbücher verwendet. Dieses Konto wird für das Hauptbuch und als Standardwert für die Nebenbücher verwendet, wenn beim Benutzer kein Konto hinterlegt ist. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard-Buchungskonto für Gehaltszahlungen CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Lassen Sie beim Erstellen eines Gehalts standardmäßig die Option "Gesamtzahlung automatisch erstellen" leer diff --git a/htdocs/langs/de_DE/stripe.lang b/htdocs/langs/de_DE/stripe.lang index 5db52f3c5c0..2cefe44f2be 100644 --- a/htdocs/langs/de_DE/stripe.lang +++ b/htdocs/langs/de_DE/stripe.lang @@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Webhook Produktivschlüssel ONLINE_PAYMENT_WAREHOUSE=Warenlager für die Bestandsminderung bei Onlinezahlung
(TODO When option to decrease stock is done on an action on invoice and the online payment generate itself the invoice?) StripeLiveEnabled=Stripe live aktiviert (Nicht im Test/Sandbox Modus) StripeImportPayment=Stripe Zahlungen importieren -ExampleOfTestCreditCard=Beispiel für eine zu testende Kreditkarte: %s => gültig, %s => Fehler CVC, %s => abgelaufen, %s => Belastung fehlgeschlagen +ExampleOfTestCreditCard=Beispiel Kreditkarte für SEPA-Test: %s => gültig, %s => Fehler CVC, %s => abgelaufen, %s => Belastung fehlgeschlagen +ExampleOfTestBankAcountForSEPA=Beispiel Bankkonto IBAN für Lastschrifttest: %s StripeGateways=Stripe Gateways OAUTH_STRIPE_TEST_ID=Stripe Connect Client ID (ca_...) OAUTH_STRIPE_LIVE_ID=Stripe Connect Client ID (ca_...) @@ -61,6 +62,7 @@ DeleteACard=Karte löschen ConfirmDeleteCard=Wollen Sie diese Debit- oder Kreditkarte wirklich löschen? CreateCustomerOnStripe=Kunden auf Stripe erstellen CreateCardOnStripe=Karte auf Stripe erstellen +CreateBANOnStripe=Bank auf Stripe erstellen ShowInStripe=In Stripe anzeigen StripeUserAccountForActions=Benutzerkonto zur E-Mail-Benachrichtigung über einige Stripe-Ereignisse (Stripe-Auszahlungen) StripePayoutList=Liste der Auszahlungen @@ -69,4 +71,8 @@ ToOfferALinkForLiveWebhook=Link zum Einrichten von Stripe WebHook zum Aufruf von PaymentWillBeRecordedForNextPeriod=Die Zahlung wird für den folgenden Zeitraum erfasst. ClickHereToTryAgain=Hier klicken und nochmal versuchen... CreationOfPaymentModeMustBeDoneFromStripeInterface=Aufgrund strenger Kundenauthentifizierungs-Regeln muss die Erstellung einer Karte im Stripe-Backoffice erfolgen. Sie können hier klicken, um zum Stripe-Kundendatensatz zu wechseln: %s -TERMINAL_LOCATION=Standort (Adresse) für Terminals +STRIPE_CARD_PRESENT='Card present' für Stripe-Terminals +TERMINAL_LOCATION=Standort (Adresse) für Stripe-Terminals +RequestDirectDebitWithStripe=Lastschrift über Stripe anfordern +STRIPE_SEPA_DIRECT_DEBIT=Aktivieren Sie die Lastschriftzahlungen über Stripe + diff --git a/htdocs/langs/de_DE/suppliers.lang b/htdocs/langs/de_DE/suppliers.lang index a94d13880eb..54890cab6d8 100644 --- a/htdocs/langs/de_DE/suppliers.lang +++ b/htdocs/langs/de_DE/suppliers.lang @@ -4,6 +4,7 @@ SuppliersInvoice=Lieferantenrechnung SupplierInvoices=Lieferantenrechnungen ShowSupplierInvoice=Zeige Lieferantenrechnung NewSupplier=Neuer Lieferant +NewSupplierInvoice = Neue Lieferantenrechnung History=Verlauf ListOfSuppliers=Liste der Lieferanten ShowSupplier=zeige Lieferant @@ -16,7 +17,7 @@ SomeSubProductHaveNoPrices=Einige Unterprodukte haben keinen Preis. AddSupplierPrice=Einkaufspreis anlegen ChangeSupplierPrice=Einkaufspreis ändern SupplierPrices=Lieferantenpreise -ReferenceSupplierIsAlreadyAssociatedWithAProduct=Für dieses Produkt existiert bereits ein Lieferantenpreis vom gewählten Anbieter: %s +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Diese Lieferanten-Artikelnummer ist bereits einem anderen Produkt verknüpft: %s NoRecordedSuppliers=kein Lieferant vorhanden SupplierPayment=Lieferanten Zahlvorgang SuppliersArea=Lieferanten Übersicht diff --git a/htdocs/langs/de_DE/ticket.lang b/htdocs/langs/de_DE/ticket.lang index 599cd4f9009..db22f635a81 100644 --- a/htdocs/langs/de_DE/ticket.lang +++ b/htdocs/langs/de_DE/ticket.lang @@ -26,7 +26,9 @@ 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) +Permission56006=Tickets exportieren +Tickets=Tickets TicketDictType=Ticket-Anfragearten TicketDictCategory=Ticket-Themengruppen TicketDictSeverity=Ticket-Dringlichkeiten @@ -60,6 +62,8 @@ TypeContact_ticket_external_CONTRIBUTOR=Externer Mitarbeiter OriginEmail=Ersteller E-Mail Notify_TICKET_SENTBYMAIL=Ticket Nachricht per E-Mail versenden +ExportDataset_ticket_1=Tickets + # Status Read=Gelesen Assigned=Zugewiesen @@ -149,6 +153,8 @@ TicketsAutoNotifyCloseHelp=Beim Schließen eines Tickets wird Ihnen vorgeschlage TicketWrongContact=Der bereitgestellte Kontakt ist nicht Teil der aktuellen Ticket-Kontakte. E-Mail nicht gesendet. TicketChooseProductCategory=Produktkategorie für Ticket-Support TicketChooseProductCategoryHelp=Wählen Sie die Produktkategorie für Ticket-Support aus. Dies wird verwendet, um einen Vertrag automatisch mit einem Ticket zu verknüpfen. +TicketUseCaptchaCode=Verwenden Sie beim Erstellen eines Tickets einen grafischen Code (CAPTCHA). +TicketUseCaptchaCodeHelp=Fügt eine CAPTCHA-Überprüfung beim Erstellen eines neuen Tickets hinzu. # # Index & list page @@ -192,8 +198,7 @@ TicketAssigned=Ticket ist nun zugewiesen TicketChangeType=Art ändern TicketChangeCategory=Analyse-Code ändern TicketChangeSeverity=Dringlichkeit ändern -TicketAddMessage=Nachricht hinzufügen -AddMessage=Nachricht hinzufügen +TicketAddMessage=Private Nachricht hinzufügen MessageSuccessfullyAdded=Ticket hinzugefügt TicketMessageSuccessfullyAdded=Mitteilung erfolgreich gespeichert TicketMessagesList=Liste der Mitteilungen @@ -204,8 +209,8 @@ TicketSeverity=Dringlichkeit ShowTicket=Ticket zeigen RelatedTickets=Verknüpfte Tickets TicketAddIntervention=Serviceauftrag erstellen -CloseTicket=Ticket als gelöst markieren | schließen -AbandonTicket=Ticket verwerfen +CloseTicket=Schließen|Lösen +AbandonTicket=Aufgeben CloseATicket=ein Ticket als gelöst markieren | schließen ConfirmCloseAticket=Tichek schliessen bestätigen ConfirmAbandonTicket=Bestätigen Sie das Schließen des Tickets mit dem Status 'verworfen' @@ -219,18 +224,17 @@ SendMessageByEmail=Mitteilung via E-Mail senden TicketNewMessage=Neue Mitteilung ErrorMailRecipientIsEmptyForSendTicketMessage=Empfänger ist leer. Keine E-Mail gesendet TicketGoIntoContactTab=Gehen Sie in den Tab "Kotakte" und wählen Sie ihn aus -TicketMessageMailIntro=Einführung +TicketMessageMailIntro=Kopfzeile der Nachricht TicketMessageMailIntroHelp=Dieser Text wird am Anfang der E-Mail Nachricht hinzugefügt, aber nicht gespeichert. -TicketMessageMailIntroLabelAdmin=Einführungstext zu allen Ticket-Antworten TicketMessageMailIntroText=Hallo,
eine neue Antwort wurde zu einem Ticket hinzugefügt, dem Sie folgen. Hier ist die Nachricht:
TicketMessageMailIntroHelpAdmin=Dieser Text wird bei der Beantwortung eines Tickets von Dolibarr vor der Antwort eingefügt -TicketMessageMailSignature=E-Mail-Signatur -TicketMessageMailSignatureHelp=Dieser Text wird nur am Schluss der E-Mail angehängt und wird nicht beim Ticket gespeichert. -TicketMessageMailSignatureText=Nachricht gesendet von %s über Dolibarr -TicketMessageMailSignatureLabelAdmin=Signatur in Antwortmail -TicketMessageMailSignatureHelpAdmin=Dieser Text wird nach dem Antworttext angehängt. +TicketMessageMailFooter=Fußzeile der Nachricht +TicketMessageMailFooterHelp=Dieser Text wird nur am Ende der per E-Mail versendeten Nachricht eingefügt und nicht gespeichert. +TicketMessageMailFooterText=Nachricht gesendet von %s über Dolibarr +TicketMessageMailFooterHelpAdmin=Dieser Text wird nach dem Antworttext angehängt. TicketMessageHelp=Nur dieser Text wird in der Mitteilungsliste auf der Ticketkarte gespeichert. TicketMessageSubstitutionReplacedByGenericValues=Ersetzungsvariablen werden durch generische Werte ersetzt. +ForEmailMessageWillBeCompletedWith=Bei E-Mail-Nachrichten, die an externe Benutzer gesendet werden, wird die Nachricht ergänzt mit TimeElapsedSince=Seit TicketTimeToRead=Zeit bis das Ticket gelesen wurde TicketTimeElapsedBeforeSince=Verstrichene Zeit vor / seit @@ -241,6 +245,7 @@ TicketMessageMailIntroAutoNewPublicMessage=Eine neue Nachricht mit dem Betreff % TicketAssignedToYou=Zugewiesene Tickets TicketAssignedEmailBody=Das Ticket #%s wurde Ihnen durch %s zugewiesen MarkMessageAsPrivate=Meitteilung als Privat kennzeichnen +TicketMessageSendEmailHelp=Eine E-Mail wird an alle zugewiesenen Kontakte gesendet (interne Kontakte, aber auch externe Kontakte, außer wenn die Option "%s" aktiviert ist) TicketMessagePrivateHelp=Diese Meldung wird den externen Benutzer nicht angezeigt TicketEmailOriginIssuer=Ersteller des Tickets InitialMessage=Originalmitteilung @@ -286,7 +291,7 @@ YourTicketSuccessfullySaved=Das Ticket wurde gespeichert! MesgInfosPublicTicketCreatedWithTrackId=Ein neues Ticket wurde mit der ID %s und der Referenz %s erstellt. PleaseRememberThisId=Bitte merken Sie sich die Tracking Nummer, Sie werden vermutlich später von uns danach gefragt werden. TicketNewEmailSubject=Bestätigung der Ticketerstellung - Ref %s (öffentliche Ticket-ID %s) -TicketNewEmailSubjectCustomer=Neues Supportticket +TicketNewEmailSubjectCustomer=Neues Support-Ticket TicketNewEmailBody=Automatische Bestätigung: Ihr Ticket wurde erfolgreich erstellt. TicketNewEmailBodyCustomer=Automatische Bestätigung: Ihr Ticket wurde erfolgreich in Ihrem Konto erstellt. TicketNewEmailBodyInfosTicket=Informationen um das Ticket zu überwachen @@ -296,7 +301,7 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Sie können den Fortschritt der Tickets TicketCloseEmailBodyInfosTrackUrlCustomer=Sie können den Verlauf dieses Tickets einsehen, indem Sie auf den folgenden Link klicken TicketEmailPleaseDoNotReplyToThisEmail=Bitte nicht via E-Mail Antworten, sondern den Link zum Interface verwenden. TicketPublicInfoCreateTicket=Mit diesem Formular können Sie ein Ticket in unserem Ticketingtool eröffnen. -TicketPublicPleaseBeAccuratelyDescribe=Bitte Beschreiben Sie Ihr Anliegen möglichst genau. Je mehr Infos Sie uns mitteilen, desto besser können wir die Anfrage bearbeiten. +TicketPublicPleaseBeAccuratelyDescribe=Bitte Beschreiben Sie Ihr Anliegen möglichst genau. Je mehr Informationen Sie uns mitteilen, desto besser können wir die Anfrage bearbeiten. TicketPublicMsgViewLogIn=Bitte geben Sie die Ticket Tracking ID ein TicketTrackId=Öffentliche Tracking-ID OneOfTicketTrackId=Eine der Tracking-IDs diff --git a/htdocs/langs/de_DE/trips.lang b/htdocs/langs/de_DE/trips.lang index 1217fe5c4b9..7c6377246de 100644 --- a/htdocs/langs/de_DE/trips.lang +++ b/htdocs/langs/de_DE/trips.lang @@ -1,150 +1,152 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Spesenabrechnung anzeigen -Trips=Spesenabrechnungen -TripsAndExpenses=Spesenabrechnungen -TripsAndExpensesStatistics=Reise- und Fahrtspesen Statistik -TripCard=Reisekosten – Übersicht +AUTHOR=Erstellt von +AUTHORPAIEMENT=Bezahlt von AddTrip=Spesenabrechnung erstellen -ListOfTrips=Aufstellung Spesenabrechnungen -ListOfFees=Liste der Spesen -TypeFees=Gebührenarten -ShowTrip=Spesenabrechnung anzeigen -NewTrip=neue Spesenabrechnung -LastExpenseReports=Letzte %s Spesenabrechnungen +AllExpenseReport=Alle Spesenarten AllExpenseReports=Alle Spesenabrechnungen -CompanyVisited=Firma/Organisation besucht -FeesKilometersOrAmout=Spesenbetrag bzw. Kilometergeld -DeleteTrip=Spesenabrechnung löschen -ConfirmDeleteTrip=Sind Sie sicher, dass diese Spesenabrechnung löschen wollen? -ListTripsAndExpenses=Aufstellung Spesenabrechnungen -ListToApprove=Warten auf Bestätigung -ExpensesArea=Spesenabrechnungen +AnyOtherInThisListCanValidate=Person, die zur Validierung der Anfrage informiert werden soll. +AttachTheNewLineToTheDocument=Position mit einem hochgeladenen Dokument verknüpfen +AucuneLigne=Es wurde noch keine Spesenabrechnung erstellt. +BrouillonnerTrip=Status der Spesenabrechnung auf den Status "Entwurf" ändern +byEX_DAY=pro Tag (begrenzt auf %s) +byEX_EXP=pro Position (begrenzt auf %s) +byEX_MON=pro Monat (begrenzt auf %s) +byEX_YEA=pro Jahr (begrenzt auf %s) +CANCEL_USER=Gelöscht von +CarCategory=Fahrzeugkategorie ClassifyRefunded=Als 'erstattet' markieren +CompanyVisited=Firma/Organisation besucht +ConfirmBrouillonnerTrip=Möchten Sie den Status dieser Spesenabrechnung wirklich auf "Entwurf" ändern? +ConfirmCancelTrip=Möchten Sie diese Spesenabrechnung wirklich stornieren? +ConfirmCloneExpenseReport=Möchten Sie den diese Spesenabrechnung wirklich duplizieren? +ConfirmDeleteTrip=Sind Sie sicher, dass diese Spesenabrechnung löschen wollen? +ConfirmPaidTrip=Möchten Sie den Status dieser Spesenabrechnung auf "Bezahlt" ändern? +ConfirmRefuseTrip=Möchten Sie diese Spesenabrechnung wirklich ablehnen? +ConfirmSaveTrip=Möchten Sie den diese Spesenabrechnung wirklich bestätigen? +ConfirmValideTrip=Möchten Sie diese Spesenabrechnung wirklich genehmigen? +DATE_CANCEL=Stornodatum +DATE_PAIEMENT=Zahlungsdatum +DATE_REFUS=Datum Ablehnung +DATE_SAVE=Freigabedatum +DefaultCategoryCar=Standardmäßiges Verkehrsmittel +DefaultRangeNumber=Standradreichweite +DeleteTrip=Spesenabrechnung löschen +ErrorDoubleDeclaration=Sie haben bereits eine andere Spesenabrechnung in einem ähnlichen Datumsbereich erstellt. +Error_EXPENSEREPORT_ADDON_NotDefined=Fehler, die Regeln für Spesenabrechnungnummerierung wurde im Setup des Moduls "Spesenabrechnung" nicht definiert +ExpenseRangeOffset=Ausgelegter Betrag: %s +expenseReportCatDisabled=Kategorie deaktiviert - Wörterbuch c_exp_tax_cat +expenseReportCoef=Koeffizient +expenseReportCoefUndefined=(Wert nicht definiert) +expenseReportOffset=Auslage +expenseReportPrintExample=offset + (d x coef) = %s +expenseReportRangeDisabled=Periode deaktiviert - Wörterbuch c_exp_tax_range +expenseReportRangeFromTo=von %d bis %d +expenseReportRangeMoreThan=mehr als %d +expenseReportTotalForFive=Beispiel mit d = 5 +ExpenseReportApplyTo=Anwenden auf +ExpenseReportApproved=Eine Spesenabrechnung wurde genehmigt +ExpenseReportApprovedMessage=Der Spesenabrechnung %s wurde genehmigt.
- Benutzer: %s
- Genehmigt von: %s
Klicken Sie hier, um die Spesenabrechnung anzuzeigen: %s +ExpenseReportCanceled=Eine Spesenabrechnung wurde storniert +ExpenseReportCanceledMessage=Der Spesenabrechnung %s wurde abgebrochen.
- Benutzer: %s
- Storniert von: %s
- Motive für die Stornierung: %s
Klicken Sie hier, um die Spesenabrechnung zu zeigen: %s +ExpenseReportConstraintViolationError=Höchstbetrag überschritten (Regel %s): %s ist höher als %s (Überschreiten nicht zulässig) +ExpenseReportConstraintViolationWarning=Höchstbetrag überschritten (Regel %s): %s ist höher als %s (Überschreitung autorisiert) +ExpenseReportDateEnd=Enddatum +ExpenseReportDateStart=Startdatum +ExpenseReportDomain=Anwenden auf Bereich +ExpenseReportIkDesc=Sie können die Berechnung der Kilometerspensen pro Kategorie und Distanz dort ändern wo sie definiert wurden. d ist die Distanz in Kilometer +ExpenseReportLimitAmount=Höchstbetrag +ExpenseReportLimitOn=Begrenzungen ein +ExpenseReportLine=Position in der Spesenabrechnung +ExpenseReportPaid=Eine Spesenabrechnung wurde ausbezahlt +ExpenseReportPaidMessage=Der Spesenabrechnung %s wurde bezahlt.
- Benutzer: %s
- Paid von: %s
Klicken Sie hier, um die Spesenabrechnung anzuzeigen: %s +ExpenseReportPayment=Spesenabrechnung Zahlung +ExpenseReportRef=Belegnummer Spesenabrechnung +ExpenseReportRefused=Eine Spesenabrechnung wurde abgelehnt +ExpenseReportRefusedMessage=Der Spesenabrechnung %s wurde abgelehnt.
- Benutzer: %s
- Refused von: %s
- Motive für die Ablehnung: %s
Klicken Sie hier, um die Spesenabrechnung zeigen: %s +ExpenseReportRestrictive=Begrenzung verbindlich +ExpenseReportRuleErrorOnSave=Fehler: %s +ExpenseReportRuleSave=Spesenabrechnung Regel gespeichert +ExpenseReportRulesDesc=Sie können Höchstbetragsregeln für Spesenabrechnungen definieren. Diese Regeln werden angewendet, wenn einer Spesenabrechnung eine neue Ausgabe hinzugefügt wird. ExpenseReportWaitingForApproval=Eine neue Spesenabrechnung ist zur Genehmigung vorgelegt worden ExpenseReportWaitingForApprovalMessage=Ein neuer Spesenabrechnung wurde vorgelegt und wartet auf die Genehmigung.
- Benutzer: %s
- Zeitraum: %s
Klicken Sie hier, um diesen freizugeben: %s ExpenseReportWaitingForReApproval=Eine Spesenabrechnung ist zur erneuten Genehmigung vorgelegt worden ExpenseReportWaitingForReApprovalMessage=Eine Spesenabrechnung wurde eingereicht und wartet auf erneute Freigabe.
Die Freigabe der Spesenabrechnung für %s wurde aus folgendem Grund verweigert: %s.
Eine neue Version wurde für für die Freigabe vorgeschlagen und wartet.
- Benutzer: %s
- Zeitraum: %s
Klicken Sie hier, um diesen freizugeben: %s -ExpenseReportApproved=Eine Spesenabrechnung wurde genehmigt -ExpenseReportApprovedMessage=Der Spesenabrechnung %s wurde genehmigt.
- Benutzer: %s
- Genehmigt von: %s
Klicken Sie hier, um die Spesenabrechnung anzuzeigen: %s -ExpenseReportRefused=Eine Spesenabrechnung wurde abgelehnt -ExpenseReportRefusedMessage=Der Spesenabrechnung %s wurde abgelehnt.
- Benutzer: %s
- Refused von: %s
- Motive für die Ablehnung: %s
Klicken Sie hier, um die Spesenabrechnung zeigen: %s -ExpenseReportCanceled=Eine Spesenabrechnung wurde storniert -ExpenseReportCanceledMessage=Der Spesenabrechnung %s wurde abgebrochen.
- Benutzer: %s
- Storniert von: %s
- Motive für die Stornierung: %s
Klicken Sie hier, um die Spesenabrechnung zu zeigen: %s -ExpenseReportPaid=Eine Spesenabrechnung wurde ausbezahlt -ExpenseReportPaidMessage=Der Spesenabrechnung %s wurde bezahlt.
- Benutzer: %s
- Paid von: %s
Klicken Sie hier, um die Spesenabrechnung anzuzeigen: %s -TripId=Spesenabrechnung ID -AnyOtherInThisListCanValidate=Person, die zur Validierung der Anfrage informiert werden soll. -TripSociete=Partner -TripNDF=Hinweise Spesenabrechnung -PDFStandardExpenseReports=Standard-Vorlage, um ein PDF-Dokument für die Spesenabrechnung zu erzeugen -ExpenseReportLine=Position in der Spesenabrechnung -TF_OTHER=Andere -TF_TRIP=Versand -TF_LUNCH=Bewirtung -TF_METRO=S- und U-Bahn -TF_TRAIN=Bahn -TF_BUS=Bus -TF_CAR=Auto -TF_PEAGE=Mautgebühr -TF_ESSENCE=Kraftstoff -TF_HOTEL=Hotel -TF_TAXI=Taxi -EX_KME=Kosten pro Kilometer -EX_FUE=Tankspesen Firmenauto -EX_HOT=Hotel -EX_PAR=Parkingspesen Firmenauto -EX_TOL=Gebührenspesen Firmenauto -EX_TAX=Verschiedene Steuern -EX_IND=Transportversicherung -EX_SUM=Wartungsmaterial -EX_SUO=Büromaterial -EX_CAR=Autovermietung -EX_DOC=Dokumentation -EX_CUR=Kundengeschenk -EX_OTR=Anderes Geschenk -EX_POS=Porto -EX_CAM=Unterhalt und Reparatur Firmenauto -EX_EMM=Mitarbeiter Essen -EX_GUM=Essen mit Kunde -EX_BRE=Frühstück -EX_FUE_VP=Tankspesen Privatauto -EX_TOL_VP=Mautgebühr -EX_PAR_VP=Parkgebühr -EX_CAM_VP=Unterhalt und Reparatur Privatauto -DefaultCategoryCar=Standardmäßiges Verkehrsmittel -DefaultRangeNumber=Standradreichweite -UploadANewFileNow=Neues Dokument jetzt hochladen -Error_EXPENSEREPORT_ADDON_NotDefined=Fehler, die Regeln für Spesenabrechnungnummerierung wurde im Setup des Moduls "Spesenabrechnung" nicht definiert -ErrorDoubleDeclaration=Sie haben bereits eine andere Spesenabrechnung in einem ähnlichen Datumsbereich erstellt. -AucuneLigne=Es wurde noch keine Spesenabrechnung erstellt. -ModePaiement=Zahlungsart -VALIDATOR=Verantwortlicher Benutzer für Genehmigung -VALIDOR=genehmigt durch -AUTHOR=erstellt von -AUTHORPAIEMENT=Bezahlt von -REFUSEUR=abgelehnt durch -CANCEL_USER=gelöscht von -MOTIF_REFUS=Grund -MOTIF_CANCEL=Grund -DATE_REFUS=Datum Ablehnung -DATE_SAVE=Freigabedatum -DATE_CANCEL=Stornodatum -DATE_PAIEMENT=Zahlungsdatum -ExpenseReportRef=Belegnummer Spesenabrechnung -ValidateAndSubmit=Freigeben und zur Genehmigung einreichen -ValidatedWaitingApproval=Validiert (Wartet auf Genehmigung) -NOT_AUTHOR=Sie sind nicht der Autor dieser Spesenabrechnung. Vorgang abgebrochen. -ConfirmRefuseTrip=Möchten Sie diese Spesenabrechnung wirklich ablehnen? -ValideTrip=Genehmigen Spesenabrechnung -ConfirmValideTrip=Möchten Sie diese Spesenabrechnung wirklich genehmigen? -PaidTrip=Spesenabrechnung bezahlen -ConfirmPaidTrip=Möchten Sie den Status dieser Spesenabrechnung auf "Bezahlt" ändern? -ConfirmCancelTrip=Möchten Sie diese Spesenabrechnung wirklich stornieren? -BrouillonnerTrip=Status der Spesenabrechnung auf den Status "Entwurf" ändern -ConfirmBrouillonnerTrip=Möchten Sie den Status dieser Spesenabrechnung wirklich auf "Entwurf" ändern? -SaveTrip=Bestätige Spesenabrechnung -ConfirmSaveTrip=Möchten Sie den diese Spesenabrechnung wirklich bestätigen? -NoTripsToExportCSV=Keine Spesenabrechnung für diesen Zeitraum zu exportieren. -ExpenseReportPayment=Spesenabrechnung Zahlung -ExpenseReportsToApprove=zu genehmigende Spesenabrechnungen -ExpenseReportsToPay=zu zahlende Spesenabrechnungen -ConfirmCloneExpenseReport=Möchten Sie den diese Spesenabrechnung wirklich duplizieren? ExpenseReportsIk=Konfiguration der Kilometergebühren ExpenseReportsRules=Spesenabrechnungen Regeln -ExpenseReportIkDesc=Sie können die Berechnung der Kilometerspensen pro Kategorie und Distanz dort ändern wo sie definiert wurden. d ist die Distanz in Kilometer -ExpenseReportRulesDesc=Sie können Höchstbetragsregeln für Spesenabrechnungen definieren. Diese Regeln werden angewendet, wenn einer Spesenabrechnung eine neue Ausgabe hinzugefügt wird. -expenseReportOffset=Wertsprung -expenseReportCoef=Koeffizient -expenseReportTotalForFive=Beispiel mit d = 5 -expenseReportRangeFromTo=von %d bis %d -expenseReportRangeMoreThan=mehr als %d -expenseReportCoefUndefined=(Wert nicht definiert) -expenseReportCatDisabled=Kategorie deaktiviert - Wörterbuch c_exp_tax_cat -expenseReportRangeDisabled=Periode deaktiviert - Wörterbuch c_exp_tax_range -expenseReportPrintExample=offset + (d x coef) = %s -ExpenseReportApplyTo=Anwenden auf -ExpenseReportDomain=Anwenden auf Bereich -ExpenseReportLimitOn=Limite ein -ExpenseReportDateStart=Startdatum -ExpenseReportDateEnd=Enddatum -ExpenseReportLimitAmount=Höchstbetrag -ExpenseReportRestrictive=Überschreiten nicht zulässig -AllExpenseReport=Alle Spesenarten -OnExpense=Spesenzeile -ExpenseReportRuleSave=Spesenabrechnung Regel gespeichert -ExpenseReportRuleErrorOnSave=Fehler: %s -RangeNum=Periode %d -ExpenseReportConstraintViolationError=Höchstbetrag überschritten (Regel %s): %s ist höher als %s (Überschreiten nicht zulässig) -byEX_DAY=pro Tag (Begrenzt auf %s) -byEX_MON=pro Monat (Begrenzt auf %s) -byEX_YEA=pro Jahr (Begrenzt auf %s) -byEX_EXP=pro Zeile (Begrenzt auf %s) -ExpenseReportConstraintViolationWarning=Höchstbetrag überschritten (Regel %s): %s ist höher als %s (Überschreitung autorisiert) -nolimitbyEX_DAY=pro Tag (keine Beschränkung) -nolimitbyEX_MON=pro Monat (keine Beschränkung) -nolimitbyEX_YEA=pro Jahr (Nicht Begrenzt) -nolimitbyEX_EXP=pro Zeile (Nicht Begrenzt) -CarCategory=Fahrzeugkategorie -ExpenseRangeOffset=Offset Betrag: %s +ExpenseReportsToApprove=Zu genehmigende Spesenabrechnungen +ExpenseReportsToPay=zu zahlende Spesenabrechnungen +ExpensesArea=Spesenabrechnungen +FeesKilometersOrAmout=Spesenbetrag bzw. Kilometergeld +LastExpenseReports=Letzte %s Spesenabrechnungen +ListOfFees=Liste der Spesen +ListOfTrips=Aufstellung Spesenabrechnungen +ListToApprove=Warten auf Bestätigung +ListTripsAndExpenses=Aufstellung Spesenabrechnungen +MOTIF_CANCEL=Grund +MOTIF_REFUS=Grund +ModePaiement=Zahlungsart +NewTrip=neue Spesenabrechnung +nolimitbyEX_DAY=pro Tag (nicht begrenzt) +nolimitbyEX_EXP=pro Zeile (nicht begrenzt) +nolimitbyEX_MON=pro Monat (nicht begrenzt) +nolimitbyEX_YEA=pro Jahr (nicht begrenzt) +NoTripsToExportCSV=Keine Spesenabrechnung für diesen Zeitraum zu exportieren. +NOT_AUTHOR=Sie sind nicht der Ersteller dieser Spesenabrechnung. Vorgang abgebrochen. +OnExpense=Spesenposition +PDFStandardExpenseReports=Standard-Vorlage, um ein PDF-Dokument für die Spesenabrechnung zu erzeugen +PaidTrip=Spesenabrechnung bezahlen +REFUSEUR=Abgelehnt durch RangeIk=Reichweite -AttachTheNewLineToTheDocument=Zeile an hochgeladenes Dokument anhängen +RangeNum=Bereich %d +SaveTrip=Bestätige Spesenabrechnung +ShowExpenseReport=Spesenabrechnung anzeigen +ShowTrip=Spesenabrechnung anzeigen +TripCard=Reisekosten – Übersicht +TripId=Spesenabrechnung ID +TripNDF=Hinweise Spesenabrechnung +TripSociete=Information zum Unternehmen +Trips=Spesenabrechnungen +TripsAndExpenses=Spesenabrechnungen +TripsAndExpensesStatistics=Reise- und Fahrtspesen Statistik +TypeFees=Gebührenarten +UploadANewFileNow=Neues Dokument jetzt hochladen +VALIDATOR=Genehmiger +VALIDOR=Genehmigt durch +ValidateAndSubmit=Freigeben und zur Genehmigung einreichen +ValidatedWaitingApproval=Freigegeben (Wartet auf Genehmigung) +ValideTrip=Genehmigen Spesenabrechnung + +## Dictionary +EX_BRE=Frühstück +EX_CAM=Unterhalt und Reparatur Firmenwagen +EX_CAM_VP=Unterhalt und Reparatur Privatwagen +EX_CAR=Autovermietung +EX_CUR=Kundengeschenk +EX_DOC=Dokumentation +EX_EMM=Bewirtung Mitarbeiter +EX_FUE=Tankspesen Firmenwagen +EX_FUE_VP=Tankspesen Privatwagen +EX_GUM=Bewirtung Kunde +EX_HOT=Hotel +EX_IND=Transportversicherung +EX_KME=Kosten pro Kilometer +EX_OTR=Anderes Geschenk +EX_PAR=Parkgebühren Firmenwagen +EX_PAR_VP=Parkgebühr Privatwagen +EX_POS=Porto +EX_SUM=Wartungsmaterial +EX_SUO=Büromaterial +EX_TAX=Verschiedene Steuern +EX_TOL=Mautgebühren Firmenwagen +EX_TOL_VP=Mautgebühr Privatwagen +TF_BUS=Bus +TF_CAR=PKW +TF_ESSENCE=Tankspesen +TF_HOTEL=Hotel +TF_LUNCH=Bewirtung +TF_METRO=S- und U-Bahn +TF_OTHER=Andere +TF_PEAGE=Mautgebühr +TF_TAXI=Taxi +TF_TRAIN=Bahn +TF_TRIP=Fahrschein/Ticket diff --git a/htdocs/langs/de_DE/users.lang b/htdocs/langs/de_DE/users.lang index 8c64d78ec24..3831051df46 100644 --- a/htdocs/langs/de_DE/users.lang +++ b/htdocs/langs/de_DE/users.lang @@ -13,7 +13,7 @@ SubjectNewPassword=Ihr neues Passwort für %s GroupRights=Gruppenberechtigungen UserRights=Benutzerberechtigungen Credentials=Zugangsdaten -UserGUISetup=Konfiguration der Benutzeranzeige +UserGUISetup=Benutzeroberfläche DisableUser=Deaktiviere Benutzer DisableAUser=Einen Benutzer deaktivieren DeleteUser=Lösche Benutzer @@ -47,7 +47,7 @@ RemoveFromGroup=Gruppenzuweisung entfernen PasswordChangedAndSentTo=Passwort geändert und an %s gesendet. PasswordChangeRequest=Aufforderung, das Passwort für %s zu ändern PasswordChangeRequestSent=Kennwort-Änderungsanforderung für %s gesendet an %s. -IfLoginExistPasswordRequestSent=Falls dieser Benutzer über ein gültiges Konto verfügt, wurde eine E-Mail zum Zurücksetzen des Passworts gesendet. +IfLoginExistPasswordRequestSent=Wenn es sich bei der angegebenen E-Mail-Adresse um ein gültiges Konto handelt, wurde eine E-Mail zum Zurücksetzen des Passworts gesendet. IfEmailExistPasswordRequestSent=Eine E-Mail zum Zurücksetzen des Passworts wurde versendet (vorausgesetzt dass die angegebene E-Mail-Adresse existiert). ConfirmPasswordReset=Passwort zurücksetzen MenuUsersAndGroups=Benutzer und Gruppen @@ -60,20 +60,20 @@ UserModified=Benutzer erfolgreich bearbeitet PhotoFile=Bilddatei ListOfUsersInGroup=Liste der Benutzer in dieser Gruppe ListOfGroupsForUser=Liste der Gruppen dieses Benutzers -LinkToCompanyContact=Mit Partner/Kontakt verknüpfen +LinkToCompanyContact=Mit Geschäftspartner/Kontakt verknüpfen LinkedToDolibarrMember=Mit Mitglied verknüpfen LinkedToDolibarrUser=Verknüpfung mit Benutzer LinkedToDolibarrThirdParty=Verknüpfung mit Geschäftspartner CreateDolibarrLogin=Benutzerkonto erstellen -CreateDolibarrThirdParty=Neuen Partner erstellen -LoginAccountDisableInDolibarr=Benutzerkonto im System deaktiviert. +CreateDolibarrThirdParty=Neuen Geschäftspartner erstellen +LoginAccountDisableInDolibarr=Benutzerkonto in Dolibarr deaktiviert +PASSWORDInDolibarr=Passwort in Dolibarr geändert UsePersonalValue=Eigenen Wert verwenden -InternalUser=Interne Benutzer ExportDataset_user_1=Benutzer und -eigenschaften DomainUser=Domain-Benutzer %s Reactivate=wieder aktivieren CreateInternalUserDesc=Hier kannst du interne Benutzer erzeugen.\nExterne Benutzer (Kunden, Lieferanten etc.) erzeugst du in dem Geschäftspartner Menü Kontakte/Adressen. -InternalExternalDesc=Ein interner Benutzer ist ein Benutzer, der zu Ihrem Unternehmen/Ihrer Organisation gehört oder ein Partnerbenutzer außerhalb Ihrer Organisation ist, der möglicherweise mehr Daten als Daten zu seinem Unternehmen sehen muss (das Berechtigungssystem legt fest, was er kann oder nicht sehen oder tun kann).
Ein externer -Benutzer ist ein Kunde, Lieferant oder ein anderer, der NUR Daten zu seiner Person anzeigen darf (das Erstellen eines externen Benutzers für einen Geschäftspartner kann über den Kontaktdatensatz des Geschäftspartner erfolgen).

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

In beiden Fällen müssen Sie Berechtigungen für die Funktionen erteilen, die der Benutzer benötigt. PermissionInheritedFromAGroup=Berechtigung durch eine Gruppenzugehörigkeit geerbt. Inherited=Geerbt UserWillBe=Benutzer erstellen als @@ -100,7 +100,7 @@ YourQuotaOfUsersIsReached=Ihr Kontingent aktiver Benutzer ist erreicht NbOfUsers=Anzahl Benutzer NbOfPermissions=Anzahl Berechtigungen DontDowngradeSuperAdmin=Nur ein SuperAdmin kann einen SuperAdmin downgraden -HierarchicalResponsible=Vorgesetzter +HierarchicalResponsible=Führungskraft HierarchicView=Hierarchische Ansicht UseTypeFieldToChange=Nutzen sie das Feld "Typ" zum Ändern OpenIDURL=OpenID URL @@ -118,9 +118,9 @@ DateEmploymentStart=Beschäftigungsbeginn DateEmploymentEnd=Beschäftigungsende RangeOfLoginValidity=Datumsbereich der Zugriffsgültigkeit CantDisableYourself=Sie können nicht ihr eigenes Benutzerkonto deaktivieren -ForceUserExpenseValidator=Überprüfung der Spesenabrechnung erzwingen -ForceUserHolidayValidator=Gültigkeitsprüfer für Urlaubsanträge erzwingen -ValidatorIsSupervisorByDefault=Standardmäßig ist der Prüfer der Supervisor des Benutzers. Leer lassen, um dieses Verhalten beizubehalten. +ForceUserExpenseValidator=Genehmiger für Spesenabrechnungen festlegen +ForceUserHolidayValidator=Genehmiger für Urlaubsanträge festlegen +ValidatorIsSupervisorByDefault=Standardmäßig ist die Führungskraft des Benutzers der Prüfer. Leer lassen, um dieses Verhalten beizubehalten. UserPersonalEmail=Private E-Mail-Adresse UserPersonalMobile=Private Mobiltelefonnummer WarningNotLangOfInterface=Warnung: das ist die eingestellte Muttersprache die der Benutzer spricht, nicht die ausgewählte Sprache der Benutzeroberfläche. Um die angezeigte Sprache der Benutzeroberfläche zu ändern, gehe zum Tab %s @@ -128,3 +128,8 @@ DateLastLogin=Datum der letzten Anmeldung DatePreviousLogin=Datum der vorangegangenen Anmeldung IPLastLogin=IP der letzten Anmeldung IPPreviousLogin=IP der vorangegangenen Anmeldung +ShowAllPerms=Alle Berechtigungen anzeigen +HideAllPerms=Alle Berechtigungen ausblenden +UserPublicPageDesc=Sie können für diesen Benutzer eine virtuelle Karte aktivieren. Eine URL mit dem Benutzerprofil und einem Barcode wird verfügbar sein, damit jeder mit einem Smartphone sie scannen und Ihren Kontakt zu seinem Adressbuch hinzufügen kann. +EnablePublicVirtualCard=Aktivieren Sie die öffentliche virtuelle Benutzerkarte +PublicVirtualCardUrl=Öffentliche virtuelle Benutzerkarte diff --git a/htdocs/langs/de_DE/website.lang b/htdocs/langs/de_DE/website.lang index 0ae8d538aec..73ad12ac6cb 100644 --- a/htdocs/langs/de_DE/website.lang +++ b/htdocs/langs/de_DE/website.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - website Shortname=Code +WebsiteName=Name der Website WebsiteSetupDesc=Erstellen Sie hier die Websites, die Sie verwenden möchten. Dann gehen Sie in das Menü Websites, um sie zu bearbeiten. DeleteWebsite=Website löschen ConfirmDeleteWebsite=Sind Sie sicher, dass Sie diese Website löschen möchten? Alle Seiten und Inhalte werden ebenfalls entfernt. Die hochgeladenen Dateien (z.B. in das medias-Verzeichnis, das ECM-Modul, ...) bleiben erhalten. @@ -15,9 +16,9 @@ WEBSITE_HTML_HEADER=Diesen Code am Schluss des HTML Headers anhängen (für alle WEBSITE_ROBOT=Roboterdatei (robots.txt) WEBSITE_HTACCESS=Website .htaccess Datei WEBSITE_MANIFEST_JSON=Website manifest.json Datei -WEBSITE_README=Datei README.md WEBSITE_KEYWORDSDesc=Verwenden Sie ein Komma, um Werte zu trennen -EnterHereLicenseInformation=Geben Sie hier Metadaten oder Lizenzinformationen ein, die in einer README.md-Datei abgelegt werden. Wenn Sie Ihre Website als Vorlage verteilen, wird die Datei in das Vorlagen-Package aufgenommen. +EnterHereReadmeInformation=Geben Sie hier eine Beschreibung der Website ein. Wenn Sie Ihre Website als Vorlage verteilen, wird die Datei in das Template-Paket aufgenommen. +EnterHereLicenseInformation=Geben Sie hier die LIZENZ des Codes der Website ein. Wenn Sie Ihre Website als Vorlage verteilen, wird die Datei in das Temprate-Paket aufgenommen. HtmlHeaderPage=HTML Header (Nur für diese Seite) PageNameAliasHelp=Name oder Alias der Seite.
Dieser Alias wird auch zum erstellen einer SEO URL verwendet, wenn die Website auf einem Virtuellen Webserver läuft. Verwenden Sie der Button "%s" um den Alias zu ändern. EditTheWebSiteForACommonHeader=Hinweis: Um einen personalisierten Header für alles Seiten zu erstellen, muss der Header auf Site-Level bearbeitet werden, anstelle auf Seiten-/Containerebene. @@ -42,11 +43,13 @@ ViewPageInNewTab=Seite in neuem Tab anzeigen SetAsHomePage=Als Startseite festlegen RealURL=Echte URL ViewWebsiteInProduction=Website mit Home-URLs anzeigen +Virtualhost=Name des virtuellen Hosts oder der Domain +VirtualhostDesc=Der Name des virtuellen Hosts oder der Domain (Beispiel: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost=Verwendung mit Apache/Nginx/...
Erstellen Sie auf Ihrem Webserver (Apache, Nginx, ...) einen dedizierten virtuellen Host mit aktiviertem PHP und einem Stammverzeichnis unter
%s ExampleToUseInApacheVirtualHostConfig=Beispiel für die Einrichtung eines virtuellen Apache-Hosts YouCanAlsoTestWithPHPS=Verwendung mit eingebettetem PHP-Server
In der Entwicklungsumgebung können Sie die Site mit dem eingebetteten PHP-Webserver (PHP 5.5 erforderlich) testen, indem Sie
php -S 0.0.0.0:8080 -t %s ausführen. YouCanAlsoDeployToAnotherWHP=Betrieb der Website mit einem anderen Dolibarr Hosting-Anbieter
Wenn kein Apache oder Nginx Webserver online verfügbar ist, kann die Website exportiert und importiert werden und zu einer anderen Dolibarr-Instanz umziehen, die durch einen anderen Dolibarr Hosting-Anbieter mit kompletter Integration des Webseiten-Moduls bereitgestellt wird. Einige Dolibarr Hosting-Anbieter sind hier aufgelistet https://saas.dolibarr.org -CheckVirtualHostPerms=Überprüfen Sie auch, ob der User des virtuellen Hosts (z.B. www-daten) über die Berechtigungen %s für Dateien in
%s verfügt. +CheckVirtualHostPerms=Überprüfen Sie auch, ob der User des virtuellen Hosts (z.B. www-data) über die Berechtigungen %s für Dateien in
%s verfügt. ReadPerm=Lesen WritePerm=Schreiben TestDeployOnWeb=Test/Bereitstellung im Web @@ -137,7 +140,7 @@ PagesRegenerated=%s Seite(n)/Container neu generiert RegenerateWebsiteContent=Website-Cache-Dateien neu generieren AllowedInFrames=In Frames erlaubt DefineListOfAltLanguagesInWebsiteProperties=Definiere eine Liste aller verfügbaren Sprachen in den Website-Eigenschaften. -GenerateSitemaps=Website-Sitemap-Datei generieren +GenerateSitemaps=Die sitemap.xml-Datei der Website generieren ConfirmGenerateSitemaps=Wenn Sie dies bestätigen, löschen Sie die vorhandene Sitemap-Datei ... ConfirmSitemapsCreation=Bestätigen Sie die Sitemap-Generierung SitemapGenerated=Sitemap-Datei %s generiert @@ -145,3 +148,12 @@ ImportFavicon=Favicon ErrorFaviconType=Favicon muss png sein ErrorFaviconSize=Favicon muss die Größe 16x16, 32x32 oder 64x64 haben FaviconTooltip=Laden Sie ein Bild im PNG-Format hoch (16x16, 32x32 oder 64x64). +NextContainer=Nächste Seite/Container +PreviousContainer=Vorherige Seite/Container +WebsiteMustBeDisabled=Die Website muss den Status „%s“ haben +WebpageMustBeDisabled=Die Webseite muss den Status „%s“ haben +SetWebsiteOnlineBefore=Wenn die Website offline ist, sind alle Seiten offline. Ändern Sie zuerst den Status der Website. +Booking=Buchung +Reservation=Reservierung +PagesViewedPreviousMonth=Angesehene Seiten (Vormonat) +PagesViewedTotal=Angesehene Seiten (gesamt) diff --git a/htdocs/langs/de_DE/withdrawals.lang b/htdocs/langs/de_DE/withdrawals.lang index c2331dd09b6..1455b43acbe 100644 --- a/htdocs/langs/de_DE/withdrawals.lang +++ b/htdocs/langs/de_DE/withdrawals.lang @@ -3,7 +3,7 @@ CustomersStandingOrdersArea=Zahlungen per Lastschriftauftrag SuppliersStandingOrdersArea=Zahlungen per Überweisung StandingOrdersPayment=SEPA Lastschrift StandingOrderPayment=Lastschrift -NewStandingOrder=Neue Bestellung mit Zahlart Lastschrift +NewStandingOrder=Neuer Lastschriftauftrag NewPaymentByBankTransfer=neue Zahlung per Überweisung StandingOrderToProcess=Zu bearbeiten PaymentByBankTransferReceipts=Überweisungsaufträge @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Rechnung wartet auf Überweisung AmountToWithdraw=Abbuchungsbetrag AmountToTransfer=Zu überweisender Betrag NoInvoiceToWithdraw=Es wartet keine Rechnung für '%s'. Gehen Sie auf der Rechnungskarte auf die Registerkarte '%s', um eine Anfrage zu stellen. -NoSupplierInvoiceToWithdraw=Es wartet keine Lieferantenrechnung mit offenen 'Direktgutschriftsanträgen'. Gehen Sie auf die Registerkarte '%s' auf der Rechnungskarte, um eine Anfrage zu stellen. +NoSupplierInvoiceToWithdraw=Es liegt keine Lieferantenrechnung mit offenen '%s' vor. Gehen Sie auf der Rechnungsseite auf die Registerkarte „%s“, um einen Überweisungsauftrag zu erstellen. ResponsibleUser=Verantwortlicher Benutzer WithdrawalsSetup=Einstellungen für Lastschriftaufträge CreditTransferSetup=Einstellungen Modul Zahlung per Überweisung @@ -42,7 +42,8 @@ CreditTransferStatistics=Statistiken Überweisungen Rejects=Ablehnungen LastWithdrawalReceipt=Letzte 1%s Einnahmen per Lastschrift MakeWithdrawRequest=Erstelle eine Lastschrift -MakeBankTransferOrder=Stelle eine Überweisungsanfrage +MakeWithdrawRequestStripe=Fordern Sie eine Lastschriftzahlung über Stripe an +MakeBankTransferOrder=Überweisungsauftrag erstellen WithdrawRequestsDone=%s Lastschrift-Zahlungsaufforderungen aufgezeichnet BankTransferRequestsDone=%s Überweisungsanforderungen aufgezeichnet ThirdPartyBankCode=Geschäftspartner Bankcode @@ -81,7 +82,7 @@ StatusMotif5=nicht nutzbare Kontodaten StatusMotif6=Leeres Konto StatusMotif7=Gerichtsbescheid StatusMotif8=Andere Gründe -CreateForSepaFRST=Lastschriftdatei erstellen (SEPA FRST) +CreateForSepaFRST=Lastschriftdatei erstellen (SEPA erstmalig) CreateForSepaRCUR=Lastschriftdatei erstellen (SEPA RCUR) CreateAll=Erstellen Sie eine Lastschriftdatei CreateFileForPaymentByBankTransfer=Datei für Überweisung erstellen @@ -100,8 +101,11 @@ CreditDate=Am WithdrawalFileNotCapable=Abbuchungsformular für Ihr Land %s konnte nicht erstellt werden (Dieses Land wird nicht unterstützt). ShowWithdraw=Zeige Lastschrift IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Wenn auf der Rechnung mindestens ein Lastschrift-Zahlungsauftrag noch nicht verarbeitet wurde, wird dieser nicht als bezahlt festgelegt, um eine vorherige Abhebungsverwaltung zu ermöglichen. -DoStandingOrdersBeforePayments=Auf dieser Registerkarte können Sie einen Lastschrift-Zahlungsauftrag anfordern. Gehen Sie anschließend in das Menü Bank-> Zahlung per Lastschrift, um den Lastschriftauftrag zu generieren und zu verwalten. Wenn der Lastschriftauftrag geschlossen wird, wird die Zahlung auf Rechnungen automatisch erfasst und die Rechnungen werden geschlossen, wenn der zu zahlende Restbetrag null ist. -DoCreditTransferBeforePayments=Auf dieser Registerkarte können Sie einen Überweisungsauftrag anfordern. Gehen Sie anschließend in das Menü Bank-> Zahlung per Überweisung, um den Überweisungsauftrag zu generieren und zu verwalten. Wenn der Überweisungsauftrag geschlossen wird, wird die Zahlung auf Rechnungen automatisch erfasst und die Rechnungen werden geschlossen, wenn der zu zahlende Restbetrag null ist. +DoStandingOrdersBeforePayments=Auf dieser Registerkarte können Sie einen Lastschrift-Zahlungsauftrag anfordern. Gehen Sie anschließend in das Menü Bank-> Zahlung per Lastschrift, um den Lastschriftauftrag zu generieren und zu verwalten. +DoStandingOrdersBeforePayments2=Sie können eine Anfrage auch direkt an einen SEPA-Zahlungsabwickler wie Stripe, ... senden. +DoStandingOrdersBeforePayments3=Wenn der Lastschriftauftrag geschlossen wird, werden Zahlungen auf Rechnungen automatisch erfasst und Rechnungen geschlossen, wenn der Restbetrag null ist. +DoCreditTransferBeforePayments=Auf dieser Registerkarte können Sie einen Überweisungsauftrag erstellen. Wenn Sie fertig sind, gehen Sie in das Menü "Bank->Zahlung per Überweisung", um eine Überweisungsauftragsdatei zu erstellen und zu verwalten. +DoCreditTransferBeforePayments3=Wenn der Überweisungsauftrag abgeschlossen ist, werden Zahlungen auf Rechnungen automatisch erfasst und Rechnungen geschlossen, wenn der zu zahlende Restbetrag null ist. WithdrawalFile=Datei für Lastschrift-Aufträge CreditTransferFile=Überweisungsdatei SetToStatusSent=Setze in Status "Datei versandt" @@ -111,14 +115,14 @@ RUM=UMR DateRUM=Datum der Unterzeichnung des Mandats RUMLong=Eindeutige Mandatsreferenz RUMWillBeGenerated=Wenn leer, wird die Mandatsreferenz generiert, sobald die Bankkontodaten gespeichert sind -WithdrawMode=Lastschriftmodus (FRST oder RECUR) +WithdrawMode=Lastschriftmodus (erstmalig oder wiederkehrend) WithdrawRequestAmount=Lastschrifteinzug Einzugs Betrag: -BankTransferAmount=Betrag der Überweisungsanforderung: +BankTransferAmount=Betrag des Überweisungsauftrags: WithdrawRequestErrorNilAmount=Es kann keine Lastschriftanforderung für einen leeren Betrag erstellt werden. SepaMandate=SEPA-Lastschriftmandat SepaMandateShort=SEPA-Mandate -PleaseReturnMandate=Bitte senden Sie dieses Formular per E-Mail an %s oder per Post an -SEPALegalText=Mit der Unterzeichnung dieses Lastschriftmandats autorisieren Sie als Kontoinhaber (A) den Zahlungsempfänger %s Zahlungen von Ihrem Konto mittels Lastschrift einzuziehen und weisen (B) Ihr Kreditinstitut an, die von %s auf Ihr Konto gezogenen Lastschriften einzulösen. \nHinweis: Sie können innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die Erstattung des belasteten Betrags verlangen. Es gelten dabei die mit Ihrem Kreditinstitut vereinbarten Bedingungen.\n +PleaseReturnMandate=Bitte senden Sie das ausgefüllte Formular per E-Mail an %s oder per Post an +SEPALegalText=Mit der Unterzeichnung dieses Lastschriftmandats autorisieren Sie als Kontoinhaber (A) den Zahlungsempfänger %s und seinen Zahlungsdienstleister, Zahlungen von Ihrem Konto mittels Lastschrift einzuziehen und weisen (B) Ihr Kreditinstitut an, die von %s auf Ihr Konto gezogenen Lastschriften einzulösen. \nHinweis: Sie können innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die Erstattung des belasteten Betrags verlangen. Es gelten dabei die mit Ihrem Kreditinstitut vereinbarten Bedingungen.\n CreditorIdentifier=Kennung Kreditor CreditorName=Name Kreditor SEPAFillForm=Kontoinhaber: (bitte füllen Sie alle mit * markierten Felder aus) @@ -132,8 +136,8 @@ PleaseCheckOne=Bitte prüfen sie nur eine CreditTransferOrderCreated=Überweisungsauftrag %s erstellt DirectDebitOrderCreated=Lastschrift %s erstellt AmountRequested=angeforderter Betrag -SEPARCUR=SEPA CUR -SEPAFRST=SEPA FRST +SEPARCUR=SEPA wiederkehrend +SEPAFRST=SEPA erstmalig ExecutionDate=Ausführungsdatum CreateForSepa=Erstellen Sie eine Lastschriftdatei ICS=Gläubiger-Identifikationsnummer - ICS diff --git a/htdocs/langs/de_DE/workflow.lang b/htdocs/langs/de_DE/workflow.lang index 1744ab50997..6cfee1bd30c 100644 --- a/htdocs/langs/de_DE/workflow.lang +++ b/htdocs/langs/de_DE/workflow.lang @@ -19,10 +19,10 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Den zugrundeliegenden Kunden descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Setzt das verknüpfte Lieferantenangebot auf "abgerechnet", sofern die Lieferanrenrechnung erstellt wurde und sofern der Rechnungsbetrag identisch zur Angebotsumme ist. # Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Kennzeichne die verknüpfte Lieferantenbestellung als abgerechnet, wenn die Lieferantenrechnung erstellt wurde und die Gesamtbeträge übereinstimmen. -descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Verknüpfte Lieferantenbestellung als eingegangen klassifizieren, wenn ein Wareneingang validiert wird (und wenn die von allen Wareneingängen eingegangene Menge mit der zu aktualisierenden Lieferantenbestellung übereinstimmt) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Verknüpfte Lieferantenbestellung als eingegangen klassifizieren, wenn ein Wareneingang freigegeben wird (und wenn die von allen Wareneingängen eingegangene Menge mit der zu aktualisierenden Lieferantenbestellung übereinstimmt) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Verknüpfte Lieferantenbestellung als eingegangen klassifizieren, wenn ein Wareneingang geschlossen wird (und wenn die von allen Wareneingängen eingegangene Menge mit der zu aktualisierenden Bestellung übereinstimmt) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Klassifizieren Sie Empfänge als "in Rechnung gestellt", wenn eine verknüpfte Lieferantenbestellung validiert wird +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Wareneingänge als „abgerechnet“ klassifizieren, wenn eine verknüpfte Einkaufsrechnung freigegeben wird (und wenn der Rechnungsbetrag mit dem Gesamtbetrag der verknüpften Wareneingänge übereinstimmt) # Automatically link ticket to contract descWORKFLOW_TICKET_LINK_CONTRACT=Verknüpfen Sie beim Erstellen eines Tickets verfügbare Verträge passender Geschäftspartner descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Beim Verknüpfen von Verträgen unter denen der Mutterunternehmen suchen @@ -31,6 +31,6 @@ descWORKFLOW_TICKET_CLOSE_INTERVENTION=Schließen Sie alle mit dem Ticket verkn AutomaticCreation=Automatische Erstellung AutomaticClassification=Automatische Klassifikation # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassifizieren Sie die verknüpfte Lieferung als geschlossen, wenn die Kundenrechnung validiert ist. +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Verknüpfte Lieferung als abgeschlossen klassifizieren, wenn die Kundenrechnung freigegeben ist (und wenn der Rechnungsbetrag mit dem Gesamtbetrag der verknüpften Lieferungen übereinstimmt) AutomaticClosing=Automatisches Schließen AutomaticLinking=Automatisches Verknüpfen diff --git a/htdocs/langs/el_CY/hrm.lang b/htdocs/langs/el_CY/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/el_CY/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/el_CY/propal.lang b/htdocs/langs/el_CY/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/el_CY/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/el_CY/stripe.lang b/htdocs/langs/el_CY/stripe.lang new file mode 100644 index 00000000000..ae44362fd94 --- /dev/null +++ b/htdocs/langs/el_CY/stripe.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - stripe +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +TERMINAL_LOCATION=Location (address) for Stripe Terminals diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang index 724cd5fa56b..7aa219573b5 100644 --- a/htdocs/langs/el_GR/accountancy.lang +++ b/htdocs/langs/el_GR/accountancy.lang @@ -14,8 +14,8 @@ ACCOUNTING_EXPORT_ENDLINE=Επιλέξτε τον τύπο επιστροφής ACCOUNTING_EXPORT_PREFIX_SPEC=Καθορίστε το πρόθεμα για το όνομα του αρχείου ThisService=Αυτή η υπηρεσία ThisProduct=Αυτό το προϊόν -DefaultForService=Προεπιλογή για υπηρεσία -DefaultForProduct=Προεπιλογή για προϊόν +DefaultForService=Προεπιλογή για υπηρεσίες +DefaultForProduct=Προεπιλογή για προϊόντα ProductForThisThirdparty=Προϊόν προς τρίτο μέρος ServiceForThisThirdparty=Υπηρεσία προς τρίτο μέρος CantSuggest=Δεν προτείνεται @@ -59,6 +59,7 @@ MainAccountForSuppliersNotDefined=Ο Κύριος λογαριασμός λογ MainAccountForUsersNotDefined=Ο Κύριος λογαριασμός λογιστικής για χρήστες δεν έχει οριστεί κατά τη ρύθμιση MainAccountForVatPaymentNotDefined=Ο Κύριος λογαριασμός λογιστικής για πληρωμή ΦΠΑ δεν έχει οριστεί κατά τη ρύθμιση MainAccountForSubscriptionPaymentNotDefined=Ο κύριος λογαριασμός λογιστικής για την πληρωμή συνδρομής δεν έχει οριστεί κατά τη ρύθμιση +UserAccountNotDefined=Ο λογαριασμός λογιστικής για τον χρήστη δεν έχει οριστεί κατά τη ρύθμιση AccountancyArea=Τομέας Λογιστικής AccountancyAreaDescIntro=Η χρήση της ενότητας λογιστικής πραγματοποιείται σε διάφορα στάδια: @@ -100,7 +101,8 @@ ShowAccountingAccount=Εμφάνιση λογαριασμού λογιστική ShowAccountingJournal=Εμφάνιση ημερολογίου λογιστικής ShowAccountingAccountInLedger=Εμφάνιση λογαριασμού λογιστικής στο καθολικό ShowAccountingAccountInJournals=Εμφάνιση λογαριασμού λογιστικής στα ημερολόγια -AccountAccountingSuggest=Προτεινόμενος λογαριασμός λογιστικής +DataUsedToSuggestAccount=Δεδομένα που χρησιμοποιούνται για την πρόταση λογαριασμού +AccountAccountingSuggest=Προτεινόμενος λογαριασμός MenuDefaultAccounts=Προεπιλεγμένοι λογαριασμοί MenuBankAccounts=Τραπεζικοί Λογαριασμοί MenuVatAccounts=Λογαριασμοί Φ.Π.Α. @@ -125,6 +127,7 @@ WriteBookKeeping=Καταγραφή συναλλαγών στη λογιστικ Bookkeeping=Καθολικό BookkeepingSubAccount=Βοηθητικό καθολικό AccountBalance=Ισοζύγιο λογαριασμού +AccountBalanceSubAccount=Υπόλοιπο υπολογαριασμών ObjectsRef=Αναφορά αντικειμένου προέλευσης CAHTF=Σύνολο αγορών προμηθευτών προ φόρων TotalExpenseReport=Σύνολο αναφοράς εξόδων @@ -164,42 +167,45 @@ ACCOUNTANCY_COMBO_FOR_AUX=Ενεργοποίηση σύνθετης λίστας ACCOUNTING_DATE_START_BINDING=Καθορίστε ημερομηνία έναρξης δεσμεύσεων & μεταφοράς στη λογιστική. Πριν από αυτή την ημερομηνία, οι συναλλαγές δεν θα μεταφερθούν στη λογιστική. ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=Ποια είναι η προεπιλεγμένη περίοδος στη λογιστική μεταφορά; -ACCOUNTING_SELL_JOURNAL=Ημερολόγιο πωλήσεων -ACCOUNTING_PURCHASE_JOURNAL=Ημερολόγιο αγορών -ACCOUNTING_MISCELLANEOUS_JOURNAL=Ημερολόγιο διαφόρων +ACCOUNTING_SELL_JOURNAL=Ημερολόγιο πωλήσεων (πωλήσεις και επιστροφές) +ACCOUNTING_PURCHASE_JOURNAL=Ημερολόγιο αγοράς (αγορές και επιστροφές) +ACCOUNTING_BANK_JOURNAL=Ημερολόγιο μετρητών (εισπράξεις και εκταμιεύσεις) ACCOUNTING_EXPENSEREPORT_JOURNAL=Ημερολόγιο εξόδων -ACCOUNTING_SOCIAL_JOURNAL=Κοινωνικό ημερολόγιο +ACCOUNTING_MISCELLANEOUS_JOURNAL=Γενικό ημερολόγιο ACCOUNTING_HAS_NEW_JOURNAL=Έχει νέο περιοδικό +ACCOUNTING_INVENTORY_JOURNAL=Ημερολόγιο απογραφής +ACCOUNTING_SOCIAL_JOURNAL=Κοινωνικό ημερολόγιο ACCOUNTING_RESULT_PROFIT=Αποτέλεσμα λογιστικού λογαριασμού (Κέρδος) ACCOUNTING_RESULT_LOSS=Αποτέλεσμα λογιστικού λογαριασμού (Ζημιά) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Ημερολόγιο κλεισίματος -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Λογαριασμός λογιστικής της μεταβατικής τραπεζικής μεταφοράς +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως λογαριασμός για μεταβατικές τραπεζικές μεταφορές TransitionalAccount=Λογαριασμός της μεταβατικής τραπεζικής μεταφοράς -ACCOUNTING_ACCOUNT_SUSPENSE=Λογαριασμός λογιστικής αναμονής -DONATION_ACCOUNTINGACCOUNT=Λογαριασμός λογιστικής για την εγγραφή δωρεών -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Λογαριασμός λογιστικής για την εγγραφή συνδρομών +ACCOUNTING_ACCOUNT_SUSPENSE=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο λογαριασμός για μη κατανεμημένα κεφάλαια είτε εισπραχθέντα είτε καταβληθέντα, δηλαδή κεφάλαια σε «αναμονή» +DONATION_ACCOUNTINGACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί για την εγγραφή δωρεών (ενότητα δωρεών) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί για την εγγραφή συνδρομών μελών (Ενότητα μέλους - εάν η συνδρομή έχει καταγραφεί χωρίς τιμολόγιο) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Προεπιλεγμένος λογαριασμός λογιστικής για καταγραφή κατάθεσης πελάτη +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για την εγγραφή κατάθεσης πελατών UseAuxiliaryAccountOnCustomerDeposit=Αποθηκεύστε τον λογαριασμό πελάτη ως ατομικό λογαριασμό στο θυγατρικό καθολικό για γραμμές προκαταβολών (εάν απενεργοποιηθεί, ο ατομικός λογαριασμός για τις γραμμές προκαταβολών θα παραμείνει κενός) -ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Προεπιλεγμένος λογαριασμός λογιστικής για εγγραφή κατάθεσης σε προμηθευτή +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως προεπιλογή UseAuxiliaryAccountOnSupplierDeposit=Αποθηκεύστε τον λογαριασμό προμηθευτή ως ατομικό λογαριασμό στο θυγατρικό καθολικό για γραμμές προκαταβολών (εάν απενεργοποιηθεί, ο ατομικός λογαριασμός για τις γραμμές προκαταβολών θα παραμείνει κενός) +ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Λογαριασμός λογιστικής από προεπιλογή για την εγγραφή της εγγύησης που δόθηκε από τον πελάτη -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=Ημερομηνία @@ -214,7 +220,8 @@ Codejournal=Ημερολόγιο JournalLabel=Ετικέτα Ημερολογίου NumPiece=Αριθμός καταχώρησης TransactionNumShort=Αριθ. συναλλαγής -AccountingCategory=Προσαρμοσμένη ομάδα +AccountingCategory=Προσαρμοσμένη ομάδα λογαριασμών +AccountingCategories=Προσαρμοσμένες ομάδες λογαριασμών GroupByAccountAccounting=Ομαδοποίηση ανά λογαριασμό γενικού καθολικού GroupBySubAccountAccounting=Ομαδοποίηση ανά λογαριασμό βοηθητικού καθολικού AccountingAccountGroupsDesc=Μπορείτε να ορίσετε εδώ ορισμένες ομάδες λογιστικού λογαριασμού. Θα χρησιμοποιηθούν για εξατομικευμένες λογιστικές εκθέσεις. @@ -262,19 +269,20 @@ ShowSubtotalByGroup=Εμφάνιση υποσυνόλου ανά επίπεδο Pcgtype=Ομάδα του λογαριασμού PcgtypeDesc=Η ομάδα λογαριασμού χρησιμοποιείται ως προκαθορισμένο κριτήριο «φίλτρου» και «ομαδοποίησης» για ορισμένες λογιστικές αναφορές. Για παράδειγμα, «ΕΣΟΔΑ» ή «ΕΞΟΔΑ» χρησιμοποιούνται ως ομάδες λογιστικών λογαριασμών προϊόντων για τη δημιουργία της αναφοράς εξόδων / εσόδων. +AccountingCategoriesDesc=Η προσαρμοσμένη ομάδα λογαριασμών μπορεί να χρησιμοποιηθεί για την ομαδοποίηση λογιστικών λογαριασμών σε ένα όνομα για τη διευκόλυνση της χρήσης φίλτρου ή της δημιουργίας προσαρμοσμένων αναφορών. Reconcilable=Προς συμφωνία TotalVente=Συνολικός κύκλος εργασιών προ φόρων TotalMarge=Συνολικό περιθώριο πωλήσεων -DescVentilCustomer=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών τιμολογίων πελατών που δεσμεύονται (ή όχι) σε λογαριασμό λογιστικής προϊόντων -DescVentilMore=Στις περισσότερες περιπτώσεις, εάν χρησιμοποιείτε προκαθορισμένα προϊόντα ή υπηρεσίες και ορίσετε τον αριθμό λογαριασμού στην κάρτα προϊόντος/υπηρεσίας, η εφαρμογή θα μπορεί να δεσμεύει όλες τις γραμμές τιμολογίων σας και τον λογιστικό λογαριασμό του λογιστικού σας σχεδίου, ακριβώς με ένα κλικ στο κουμπί "%s" . Εάν ο λογαριασμός δεν έχει οριστεί σε κάρτες προϊόντων/υπηρεσιών ή εάν εξακολουθείτε να έχετε κάποιες γραμμές που δεν είναι δεσμευμένες σε έναν λογαριασμό, θα πρέπει να κάνετε χειροκίνητη δέσμευση από το μενού " %s ". -DescVentilDoneCustomer=Συμβουλευτείτε εδώ τη λίστα με τις γραμμές τιμολογίων πελατών και τον λογιστικό λογαριασμό προϊόντων τους -DescVentilTodoCustomer=Δεσμεύστε τις γραμμές τιμολογίου που δεν έχουν ήδη δεσμευθεί με έναν λογαριασμό λογιστικής προϊόντος -ChangeAccount=Αλλάξτε το λογαριασμό λογιστικής προϊόντος / υπηρεσίας για επιλεγμένες γραμμές με τον ακόλουθο λογαριασμό λογιστικής: +DescVentilCustomer=Δείτε εδώ τη λίστα των γραμμών τιμολογίων πελάτη που συνδέονται (ή όχι) σε έναν λογαριασμό προϊόντος από το λογιστικό σχέδιο +DescVentilMore=Στις περισσότερες περιπτώσεις, εάν χρησιμοποιείτε προκαθορισμένα προϊόντα ή υπηρεσίες και ορίσετε τον λογαριασμό (από το λογιστικό σχέδιο) στην κάρτα προϊόντος/υπηρεσίας, η εφαρμογή θα μπορεί να δεσμεύει όλες τις γραμμές τιμολογίου σας στον λογιστικό λογαριασμό του λογιστικού σχεδίου σας, με ένα μόνο κλικ στο κουμπί "%s" . Εάν ο λογαριασμός δεν έχει οριστεί σε κάρτες προϊόντων/υπηρεσιών ή εάν εξακολουθείτε να έχετε ορισμένες γραμμές που δεν είναι δεσμευμένες σε έναν λογαριασμό, θα πρέπει να κάνετε μια μη αυτόματη δέσμευση από το μενού " %s ". +DescVentilDoneCustomer=Δείτε εδώ τη λίστα με τις γραμμές τιμολογίων πελατών και τον λογαριασμό προϊόντος τους από το λογιστικό σχέδιο +DescVentilTodoCustomer=Δεσμεύστε τις γραμμές τιμολογίου που δεν έχουν ήδη δεσμευθεί με έναν λογαριασμό προϊόντος από το λογιστικό σχέδιο +ChangeAccount=Αλλάξτε τον λογαριασμό προϊόντος/υπηρεσίας (από το λογιστικό σχέδιο) για τις επιλεγμένες γραμμές με τον ακόλουθο λογαριασμό: Vide=- -DescVentilSupplier=Συμβουλευτείτε εδώ τη λίστα των γραμμών τιμολογίου προμηθευτή που δεσμεύονται ή δεν έχουν ακόμη δεσμευθεί με έναν λογαριασμό λογιστικής προϊόντος (εμφανίζονται μόνο εγγραφές που δεν έχουν ήδη μεταφερθεί στη λογιστική) +DescVentilSupplier=Συμβουλευτείτε εδώ τη λίστα των γραμμών τιμολογίων προμηθευτή που είναι συνδεδεμένες ή δεν έχουν ακόμη δεσμευτεί σε λογαριασμό προϊόντος από το λογιστικό σχέδιο (μόνο το αρχείο που δεν έχει ήδη μεταφερθεί στη λογιστική είναι ορατό) DescVentilDoneSupplier=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών των τιμολογίων προμηθευτών και του λογιστικού λογαριασμού τους DescVentilTodoExpenseReport=Δεσμεύστε τις γραμμές αναφοράς εξόδων που δεν έχουν ήδη δεσμευθεί με ένα Λογιστικός λογαριασμός αμοιβής DescVentilExpenseReport=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών αναφοράς εξόδων που δεσμεύονται (ή όχι) σε ένα λογαριασμό λογιστικής αμοιβής @@ -286,20 +294,21 @@ DescClosure=Δείτε εδώ τον αριθμό των κινήσεων ανά OverviewOfMovementsNotValidated=Επισκόπηση κινήσεων που δεν έχουν επικυρωθεί και κλειδωθεί AllMovementsWereRecordedAsValidated=Όλες οι κινήσεις καταγράφηκαν ως επικυρωμένες και κλειδωμένες NotAllMovementsCouldBeRecordedAsValidated=Δεν ήταν δυνατό να καταγραφούν όλες οι κινήσεις ως επικυρωμένες και κλειδωμένες -ValidateMovements=Επικύρωση και κλείδωμα εγγραφής... +ValidateMovements=Επικύρωση και κλείδωμα κινήσεων... DescValidateMovements=Απαγορεύεται οποιαδήποτε τροποποίηση ή διαγραφή γραφής, συμφωνίας και διαγραφής. Όλες οι καταχωρήσεις πρέπει να επικυρωθούν, διαφορετικά το κλείσιμο δεν θα είναι δυνατό ValidateHistory=Δεσμεύστε αυτόματα AutomaticBindingDone=Ολοκληρώθηκαν οι αυτόματες δεσμεύσεις (%s) - Δεν είναι δυνατή η αυτόματη δέσμευση για κάποιες εγγραφές (%s) +DoManualBindingForFailedRecord=Πρέπει να κάνετε έναν χειροκίνητο σύνδεσμο για τις %s σειρές που δεν συνδέθηκαν αυτόματα. -ErrorAccountancyCodeIsAlreadyUse=Σφάλμα, δεν μπορείτε να διαγράψετε αυτόν τον λογιστικό λογαριασμό γιατί χρησιμοποιείται +ErrorAccountancyCodeIsAlreadyUse=Σφάλμα, δεν μπορείτε να καταργήσετε ή να απενεργοποιήσετε αυτόν τον λογαριασμό του λογιστικού σχεδίου επειδή χρησιμοποιείται MvtNotCorrectlyBalanced=Η κίνηση δεν είναι σωστά ισοζυγισμένη. Χρέωση = %s & Πίστωση = %s Balancing=Ισολογισμός FicheVentilation=Καρτέλα Δεσμεύσεων GeneralLedgerIsWritten=Οι συναλλαγές καταχωρήθηκαν στο Καθολικό GeneralLedgerSomeRecordWasNotRecorded=Δεν ήταν δυνατή η καταγραφή ορισμένων από τις συναλλαγές. Εάν δεν υπάρχει άλλο μήνυμα σφάλματος, αυτό πιθανότατα οφείλεται στο ότι είχαν ήδη καταχωρηθεί στο ημερολόγιο. NoNewRecordSaved=Δεν υπάρχει άλλη εγγραφή για μεταφορά -ListOfProductsWithoutAccountingAccount=Κατάλογος προϊόντων που δεν δεσμεύονται σε κανένα λογιστικό λογαριασμό +ListOfProductsWithoutAccountingAccount=Κατάλογος προϊόντων που δεν δεσμεύονται σε κανένα λογαριασμό του λογιστικού σχεδίου ChangeBinding=Αλλάξτε τη δέσμευση Accounted=Καταχωρήθηκε στο καθολικό NotYetAccounted=Δεν έχει μεταφερθεί ακόμη στη λογιστική @@ -322,9 +331,10 @@ AccountingJournalType1=Διάφορες εργασίες AccountingJournalType2=Πωλήσεις AccountingJournalType3=Αγορές AccountingJournalType4=Τράπεζα -AccountingJournalType5=Αναφορά εξόδων +AccountingJournalType5=Αναφορές εξόδων AccountingJournalType8=Απογραφή AccountingJournalType9=Έχει-νέο +GenerationOfAccountingEntries=Δημιουργία λογιστικών εγγραφών ErrorAccountingJournalIsAlreadyUse=Αυτό το ημερολόγιο χρησιμοποιείται ήδη AccountingAccountForSalesTaxAreDefinedInto=Σημείωση: Ο λογαριασμός λογιστικής για τον φόρο πωλήσεων ορίζεται στο μενού %s - %s NumberOfAccountancyEntries=Αριθμός καταχωρήσεων @@ -332,10 +342,14 @@ NumberOfAccountancyMovements=Αριθμός κινήσεων ACCOUNTING_DISABLE_BINDING_ON_SALES=Απενεργοποίηση δέσμευσης και μεταφοράς των πωλήσεων στη λογιστική (τα τιμολόγια πελατών δεν θα λαμβάνονται υπόψη στη λογιστική) ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Απενεργοποίηση δέσμευσης και μεταφοράς των αγορών στη λογιστική (τα τιμολόγια προμηθευτών δεν θα λαμβάνονται υπόψη στη λογιστική) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Απενεργοποίηση δέσμευσης και μεταφοράς των αναφορών εξόδων (στη λογιστική οι αναφορές εξόδων δεν θα ληφθούν υπόψη στη λογιστική) +ACCOUNTING_ENABLE_LETTERING=Ενεργοποίηση της λειτουργίας συμφωνίας στη λογιστική +ACCOUNTING_ENABLE_AUTOLETTERING=Ενεργοποιήστε την αυτόματη συμφωνία κατά τη μεταφορά στη λογιστική ## Export +NotExportLettering=Μην εξάγετε τη συμφωνία κατά τη δημιουργία του αρχείου NotifiedExportDate=Επισημάνετε τις εξαγόμενες γραμμές ως Εξαγόμενες (για να τροποποιήσετε μια γραμμή, θα χρειαστεί να διαγράψετε ολόκληρη τη συναλλαγή και να τη μεταφέρετε ξανά στη λογιστική) NotifiedValidationDate=Επικύρωση και Κλείδωμα των εξαγόμενων καταχωρήσεων (το ίδιο αποτέλεσμα με τη δυνατότητα "%s", η τροποποίηση και η διαγραφή των γραμμών ΣΙΓΟΥΡΑ δεν θα είναι δυνατή) +NotifiedExportFull=Εξαγωγή εγγράφων ; DateValidationAndLock=Ημερομηνία επικύρωσης και κλειδώματος ConfirmExportFile=Επιβεβαίωση δημιουργίας του λογιστικού αρχείου εξαγωγής ; ExportDraftJournal=Εξαγωγή προσχεδίου ημερολογίου @@ -392,7 +406,7 @@ SaleLocal=Τοπική πώληση SaleExport=Εξαγωγική πώληση SaleEEC=Πώληση στην Ε.Ε. SaleEECWithVAT=Πώληση στην Ε.Ε. με μη μηδενικό ΦΠΑ, άρα υποθέτουμε ότι ΔΕΝ πρόκειται για ενδοκοινοτική πώληση και ο προτεινόμενος λογαριασμός είναι ο τυπικός λογαριασμός προϊόντος. -SaleEECWithoutVATNumber=Πώληση στην Ε.Ε. χωρίς ΦΠΑ αλλά δεν έχει οριστεί το ΑΦΜ του τρίτου μέρους. Επιστρέφουμε στον λογαριασμό προϊόντος για τυπικές πωλήσεις. Μπορείτε να διορθώσετε το ΑΦΜ τρίτου μέρους ή τον λογαριασμό προϊόντος εάν χρειάζεται. +SaleEECWithoutVATNumber=Πώληση στην Ε.Ε. χωρίς ΦΠΑ αλλά χωρίς ΑΦΜ τρίτου. Επιστρέφουμε στον λογαριασμό για τυπικές πωλήσεις. Μπορείτε να διορθώσετε το ΑΦΜ του τρίτου μέρους ή να αλλάξετε τον λογαριασμό προϊόντος που προτείνεται για δέσμευση, εάν χρειάζεται. ForbiddenTransactionAlreadyExported=Απαγορευμένο: Η συναλλαγή έχει επικυρωθεί ή/και έχει εξαχθεί. ForbiddenTransactionAlreadyValidated=Απαγορευμένο: Η συναλλαγή έχει επικυρωθεί. ## Dictionary @@ -401,7 +415,11 @@ Calculated=Υπολογίστηκε Formula=Τύπος ## Reconcile +LetteringAuto=Αυτόματη συμφωνία +LetteringManual=Χειροκίνητη συμφωνία Unlettering=Αναίρεση λογιστικής συμφωνίας +UnletteringAuto=Αυτόματη αναίρεση λογιστικής συμφωνίας +UnletteringManual=Χειροκίνητη αναίρεση λογιστικής συμφωνίας AccountancyNoLetteringModified=Δεν τροποποιήθηκε η συμφωνία AccountancyOneLetteringModifiedSuccessfully=Μία συμφωνία τροποποιήθηκε με επιτυχία AccountancyLetteringModifiedSuccessfully=Η συμφωνία %s τροποποιήθηκε επιτυχώς @@ -410,8 +428,9 @@ AccountancyOneUnletteringModifiedSuccessfully=Ένα μη συμφωνηθέν AccountancyUnletteringModifiedSuccessfully=%s μη συμφωνηθέντα τροποποιήθηκαν επιτυχώς ## Confirm box -ConfirmMassUnlettering=Επιβεβαίωση μαζικής αναίρεσης λογιστικής συμφωνίας -ConfirmMassUnletteringQuestion=Είστε σίγουροι ότι θέλετε να αναιρέσετε την συμφωνία των επιλεγμένων εγγραφών %s; +ConfirmMassUnletteringAuto=Επιβεβαίωση αυτόματης μαζικής αναίρεσης λογιστικής συμφωνίας +ConfirmMassUnletteringManual=Επιβεβαίωση χειροκίνητης μαζικής αναίρεσης λογιστικής συμφωνίας +ConfirmMassUnletteringQuestion=Είστε σίγουροι ότι θέλετε να αναιρέσετε τη λογιστική συμφωνία των %sεπιλεγμένων εγγραφών; ConfirmMassDeleteBookkeepingWriting=Επιβεβαίωση μαζικής διαγραφής ConfirmMassDeleteBookkeepingWritingQuestion=Αυτό θα διαγράψει τη συναλλαγή από τη λογιστική (όλες οι γραμμές που σχετίζονται με την ίδια συναλλαγή θα διαγραφούν) Είστε σίγουροι ότι θέλετε να διαγράψετε τις επιλεγμένες εγγραφές %s; @@ -431,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Αναντιστοιχία στον κώδι AccountancyErrorMismatchBalanceAmount=Το ισοζύγιο (%s) δεν είναι ίσο με 0 AccountancyErrorLetteringBookkeeping=Παρουσιάστηκαν σφάλματα σχετικά με τις συναλλαγές: %s ErrorAccountNumberAlreadyExists=Ο λογιστικός αριθμός %s υπάρχει ήδη +ErrorArchiveAddFile=Δεν είναι δυνατή η αρχειοθέτηση του αρχείου "%s" ## Import ImportAccountingEntries=Λογιστικές εγγραφές @@ -457,6 +477,7 @@ FECFormatMulticurrencyCode=Κωδικός πολλαπλών νομισμάτω DateExport=Ημερομηνία εξαγωγής WarningReportNotReliable=Προειδοποίηση, αυτή η αναφορά δεν βασίζεται στο Καθολικό, επομένως δεν περιέχει συναλλαγή που τροποποιήθηκε χειροκίνητα στο Καθολικό. Εάν τα ημερολόγια σας είναι ενημερωμένα, η προβολή της λογιστικής είναι πιο ακριβής. ExpenseReportJournal=Ημερολόγιο Αναφοράς Εξόδων -InventoryJournal=Ημερολόγιο απογραφής +DocsAlreadyExportedAreExcluded=Εξαιρούνται τα έγγραφα που έχουν ήδη εξαχθεί +ClickToHideAlreadyExportedLines=Κάντε κλικ για απόκρυψη γραμμών που έχουν ήδη εξαχθεί NAccounts= %s λογαριασμοί diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index f1724e96989..8e30b738283 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -51,8 +51,6 @@ ClientSortingCharset=Client collation WarningModuleNotActive=Η ενότητα %s πρέπει να ενεργοποιηθεί WarningOnlyPermissionOfActivatedModules=Εδώ φαίνονται μόνο τα δικαιώματα που σχετίζονται μόνο με ενεργοποιημένες ενότητες. Μπορείτε να ενεργοποιήσετε άλλες ενότητες στο Αρχική-> Ρυθμίσεις-> σελίδα Ενότητες / Εφαρμογές. DolibarrSetup=Εγκατάσταση ή αναβάθμιση του Dolibarr -InternalUser=Εσωτερικός χρήστης -ExternalUser=Εξωτερικός χρήστης InternalUsers=Εσωτερικοί χρήστες ExternalUsers=Εξωτερικοί χρήστες UserInterface=Διεπαφή χρήστη @@ -294,6 +292,7 @@ MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (προεπιλεγμένη τιμή στ MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Θύρα SMTP / SMTPS (Δεν έχει οριστεί στην PHP σε συστήματα τύπου Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (Δεν έχει οριστεί στην PHP σε συστήματα τύπου Unix) MAIN_MAIL_EMAIL_FROM=Email αποστολέα για αυτόματα μηνύματα ηλεκτρονικού ταχυδρομείου (προεπιλεγμένη τιμή στο php.ini: %s ) +EMailHelpMsgSPFDKIM=Για να αποτρέψετε την ταξινόμηση των email από το Dolibarr ως ανεπιθύμητης αλληλογραφίας, βεβαιωθείτε ότι ο διακομιστής είναι εξουσιοδοτημένος να στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου από αυτήν τη διεύθυνση με διαμόρφωση των SPF και DKIM MAIN_MAIL_ERRORS_TO=Το Email που χρησιμοποιείται για σφάλματα επιστρέφει τα email (με πεδία 'Errors-To' στα απεσταλμένα email) MAIN_MAIL_AUTOCOPY_TO= Αντιγράψτε (Bcc Κρυφή κοινοποίηση) όλα τα αποσταλμένα email στο MAIN_DISABLE_ALL_MAILS=Απενεργοποιήστε όλες τις αποστολές ηλεκτρονικού ταχυδρομείου (για δοκιμαστικούς σκοπούς ή demos) @@ -439,8 +438,10 @@ Unique=Μοναδικό Boolean=Boolean (ένα πλαίσιο ελέγχου) ExtrafieldPhone = Τηλέφωνο ExtrafieldPrice = Τιμή +ExtrafieldPriceWithCurrency=Τιμή με νόμισμα ExtrafieldMail = Email ExtrafieldUrl = Url +ExtrafieldIP = IP ExtrafieldSelect = Επιλογή από λίστα ExtrafieldSelectList = Επιλογή από πίνακα ExtrafieldSeparator=Διαχωριστής (όχι πεδίο) @@ -501,7 +502,8 @@ WarningPHPMail=ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η ρύθμιση για την απ WarningPHPMailA=- Η χρήση του διακομιστή του παρόχου υπηρεσιών email αυξάνει την αξιοπιστία του email σας, επομένως αυξάνει την πιθανότητα παράδοσης των μηνυμάτων σας χωρίς να επισημαίνονται ως SPAM WarningPHPMailB=- Ορισμένοι πάροχοι υπηρεσιών ηλεκτρονικού ταχυδρομείου (όπως το Yahoo) δεν σας επιτρέπουν να στείλετε ένα email από άλλο διακομιστή εκτός από τον δικό τους. Η τρέχουσα ρύθμισή σας, χρησιμοποιεί τον διακομιστή της εφαρμογής για την αποστολή email και όχι τον διακομιστή του παρόχου email σας, επομένως ορισμένοι παραλήπτες (αυτοί που είναι συμβατοί με το περιοριστικό πρωτόκολλο DMARC), θα ρωτήσουν τον πάροχο email σας εάν μπορούν να δεχτούν το email σας και ορισμένοι πάροχοι email (όπως το Yahoo) μπορεί να απαντήσουν "όχι" επειδή ο διακομιστής δεν είναι δικός τους, επομένως καποια από τα αποσταλμένα email σας ενδέχεται να μην γίνονται δεκτά για παράδοση (προσέξτε επίσης το όριο αποστολής του παρόχου email σας). WarningPHPMailC=- Η χρήση του διακομιστή SMTP του δικού σας Παρόχου Υπηρεσιών Email για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου είναι επίσης χρήσιμη καθώς όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου που αποστέλλονται από την εφαρμογή θα αποθηκεύονται και στον κατάλογο "Απεσταλμένα" του γραμματοκιβωτίου σας. -WarningPHPMailD=Επίσης, συνιστάται λοιπόν η αλλαγή της μεθόδου αποστολής e-mail στην τιμή "SMTP". Εάν θέλετε πραγματικά να διατηρήσετε την προεπιλεγμένη μέθοδο "PHP" για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου, απλώς αγνοήστε αυτήν την προειδοποίηση ή καταργήστε την, ορίζοντας τη σταθερά MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP σε 1 από το μενού Αρχική - Ρυθμίσεις - Άλλες Ρυθμίσεις. +WarningPHPMailD=Επομένως, συνιστάται η αλλαγή της μεθόδου αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου στην τιμή "SMTP". +WarningPHPMailDbis=Εάν θέλετε πραγματικά να διατηρήσετε την προεπιλεγμένη μέθοδο "PHP" για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου, απλώς αγνοήστε αυτήν την προειδοποίηση ή αφαιρέστε την %sκάνοντας κλικ εδώ%s. WarningPHPMail2=Εάν ο πάροχος σας SMTP email χρειάζεται να περιορίσει το πρόγραμμα-πελάτη email σε ορισμένες διευθύνσεις IP (σπάνια), αυτή είναι η διεύθυνση IP του mail user agent (MUA) για την εφαρμογή σας ERP CRM: %s . WarningPHPMailSPF=Εάν το domain name στη διεύθυνση email σας προστατεύεται από μια εγγραφή SPF (ρωτήστε τον καταχωρητή του domain name σας), πρέπει να προσθέσετε τις ακόλουθες IP στην εγγραφή SPF του DNS του domain σας: %s. ActualMailSPFRecordFound=Βρέθηκε πραγματική εγγραφή SPF (για email %s): %s @@ -514,7 +516,7 @@ PageUrlForDefaultValuesCreate=
Παράδειγμα:
Για τη φόρ PageUrlForDefaultValuesList=
Παράδειγμα:
Για τη σελίδα που παραθέτει τρίτα μέρη, είναι %s .
Για τη διεύθυνση URL των εξωτερικών ενοτήτων που έχουν εγκατασταθεί στον προσαρμοσμένο κατάλογο, μην συμπεριλάβετε το "custom/" αλλά χρησιμοποιήστε μια διαδρομή όπως το mymodule/mypagelist.php και όχι το custom/mymodule/mypagelist.php.
Εάν θέλετε την προεπιλεγμένη τιμή μόνο αν η url έχει κάποια παράμετρο, μπορείτε να χρησιμοποιήσετε %s AlsoDefaultValuesAreEffectiveForActionCreate=Λάβετε επίσης υπόψη ότι η αντικατάσταση προεπιλεγμένων τιμών για τη δημιουργία φόρμας λειτουργεί μόνο για σελίδες που σχεδιάστηκαν σωστά (με την παράμετρο action=create ή presend...) EnableDefaultValues=Ενεργοποίηση εξατομίκευσης των προεπιλεγμένων τιμών -EnableOverwriteTranslation=Ενεργοποιήστε τη χρήση αντικατασταθείσας μετάφρασης +EnableOverwriteTranslation=Να επιτρέπεται η τροποποίηση των μεταφράσεων GoIntoTranslationMenuToChangeThis=Έχει βρεθεί μετάφραση για το κλειδί με αυτόν τον κωδικό. Για να αλλάξετε αυτήν την τιμή, πρέπει να την επεξεργαστείτε από το μενού Αρχική-Ρυθμίσεις-Μετάφραση. WarningSettingSortOrder=Προειδοποίηση, ο ορισμός μιας προεπιλεγμένης σειράς ταξινόμησης μπορεί να οδηγήσει σε τεχνικό σφάλμα κατά τη μετάβαση στη σελίδα της λίστας εάν το πεδίο είναι άγνωστο. Εάν αντιμετωπίσετε ένα τέτοιο σφάλμα, επιστρέψτε σε αυτήν τη σελίδα για να καταργήσετε την προεπιλεγμένη σειρά ταξινόμησης και να επαναφέρετε την προεπιλεγμένη συμπεριφορά. Field=Πεδίο @@ -545,7 +547,7 @@ Module2Desc=Εμπορική διαχείριση Module10Name=Λογιστική (απλουστευμένη) Module10Desc=Απλές λογιστικές αναφορές (ημερολόγια, κύκλος εργασιών) με βάση το περιεχόμενο της βάσης δεδομένων. Δεν χρησιμοποιεί κανένα πίνακα καθολικών. Module20Name=Προσφορές -Module20Desc=Διαχείριση εμπορικών προσφορών +Module20Desc=Διαχείριση προσφορών Module22Name=Μαζική αποστολή e-mail Module22Desc=Διαχείριση μαζικής αποστολής email Module23Name=Ενέργεια @@ -609,7 +611,7 @@ Module320Desc=Προσθέστε μια ροή RSS στις σελίδες Dolib Module330Name=Σελιδοδείκτες και συντομεύσεις Module330Desc=Δημιουργήστε συντομεύσεις, πάντα προσιτές, στις εσωτερικές ή εξωτερικές σελίδες στις οποίες έχετε συχνά πρόσβαση Module400Name=Έργα ή προοπτικές -Module400Desc=Διαχείριση έργων, προοπτικών/ευκαιριών ή/και εργασιών. Μπορείτε επίσης να αντιστοιχίσετε οποιοδήποτε στοιχείο (τιμολόγιο, παραγγελία, πρόταση, παρέμβαση, ...) σε ένα έργο και να λάβετε μια εγκάρσια προβολή από την προβολή έργου. +Module400Desc=Διαχείριση έργων, προοπτικών/ευκαιριών ή/και εργασιών. Μπορείτε επίσης να αντιστοιχίσετε οποιοδήποτε στοιχείο (τιμολόγιο, παραγγελία, προσφορά, παρέμβαση, ...) σε ένα έργο και να λάβετε μια εγκάρσια προβολή από την προβολή έργου. Module410Name=Ημερολόγιο ιστού Module410Desc=Ενσωμάτωση ημερολογίου ιστού Module500Name=Φόροι & Ειδικά Έξοδα @@ -643,11 +645,13 @@ Module2300Name=Προγραμματισμένες εργασίες Module2300Desc=Διαχείριση προγραμματισμένων εργασιών (alias cron ή chrono table) Module2400Name=Συμβάντα / Ατζέντα Module2400Desc=Παρακολούθηση συμβάντων. Καταγράψτε αυτόματα συμβάντα για σκοπούς παρακολούθησης ή καταγράψτε μη αυτόματα συμβάντα ή συσκέψεις. Αυτή είναι η κύρια ενότητα για την καλή διαχείριση σχέσεων πελατών ή προμηθευτών. +Module2430Name=Σύστημα Ημερολογίου Κρατήσεων +Module2430Desc=Ενα διαδικτυακό ημερολόγιο για να επιτρέψετε σε οποιονδήποτε να κάνει κράτηση για ραντεβού, σε προκαθορισμένα χρονικά περιθώρια ή διαθεσιμότητες. Module2500Name=DMS / ECM Module2500Desc=Σύστημα Διαχείρισης Εγγράφων / Ηλεκτρονική Διαχείριση Περιεχομένου. Αυτόματη οργάνωση των παραγόμενων ή αποθηκευμένων εγγράφων σας. Μοιραστείτε τα όταν χρειάζεστε. -Module2600Name=Υπηρεσίες API / Web (διακομιστής SOAP) +Module2600Name=API / Web services (SOAP server) Module2600Desc=Ενεργοποιήστε τον διακομιστή SOAP του Dolibarr που παρέχει υπηρεσίες API -Module2610Name=Υπηρεσίες API / Web (διακομιστής REST) +Module2610Name=API / Web services (REST server) Module2610Desc=Ενεργοποιήστε τον διακομιστή REST του Dolibarr που παρέχει υπηρεσίες API Module2660Name=Κλήση Υπηρεσιών Ιστού (SOAP client) Module2660Desc=Ενεργοποίηση του client υπηρεσιών ιστού του Dolibarr (Μπορεί να χρησιμοποιηθεί για την προώθηση δεδομένων/αιτημάτων σε εξωτερικούς διακομιστές. Προς το παρόν υποστηρίζονται μόνο εντολές αγοράς.) @@ -658,6 +662,8 @@ Module2900Name=GeoIP Maxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3200Name=Αναλλοίωτα αρχεία Module3200Desc=Ενεργοποιήστε ένα αναλλοίωτο αρχείο καταγραφής επιχειρηματικών εκδηλώσεων. Τα συμβάντα αρχειοθετούνται σε πραγματικό χρόνο. Το αρχείο καταγραφής είναι ένας πίνακας μόνο για ανάγνωση των αλυσιδωτών συμβάντων που μπορούν να εξαχθούν. Αυτή η ενότητα μπορεί να είναι υποχρεωτική για ορισμένες χώρες. +Module3300Name=Module Builder +Module3200Desc=Ενεργοποιήστε ένα αναλλοίωτο αρχείο καταγραφής επιχειρηματικών εκδηλώσεων. Τα συμβάντα αρχειοθετούνται σε πραγματικό χρόνο. Το αρχείο καταγραφής είναι ένας πίνακας μόνο για ανάγνωση των αλυσιδωτών συμβάντων που μπορούν να εξαχθούν. Αυτή η ενότητα μπορεί να είναι υποχρεωτική για ορισμένες χώρες. Module3400Name=Κοινωνικά Δίκτυα Module3400Desc=Ενεργοποιήστε τα πεδία Κοινωνικών Δικτύων σε τρίτα μέρη και διευθύνσεις (skype, twitter, facebook, ...). Module4000Name=HRM @@ -698,6 +704,7 @@ Module62000Name=Διεθνείς Εμπορικοί Όροι Module62000Desc=Προσθέστε λειτουργίες για τη διαχείριση των διεθνών εμπορικών όρων Module63000Name=Πόροι Module63000Desc=Διαχειριστείτε πόρους (εκτυπωτές, αυτοκίνητα, δωμάτια, ...) για κατανομή σε εκδηλώσεις +Module94160Name=Παραλαβές Permission11=Ανάγνωση τιμολογίων πελατών Permission12=Δημιουργία / τροποποίηση τιμολογίων πελατών Permission13=Ακύρωση τιμολογίων πελατών @@ -705,13 +712,13 @@ Permission14=Επικύρωση τιμολογίων πελατών Permission15=Αποστολή τιμολογίων πελατών μέσω ηλεκτρονικού ταχυδρομείου Permission16=Δημιουργία πληρωμών για τιμολόγια πελατών Permission19=Διαγραφή τιμολογίων πελατών -Permission21=Ανάγνωση εμπορικών προτάσεων -Permission22=Δημιουργία / τροποποίηση εμπορικών προτάσεων -Permission24=Επικύρωση εμπορικών προτάσεων -Permission25=Αποστολή εμπορικών προτάσεων -Permission26=Κλείσιμο εμπορικών προτάσεων -Permission27=Διαγραφή εμπορικών προτάσεων -Permission28=Εξαγωγή εμπορικών προτάσεων +Permission21=Ανάγνωση προσφορών +Permission22=Δημιουργία / τροποποίηση προσφορών +Permission24=Επικύρωση προσφορών +Permission25=Αποστολή προσφορών +Permission26=Κλείσιμο προσφορών +Permission27=Διαγραφή προσφορών +Permission28=Εξαγωγή προσφορών Permission31=Ανάγνωση προϊόντων Permission32=Δημιουργία / τροποποίηση προϊόντων Permission33=Ανάγνωση τιμών προϊόντων @@ -830,7 +837,7 @@ PermissionAdvanced253=Δημιουργία / τροποποίηση εσωτερ Permission254=Δημιουργία / τροποποίηση μόνο εξωτερικών χρηστών Permission255=Τροποποίηση κωδικού πρόσβασης άλλων χρηστών Permission256=Διαγραφή ή απενεργοποίηση άλλων χρήστων -Permission262=Επέκταση της πρόσβασης σε όλα τα τρίτα μέρη ΚΑΙ τα αντικείμενά τους (όχι μόνο τρίτα μέρη για τα οποία ο χρήστης είναι αντιπρόσωπος πωλήσεων).
Δεν είναι αποτελεσματικό για εξωτερικούς χρήστες (περιορίζονται πάντα στους εαυτούς τους για προτάσεις, παραγγελίες, τιμολόγια, συμβάσεις κ.λπ.).
Δεν ισχύει για έργα (μόνο σε κανόνες για τις άδειες έργων, την προβολή και τα θέματα ανάθεσης). +Permission262=Επέκταση της πρόσβασης σε όλα τα τρίτα μέρη ΚΑΙ τα αντικείμενά τους (όχι μόνο τρίτα μέρη για τα οποία ο χρήστης είναι αντιπρόσωπος πωλήσεων).
Δεν είναι αποτελεσματικό για εξωτερικούς χρήστες (περιορίζονται πάντα στους εαυτούς τους για προσφορές, παραγγελίες, τιμολόγια, συμβάσεις κ.λπ.).
Δεν ισχύει για έργα (μόνο σε κανόνες για τις άδειες έργων, την προβολή και τα θέματα ανάθεσης). Permission263=Επέκταση της πρόσβασης σε όλα τα τρίτα μέρη ΧΩΡΙΣ τα αντικείμενά τους (όχι μόνο τρίτα μέρη για τα οποία ο χρήστης είναι αντιπρόσωπος πωλήσεων).
Δεν είναι αποτελεσματικό για εξωτερικούς χρήστες (περιορίζονται πάντα στους εαυτούς τους για προτάσεις, παραγγελίες, τιμολόγια, συμβάσεις κ.λπ.).
Δεν ισχύει για έργα (μόνο σε κανόνες για τις άδειες έργων, την προβολή και τα θέματα ανάθεσης). Permission271=Ανάγνωση CA Permission272=Ανάγνωση τιμολογίων @@ -842,9 +849,9 @@ Permission286=Εξαγωγή επαφών Permission291=Ανάγνωση δασμών Permission292=Ορισμός δικαιωμάτων δασμών Permission293=Τροποποίηση δασμών πελατών -Permission300=Ανάγνωση barcodes -Permission301=Δημιουργία / τροποποίηση γραμμωτών κωδικών -Permission302=Διαγραφή γραμμωτών κωδικών +Permission301=Δημιουργια PDF καταστάσεων με barcodes +Permission304=Δημιουργία / τροποποίηση barcodes +Permission305=Διαγραφή barcodes Permission311=Ανάγνωση υπηρεσιών Permission312=Εκχώρηση υπηρεσίας/συνδρομής σε συμβόλαιο Permission331=Ανάγνωση σελιδοδεικτών @@ -895,7 +902,7 @@ Permission651=Δημιουργία / Ενημέρωση καταλόγου υλ Permission652=Διαγραφή καταλόγου υλικών Permission660=Ανάγνωση Εντολής Παραγωγής (MO) Permission661=Δημιουργία/Ενημέρωση Εντολής Παραγωγής (MO) -Permission662=Διαγραφή εντολής κατασκευής (MO) +Permission662=Διαγραφή εντολής παραγωγής (MO) Permission701=Ανάγνωση δωρεών Permission702=Δημιουργία/τροποποίηση δωρεών Permission703=Διαγραφή δωρεών @@ -971,13 +978,14 @@ Permission3301=Δημιουργία νέων ενοτήτων Permission4001= Ανάγνωση δεξιότητας/δουλειάς/θέσης Permission4002=Δημιουργία/τροποποίηση δεξιότητας/δουλειάς/θέσης Permission4003=Διαγραφή δεξιότητας/δουλειάς/θέσης -Permission4020=Ανάγνωση αξιολογήσεων -Permission4021=Δημιουργία/τροποποίηση ατομικής αξιολόγησης -Permission4022=Επικύρωση αξιολόγησης -Permission4023=Διαγραφή αξιολόγησης -Permission4030=Δείτε το μενού σύγκρισης +Permission4021=Ανάγνωση αξιολογήσεων (δικές σας και των υφισταμένων σας) +Permission4022=Δημιουργία/τροποποίηση αξιολογήσεων +Permission4023=Επικύρωση αξιολόγησης +Permission4025=Διαγραφή αξιολόγησης +Permission4028=Δείτε το μενού σύγκρισης Permission4031=Ανάγνωση προσωπικών πληροφοριών Permission4032=Καταχώριση προσωπικών στοιχείων +Permission4033=Ανάγνωση όλων των αξιολογήσεων (ακόμη και αυτών των μη υφισταμένων χρηστών ) Permission10001=Ανάγνωση περιεχόμενου ιστότοπου Permission10002=Δημιουργία / τροποποίηση περιεχομένου ιστότοπου (περιεχόμενο html και javascript) Permission10003=Δημιουργία / τροποποίηση περιεχομένου ιστότοπου (δυναμικός κώδικας php). Επικίνδυνο, πρέπει να δίνεται μόνο σε προγραμματιστές. @@ -1081,6 +1089,10 @@ DictionaryAssetDisposalType=Είδος διάθεσης περιουσιακών TypeOfUnit=Τύπος μονάδας SetupSaved=Οι ρυθμίσεις αποθηκεύτηκαν SetupNotSaved=Η ρύθμιση δεν αποθηκεύτηκε +OAuthServiceConfirmDeleteTitle=Διαγραφή καταχώρισης OAuth +OAuthServiceConfirmDeleteMessage=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την καταχώριση OAuth; Όλα τα υπάρχοντα token για αυτό θα διαγραφούν επίσης. +ErrorInEntryDeletion=Σφάλμα κατά τη διαγραφή καταχώρισης +EntryDeleted=Η καταχώριση διαγράφηκε BackToModuleList=Επιστροφή στη λίστα Ενοτήτων BackToDictionaryList=Επιστροφή στη λίστα λεξικών TypeOfRevenueStamp=Είδος φορολογικού χαρτόσημου @@ -1205,7 +1217,7 @@ 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_BILL=Η προσφορά δεν τιμολογήθηκε Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Υπηρεσία για ενεργοποίηση Delays_MAIN_DELAY_RUNNING_SERVICES=Ληγμένη υπηρεσία Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Ανεξόφλητα τιμολόγια προμηθευτή @@ -1244,6 +1256,7 @@ AreaForAdminOnly=Οι παράμετροι εγκατάστασης μπορού SystemInfoDesc=Οι πληροφορίες συστήματος είναι διάφορες τεχνικές πληροφορίες που λαμβάνετε μόνο σε λειτουργία ανάγνωσης και είναι ορατές μόνο για τους διαχειριστές. SystemAreaForAdminOnly=Αυτος ο τομεας είναι διαθέσιμος μόνο σε διαχειριστές. Τα δικαιώματα χρήστη Dolibarr δεν μπορούν να αλλάξουν αυτόν τον περιορισμό. CompanyFundationDesc=Επεξεργαστείτε τις πληροφορίες της εταιρείας / του οργανισμού σας. Κάντε κλικ στο κουμπί "%s" στο κάτω μέρος της σελίδας όταν τελειώσετε. +MoreNetworksAvailableWithModule=Ενδέχεται να είναι διαθέσιμα περισσότερα κοινωνικά δίκτυα ενεργοποιώντας την ενότητα "Κοινωνικά δίκτυα". AccountantDesc=Εάν έχετε έναν εξωτερικό λογιστή, μπορείτε να επεξεργαστείτε εδώ τις πληροφορίες του. AccountantFileNumber=Κωδικός λογιστή DisplayDesc=Οι παράμετροι που επηρεάζουν την εμφάνιση και την παρουσίαση της εφαρμογής μπορούν να τροποποιηθούν εδώ. @@ -1253,7 +1266,7 @@ SessionTimeOut=Λήξη χρόνου για τη συνεδρία 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 (δημιουργία νέας εταιρείας, επικύρωση τιμολογίου, ...). +TriggersDesc=Τα triggers είναι αρχεία που θα τροποποιήσουν τη συμπεριφορά της ροής εργασίας Dolibarr μόλις αντιγραφουν στον κατάλογο htdocs/core/triggers . Πραγματοποιούν νέες ενέργειες που ενεργοποιούνται από συμβάντα Dolibarr (δημιουργία νέας εταιρείας, επικύρωση τιμολογίου, ...). TriggerDisabledByName=Τα triggers σε αυτό το αρχείο ειναι απενεργοποιημένα από το επίθημα -NORUN στο όνομά τους. TriggerDisabledAsModuleDisabled=Τα triggers σε αυτό το αρχείο είναι απενεργοποιημένα επειδή η ενότητα %s είναι απενεργοποιημένη. TriggerAlwaysActive=Τα triggers σε αυτό το αρχείο είναι πάντα ενεργά, όποιες κι αν είναι οι ενεργοποιημένες ενότητες Dolibarr. @@ -1261,6 +1274,7 @@ TriggerActiveAsModuleActive=Τα triggers σε αυτό το αρχείο είν GeneratedPasswordDesc=Επιλέξτε τη μέθοδο που θα χρησιμοποιηθεί για κωδικούς πρόσβασης που δημιουργούνται αυτόματα. DictionaryDesc=Εισάγετε όλα τα δεδομένα αναφοράς. Μπορείτε να προσθέσετε τις τιμές σας στην προεπιλογή. ConstDesc=Αυτή η σελίδα επιτρέπει την επεξεργασία (αντικατάσταση) παραμέτρων που δεν είναι διαθέσιμες σε άλλες σελίδες. Αυτές είναι κυρίως δεσμευμένες παράμετροι για προγραμματιστές/ προχωρημένη αντιμετώπιση προβλημάτων μόνο. +MiscellaneousOptions=Διάφορες επιλογές MiscellaneousDesc=Όλες οι άλλες παράμετροι που σχετίζονται με την ασφάλεια ορίζονται εδώ. LimitsSetup=Ρύθμιση Ορίων/Ακριβείας LimitsDesc=Μπορείτε να ορίσετε όρια, ακρίβεια και βελτιστοποιήσεις που χρησιμοποιούνται από το Dolibarr εδώ @@ -1294,6 +1308,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Πρέπει να εκτελέ YourPHPDoesNotHaveSSLSupport=Οι functions SSL δεν είναι διαθέσιμες στην PHP σας DownloadMoreSkins=Περισσότερα skins για λήψη SimpleNumRefModelDesc=Επιστρέφει τον αριθμό αναφοράς με τη μορφή %syymm-nnnn όπου yy είναι το έτος, mm είναι ο μήνας και nnnn είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς επαναφορά +SimpleRefNumRefModelDesc=Επιστρέφει τον αριθμό αναφοράς στη μορφή n όπου n είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς επαναφορά +AdvancedNumRefModelDesc=Επιστρέφει τον αριθμό αναφοράς με τη μορφή %syymm-nnnn όπου yy είναι το έτος, mm είναι ο μήνας και nnnn είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς επαναφορά SimpleNumRefNoDateModelDesc=Επιστρέφει τον αριθμό αναφοράς στη μορφή %s-nnnn όπου nnnn είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς επαναφορά ShowProfIdInAddress=Εμφάνιση επαγγελματικής ταυτότητας με διευθύνσεις ShowVATIntaInAddress=Απόκρυψη ενδοκοινοτικού ΑΦΜ @@ -1380,7 +1396,7 @@ GetBarCode=Πάρτε barcode NumberingModules=Μοντέλα αρίθμησης DocumentModules=Υποδείγματα εγγράφων ##### Module password generation -PasswordGenerationStandard=Επιστρέφει έναν κωδικό πρόσβασης που δημιουργήθηκε σύμφωνα με τον εσωτερικό αλγόριθμο του Dolibarr: %s χαρακτήρες που περιέχουν κοινόχρηστους αριθμούς και χαρακτήρες με πεζά. +PasswordGenerationStandard=Επιστρέφει έναν κωδικό πρόσβασης που δημιουργήθηκε σύμφωνα με τον εσωτερικό αλγόριθμο του Dolibarr: %s χαρακτήρες που περιέχουν κοινόχρηστους αριθμούς και χαρακτήρες. PasswordGenerationNone=Μην προτείνετε έναν κωδικό πρόσβασης που δημιουργείται. Ο κωδικός πρόσβασης πρέπει να πληκτρολογηθεί μη αυτόματα. PasswordGenerationPerso=Επιστρέφει έναν κωδικό πρόσβασης σύμφωνα με τις προσωπικές σας ρυθμίσεις. SetupPerso=Σύμφωνα με τη διαμόρφωσή σας @@ -1434,6 +1450,10 @@ SuppliersPayment=Πληρωμές προμηθευτών SupplierPaymentSetup=Ρύθμιση πληρωμών προμηθευτή InvoiceCheckPosteriorDate=Ελέγξτε την ημερομηνία του παραστατικού πριν από την επικύρωση InvoiceCheckPosteriorDateHelp=Η επικύρωση ενός τιμολογίου θα απαγορεύεται εάν η ημερομηνία του είναι προγενέστερη από την ημερομηνία του τελευταίου τιμολογίου του ίδιου τύπου. +InvoiceOptionCategoryOfOperations=Εμφάνιση της αναφοράς «κατηγορία πράξεων» στο τιμολόγιο. +InvoiceOptionCategoryOfOperationsHelp=Ανάλογα με την κατάσταση, η αναφορά θα εμφανίζεται με τη μορφή:
- Κατηγορία πράξεων: Παράδοση αγαθών
- Κατηγορία πράξεων: Παροχή υπηρεσιών
- Κατηγορία πράξεων: Μικτή Παράδοση αγαθών & Παροχή υπηρεσιών +InvoiceOptionCategoryOfOperationsYes1=Ναι, κάτω από το μπλοκ διευθύνσεων +InvoiceOptionCategoryOfOperationsYes2=Ναι, στην κάτω αριστερή γωνία ##### Proposals ##### PropalSetup=Ρύθμιση ενότητας εμπορικών προσφορών ProposalsNumberingModules=Υποδείγματα αρίθμησης εμπορικών προσφορών @@ -1476,11 +1496,12 @@ WatermarkOnDraftContractCards=Υδατογράφημα σε προσχέδια ##### Members ##### MembersSetup=Ρύθμιση ενότητας μελών MemberMainOptions=Κύριες επιλογές +MemberCodeChecker=Επιλογές για αυτόματη δημιουργία κωδικών μελών AdherentLoginRequired= Διαχείριση μιας Σύνδεσης για κάθε μέλος AdherentMailRequired=Απαιτείται email για τη δημιουργία νέου μέλους MemberSendInformationByMailByDefault=Το πλαίσιο ελέγχου για την αποστολή επιβεβαίωσης αλληλογραφίας στα μέλη (επικύρωση ή νέα συνδρομή) είναι ενεργοποιημένο από προεπιλογή MemberCreateAnExternalUserForSubscriptionValidated=Δημιουργήστε στοιχεία σύνδεσης εξωτερικού χρήστη για κάθε επικυρωμένη συνδρομή νέου μέλους -VisitorCanChooseItsPaymentMode=Ο επισκέπτης μπορεί να επιλέξει μεταξύ των διαθέσιμων τρόπων πληρωμής +VisitorCanChooseItsPaymentMode=Ο επισκέπτης μπορεί να επιλέξει από οποιονδήποτε διαθέσιμο τρόπο πληρωμής MEMBER_REMINDER_EMAIL=Ενεργοποιήστε την αυτόματη υπενθύμιση μέσω email των ληγμένων συνδρομών. Σημείωση: Η ενότητα %s πρέπει να είναι ενεργοποιημένη και να ρυθμιστεί σωστά για την αποστολή υπενθυμίσεων. MembersDocModules=Πρότυπα εγγράφων για έγγραφα που δημιουργούνται από εγγραφή μέλους ##### LDAP setup ##### @@ -1742,8 +1763,8 @@ ActivateFCKeditor=Ενεργοποιήστε το προηγμένο πρόγρ FCKeditorForNotePublic=WYSIWYG δημιουργία/έκδοση του πεδίου «δημόσιες σημειώσεις» στοιχείων FCKeditorForNotePrivate=WYSIWYG δημιουργία/έκδοση του πεδίου "ιδιωτικές σημειώσεις" στοιχείων FCKeditorForCompany=WYSIWYG δημιουργία/έκδοση της περιγραφής πεδίου στοιχείων (εκτός προϊόντων/υπηρεσιών) -FCKeditorForProduct=WYSIWYG δημιουργία/έκδοση της περιγραφής πεδίου προϊόντων/υπηρεσιών -FCKeditorForProductDetails=WYSIWYG δημιουργία/έκδοση γραμμών λεπτομερειών προϊόντων για όλες τις οντότητες (προσφορές, παραγγελίες, τιμολόγια κ.λ.π...). Προειδοποίηση: Η χρήση αυτής της επιλογής για αυτήν την περίπτωση δεν συνιστάται, καθώς μπορεί να δημιουργήσει προβλήματα με ειδικούς χαρακτήρες και τη μορφοποίηση σελίδων κατά τη δημιουργία αρχείων PDF. +FCKeditorForProductDetails=WYSIWYG δημιουργία/διόρθωση περιγραφής προϊόντων ή γραμμών για αντικείμενα (γραμμές προσφορών, παραγγελίες, τιμολόγια κ.λπ...). +FCKeditorForProductDetails2=Προειδοποίηση: Η χρήση αυτής της επιλογής για αυτήν την περίπτωση δεν συνιστάται, καθώς μπορεί να δημιουργήσει προβλήματα με ειδικούς χαρακτήρες και τη μορφοποίηση σελίδας κατά τη δημιουργία αρχείων PDF. FCKeditorForMailing= Δημιουργία / έκδοση WYSIWYG για μαζικά eMailings (Εργαλεία-> eMailing) FCKeditorForUserSignature=WYSIWYG δημιουργία/έκδοση υπογραφής χρήστη FCKeditorForMail=Δημιουργία/έκδοση WYSIWYG για όλη την αλληλογραφία (εκτός από Εργαλεία->EMailing) @@ -1766,7 +1787,7 @@ DetailMenuHandler=Πρόγραμμα χειρισμού μενού όπου θα DetailMenuModule=Όνομα ενότητας εάν η καταχώριση μενού προέρχεται από μια ενότητα DetailType=Τύπος μενού (πάνω ή αριστερά) DetailTitre=Ετικέτα μενού ή κωδικός ετικέτας για μετάφραση -DetailUrl=Διεύθυνση URL που σας στέλνει το μενού (Απόλυτος σύνδεσμος URL ή εξωτερικός σύνδεσμος με http://) +DetailUrl=URL στην οποία ανακατευθύνει το μενού (Σχετικός σύνδεσμος URL ή εξωτερικός σύνδεσμος με https://) DetailEnabled=Προϋπόθεση εμφάνισης ή μη εγγραφής DetailRight=Συνθήκη για την εμφάνιση γκρι μενού μη εξουσιοδοτημένων DetailLangs=Όνομα αρχείου Lang για μετάφραση κώδικα ετικέτας @@ -1810,6 +1831,9 @@ AGENDA_USE_EVENT_TYPE=Χρήση τύπων συμβάντων (διαχείρι AGENDA_USE_EVENT_TYPE_DEFAULT=Αυτόματη ρύθμιση αυτής της προεπιλεγμένης τιμής για τον τύπο συμβάντος στη φόρμα δημιουργίας συμβάντος AGENDA_DEFAULT_FILTER_TYPE=Αυτόματη ρύθμιση αυτού του τύπου συμβάντος στο φίλτρο αναζήτησης της προβολής ατζέντας AGENDA_DEFAULT_FILTER_STATUS=Αυτόματη ρύθμιση αυτής της κατάστασης για συμβάντα στο φίλτρο αναζήτησης της προβολής ατζέντας +AGENDA_EVENT_PAST_COLOR=Χρώμα παρελθόντος συμβάντος +AGENDA_EVENT_CURRENT_COLOR=Χρώμα τρέχοντος συμβάντος +AGENDA_EVENT_FUTURE_COLOR=Χρώμα μελλοντικής εκδήλωσης AGENDA_DEFAULT_VIEW=Ποια προβολή θέλετε να ανοίγετε από προεπιλογή όταν επιλέγετε το μενού Ατζέντα AGENDA_REMINDER_BROWSER=Ενεργοποίηση υπενθύμισης συμβάντος στο πρόγραμμα περιήγησης του χρήστη (Όταν φτάσει η ημερομηνία υπενθύμισης, εμφανίζεται ένα αναδυόμενο παράθυρο από το πρόγραμμα περιήγησης. Κάθε χρήστης μπορεί να απενεργοποιήσει τέτοιες ειδοποιήσεις από τη ρύθμιση ειδοποιήσεων του προγράμματος περιήγησης του). AGENDA_REMINDER_BROWSER_SOUND=Ενεργοποίηση ειδοποίησης ήχου @@ -1837,7 +1861,7 @@ StockDecreaseForPointOfSaleDisabledbyBatch=Η μείωση του αποθέμα CashDeskYouDidNotDisableStockDecease=Δεν απενεργοποιήσατε τη μείωση των μετοχών όταν πραγματοποιείτε μια πώληση από το σημείο πώλησης. Ως εκ τούτου απαιτείται αποθήκη. CashDeskForceDecreaseStockLabel=Η μείωση των αποθεμάτων για τα προϊόντα παρτίδας ήταν αναγκαστική. CashDeskForceDecreaseStockDesc=Μειώστε πρώτα από τις παλαιότερες ημερομηνίες κατανάλωσης και πώλησης. -CashDeskReaderKeyCodeForEnter=Κωδικός κλειδιού για το "Enter" που ορίστηκε στον barcode reader (Παράδειγμα: 13) +CashDeskReaderKeyCodeForEnter=Κωδικός κλειδιού ASCII για το "Enter" που ορίζεται στο πρόγραμμα ανάγνωσης γραμμωτού κώδικα (Παράδειγμα: 13) ##### Bookmark ##### BookmarkSetup=Ρύθμιση ενότητας σελιδοδεικτών BookmarkDesc=Αυτή η ενότητα σάς επιτρέπει να διαχειρίζεστε σελιδοδείκτες. Μπορείτε επίσης να προσθέσετε συντομεύσεις σε όλες τις σελίδες του Dolibarr ή σε εξωτερικούς ιστότοπους στο αριστερό σας μενού. @@ -1854,7 +1878,7 @@ ApiProductionMode=Ενεργοποιήστε τη λειτουργία παρα ApiExporerIs=Μπορείτε να εξερευνήσετε και να δοκιμάσετε τα API στη διεύθυνση URL OnlyActiveElementsAreExposed=Εκτίθενται μόνο στοιχεία από ενεργοποιημένες ενότητες ApiKey=Κλειδί για το API -WarningAPIExplorerDisabled=Ο εξερευνητής API έχει απενεργοποιηθεί. Ο εξερευνητής API δεν απαιτείται να παρέχει υπηρεσίες API. Είναι ένα εργαλείο για τον προγραμματιστή να εντοπίσει / δοκιμάσει τα API REST. Αν χρειάζεστε αυτό το εργαλείο, μεταβείτε στη ρύθμιση της ενότητας API REST για να το ενεργοποιήσετε. +WarningAPIExplorerDisabled=Ο API explorer έχει απενεργοποιηθεί. Ο API explorer δεν απαιτείται να παρέχει υπηρεσίες API. Είναι ένα εργαλείο για τον προγραμματιστή ώστε να εντοπίσει / δοκιμάσει τα REST APIs. Αν χρειάζεστε αυτό το εργαλείο, μεταβείτε στη ρύθμιση της ενότητας API REST για να το ενεργοποιήσετε. ##### Bank ##### BankSetupModule=Ρύθμιση ενότητας τράπεζας FreeLegalTextOnChequeReceipts=Ελευθερο κείμενο στις αποδείξεις επιταγών @@ -1875,7 +1899,7 @@ SuppliersInvoiceNumberingModel=Υποδείγματα Αρίθμησης τιμ IfSetToYesDontForgetPermission=Αν είναι ρυθμισμένη σε μη μηδενική τιμή, μην ξεχάσετε να δώσετε δικαιώματα σε ομάδες ή χρήστες που επιτρέπονται για τη δεύτερη έγκριση ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Ρύθμιση ενότητας GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Διαδρομή προς αρχείο που περιέχει το Maxmind ip στη μετάφραση χώρας.
Παραδείγματα:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoLite2-Country.mmdb +PathToGeoIPMaxmindCountryDataFile=Διαδρομή προς το αρχείο που περιέχει τη μετάφραση του Maxmind GeoIP NoteOnPathLocation=Σημειώστε ότι το αρχείο δεδομένων ip ανά χώρα πρέπει να βρίσκεται μέσα σε έναν κατάλογο που να έχει δικαιώματα ανάγνωσης η PHP σας (Ελέγξτε τις ρυθμίσεις PHP open_basedir και τα δικαιώματα του συστήματος αρχείων). YouCanDownloadFreeDatFileTo=Μπορείτε να κάνετε λήψη μιας δωρεάν δοκιμαστικής έκδοσης του αρχείου χώρας Maxmind GeoIP στη διεύθυνση %s. YouCanDownloadAdvancedDatFileTo=Μπορείτε επίσης να κατεβάσετε μια πιο πλήρη έκδοση , με ενημερώσεις, του αρχείου χώρας Maxmind GeoIP στο %s. @@ -1926,6 +1950,7 @@ BackupDumpWizard=Οδηγός δημιουργίας του αρχείου αν BackupZipWizard=Οδηγός δημιουργίας αρχείου του κατάλογου των εγγράφων SomethingMakeInstallFromWebNotPossible=Η εγκατάσταση εξωτερικής ενότητας δεν είναι δυνατή από τη διεπαφή ιστού για τον ακόλουθο λόγο: SomethingMakeInstallFromWebNotPossible2=Για το λόγο αυτό, η διαδικασία αναβάθμισης που περιγράφεται εδώ είναι μια χειρωνακτική διαδικασία που μπορεί να εκτελέσει μόνο ένας προνομιούχος χρήστης. +InstallModuleFromWebHasBeenDisabledContactUs=Η εγκατάσταση ή η ανάπτυξη εξωτερικών λειτουργικών μονάδων ή δυναμικών ιστοσελίδων, από την εφαρμογή, είναι προς το παρόν κλειδωμένη για λόγους ασφαλείας. Επικοινωνήστε μαζί μας εάν χρειάζεται να ενεργοποιήσετε αυτήν τη δυνατότητα. InstallModuleFromWebHasBeenDisabledByFile=Η εγκατάσταση εξωτερικής ενότητας από την εφαρμογή έχει απενεργοποιηθεί από τον διαχειριστή σας. Πρέπει να του ζητήσετε να αφαιρέσει το αρχείο %s για να επιτραπεί αυτή η δυνατότητα. ConfFileMustContainCustom=Κατά την εγκατάσταση ή τη δημιουργία μιας εξωτερικής ενότητας από την εφαρμογή πρέπει να αποθηκεύσετε τα αρχεία της ενότητας στον κατάλογο %s . Για να υποβληθεί σε επεξεργασία αυτού ο κατάλογος από το Dolibarr, πρέπει να ρυθμίσετε το conf/conf.php και να προσθέσετε τις 2 γραμμές οδηγιών:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Επισήμανση των γραμμών του πίνακα όταν περνάει ο δρομέας του ποντικιού από πάνω @@ -2053,6 +2078,8 @@ RemoveSpecialChars=Κατάργηση ειδικών χαρακτήρων COMPANY_AQUARIUM_CLEAN_REGEX=Φίλτρο Regex για καθαρισμό τιμής (COMPANY_AQUARIUM_CLEAN_REGEX) COMPANY_DIGITARIA_CLEAN_REGEX=Φίλτρο Regex για καθαρισμό τιμής (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Δεν επιτρέπεται το διπλότυπο +RemoveSpecialWords=Καθαρισμός ορισμένων λέξεων κατά τη δημιουργία υπολογαριασμών για πελάτες ή προμηθευτές +RemoveSpecialWordsHelp=Καθορίστε τις λέξεις που πρέπει να καθαριστούν πριν από τον υπολογισμό του λογαριασμού πελάτη ή προμηθευτή. Χρησιμοποιήστε ένα ";" ανάμεσα σε κάθε λέξη GDPRContact=Υπεύθυνος Προστασίας Δεδομένων (DPO, Προστασία Προσωπικών Δεδομένων ή επαφή GDPR) GDPRContactDesc=Εάν αποθηκεύετε προσωπικά δεδομένα στο Πληροφοριακό σας Σύστημα, μπορείτε να ορίσετε την επαφή που είναι υπεύθυνη για τον Γενικό Κανονισμό Προστασίας Δεδομένων εδώ HelpOnTooltip=Κείμενο βοήθειας προς εμφάνιση στο αναδυόμενο πλαίσιο επεξήγησης(tooltip) @@ -2080,6 +2107,7 @@ MailboxTargetDirectory=Κατάλογος προορισμού γραμματο EmailcollectorOperations=Λειτουργίες συλλέκτη EmailcollectorOperationsDesc=Οι λειτουργίες εκτελούνται με σειρά από πάνω προς τα κάτω MaxEmailCollectPerCollect=Μέγιστος αριθμός μηνυμάτων ηλεκτρονικού ταχυδρομείου που συλλέγονται +TestCollectNow=Δοκιμαστική συλλογή CollectNow=Συλλέξτε τώρα ConfirmCloneEmailCollector=Είστε σίγουροι ότι θέλετε να αντιγράψετε τον συλλέκτη email %s; DateLastCollectResult=Ημερομηνία τελευταίας προσπάθειας συλλογής @@ -2109,6 +2137,7 @@ CodeLastResult=Κωδικός Τελευταίου αποτελέσματος NbOfEmailsInInbox=Αριθμός email στον κατάλογο προέλευσης LoadThirdPartyFromName=Φόρτωση αναζήτησης τρίτου μέρους στο %s (μόνο φόρτωση) LoadThirdPartyFromNameOrCreate=Φόρτωση αναζήτησης τρίτου μέρους στο %s (δημιουργία αν δεν βρεθεί) +LoadContactFromEmailOrCreate=Φόρτωση αναζήτησης επαφής στο %s (δημιουργία αν δεν βρεθεί) AttachJoinedDocumentsToObject=Αποθηκεύστε τα συνημμένα αρχεία σε έγγραφα αντικειμένων εάν βρεθεί μια αναφορά ενός αντικειμένου στο θέμα του email. WithDolTrackingID=Μήνυμα από μια συνομιλία που ξεκίνησε από ένα πρώτο email που στάλθηκε από το Dolibarr WithoutDolTrackingID=Μήνυμα από μια συνομιλία που ξεκίνησε από ένα πρώτο email που ΔΕΝ εστάλη από το Dolibarr @@ -2183,6 +2212,7 @@ ShowProjectLabel=Ετικέτα έργου PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Συμπεριλάβετε διακριτικό τίτλο στην ονομασία τρίτου μέρους THIRDPARTY_ALIAS=Όνομα τρίτου μέρους - Διακριτικός τίτλος τρίτου μέρους ALIAS_THIRDPARTY=Διακριτικός τίτλος τρίτου μέρους - Όνομα τρίτου μέρους +PDFIn2Languages=Εμφάνιση ετικετών σε 2 διαφορετικές γλώσσες στα PDF PDF_USE_ALSO_LANGUAGE_CODE=Εάν θέλετε να έχετε κείμενα σε 2 διαφορετικές γλώσσες στο ίδιο PDF, πρέπει να ορίσετε εδώ αυτή τη δεύτερη γλώσσα ώστε το PDF που θα δημιουργηθεί να περιέχει 2 διαφορετικές γλώσσες στην ίδια σελίδα ( μόνο λίγα πρότυπα PDF το υποστηρίζουν). Διατηρήστε το κενό για 1 γλώσσα ανά PDF. PDF_USE_A=Δημιουργήστε έγγραφα PDF με μορφή PDF/A αντί για την προεπιλεγμένη μορφή PDF FafaIconSocialNetworksDesc=Εισαγάγετε εδώ τον κωδικό ενός εικονιδίου FontAwesome. Εάν δεν γνωρίζετε τι είναι το FontAwesome, μπορείτε να χρησιμοποιήσετε τη γενική τιμή fa-address-book. @@ -2211,12 +2241,12 @@ MailToPartnership=Συνεργάτη AGENDA_EVENT_DEFAULT_STATUS=Προεπιλεγμένη κατάσταση συμβάντος κατά τη δημιουργία ενός συμβάντος από τη φόρμα YouShouldDisablePHPFunctions=Θα πρέπει να απενεργοποιήσετε τις λειτουργίες της PHP IfCLINotRequiredYouShouldDisablePHPFunctions=Θα πρέπει να απενεργοποιήσετε τις λειτουργίες της PHP, εκτός εάν χρειάζεται να εκτελέσετε εντολές συστήματος με προσαρμοσμένο κώδικα -PHPFunctionsRequiredForCLI=Για σκοπούς (όπως προγραμματισμένη δημιουργία αντιγράφων ασφαλείας εργασιών ή εκτέλεση προγράμματος antiivurs), πρέπει να διατηρήσετε τις λειτουργίες της PHP +PHPFunctionsRequiredForCLI=Για λειτουργίες shell (όπως προγραμματισμένη δημιουργία αντιγράφων ασφαλείας εργασιών ή εκτέλεση προγράμματος προστασίας από ιούς), πρέπει να διατηρήσετε τις PHP functions NoWritableFilesFoundIntoRootDir=Δεν βρέθηκαν εγγράψιμα αρχεία ή κατάλογοι των κοινών προγραμμάτων στον ριζικό σας κατάλογο (Καλό) RecommendedValueIs=Συνιστάται: %s Recommended=Προτεινόμενη NotRecommended=Δεν προτείνεται -ARestrictedPath=Κάποια περιορισμένη διαδρομή +ARestrictedPath=Κάποια περιορισμένη διαδρομή για αρχεία δεδομένων CheckForModuleUpdate=Ελέγξτε για ενημερώσεις εξωτερικών ενοτήτων CheckForModuleUpdateHelp=Αυτή η ενέργεια θα συνδεθεί με τους επεξεργαστές εξωτερικών ενοτήτων για να ελέγξει εάν είναι διαθέσιμη μια νέα έκδοση. ModuleUpdateAvailable=Υπάρχει διαθέσιμη ενημέρωση @@ -2264,7 +2294,7 @@ LateWarningAfter=Προειδοποίηση μετά την "καθυστέρη TemplateforBusinessCards=Πρότυπο για μια επαγγελματική κάρτα σε διαφορετικό μέγεθος InventorySetup= Ρύθμιση αποθέματος ExportUseLowMemoryMode=Χρησιμοποιήστε low memory mode -ExportUseLowMemoryModeHelp=Χρησιμοποιήστε τη λειτουργία χαμηλής μνήμης για να εκτελέσετε το εκτελέσιμο του αρχείου αντιγράφου ασφαλείας (η συμπίεση γίνεται μέσω ενός pipe αντί στη μνήμη PHP). Αυτή η μέθοδος δεν επιτρέπει τον έλεγχο ότι το αρχείο έχει ολοκληρωθεί και δεν μπορεί να αναφερθεί το μήνυμα σφάλματος εάν αποτύχει. +ExportUseLowMemoryModeHelp=Χρησιμοποιήστε τη λειτουργία χαμηλής μνήμης για να δημιουργήσετε το αρχείου αντιγράφου ασφαλείας (η συμπίεση γίνεται μέσω pipe αντί της μνήμης PHP). Αυτή η μέθοδος δεν επιτρέπει τον έλεγχο ακεραιότητας του αρχείου και δεν μπορεί να αναφερθεί μήνυμα σφάλματος εάν αποτύχει. Χρησιμοποιήστε το εάν αντιμετωπίζετε αρκετά σφάλματα μνήμης. ModuleWebhookName = Webhook ModuleWebhookDesc = Διεπαφή για αποστολή σε μια διεύθυνση URL ενεργειών του Dolibarr @@ -2288,6 +2318,8 @@ IconOnly=Μόνο εικονίδιο - Κείμενο μόνο στο αναδυ INVOICE_ADD_ZATCA_QR_CODE=Εμφάνιση του κωδικού QR ZATCA στα τιμολόγια INVOICE_ADD_ZATCA_QR_CODEMore=Ορισμένες αραβικές χώρες χρειάζονται αυτόν τον κωδικό QR στα τιμολόγιά τους INVOICE_ADD_SWISS_QR_CODE=Εμφάνιση του ελβετικού κωδικού QR-Bill στα τιμολόγια +INVOICE_SHOW_SHIPPING_ADDRESS=Εμφάνιση διεύθυνσης αποστολής +INVOICE_SHOW_SHIPPING_ADDRESSMore=Υποχρεωτική αναφορά για τη Γαλλία UrlSocialNetworksDesc=Σύνδεσμος URL του κοινωνικού δικτύου. Χρησιμοποιήστε το {socialid} για το τμήμα της μεταβλητής που περιέχει το αναγνωριστικό του κοινωνικού δικτύου. IfThisCategoryIsChildOfAnother=Αν αυτή η κατηγορία είναι θυγατρική μιας άλλης DarkThemeMode=Λειτουργία σκούρου θέματος(Dark theme) @@ -2307,3 +2339,30 @@ UsePassword=Χρησιμοποιήστε έναν κωδικό πρόσβαση UseOauth=Χρησιμοποιήστε ένα token OAUTH Images=Eικόνες MaxNumberOfImagesInGetPost=Μέγιστος επιτρεπόμενος αριθμός εικόνων προς υποβολή σε ένα πεδίο HTML μιας φόρμας +MaxNumberOfPostOnPublicPagesByIP=Μέγιστος αριθμός αναρτήσεων σε δημόσιες σελίδες με την ίδια διεύθυνση IP σε ένα μήνα +CIDLookupURL=Η ενότητα φέρνει μια διεύθυνση URL που μπορεί να χρησιμοποιηθεί από ένα εξωτερικό εργαλείο για τη λήψη του ονόματος ενός τρίτου μέρους ή μιας επαφής από τον αριθμό τηλεφώνου του. Η διεύθυνση URL προς χρήση είναι: +ScriptIsEmpty=Το script είναι κενό +ShowHideTheNRequests=Εμφάνιση/απόκρυψη των %s αιτημάτων SQL +DefinedAPathForAntivirusCommandIntoSetup=Ορίστε μια διαδρομή για ένα πρόγραμμα προστασίας από ιούς στο %s +TriggerCodes=Συμβάντα που ξεκινούν άλλες ενέργειες +TriggerCodeInfo=Εισάγετε εδώ τον κώδικα των trigger που θα δημιουργήσει μια ανάρτηση ενός αιτήματος ιστού (επιτρέπονται μόνο εξωτερικές διευθύνσεις URL). Μπορείτε να εισάγετε πολλούς κώδικες trigger διαχωρισμένους από κόμμα. +EditableWhenDraftOnly=Εάν δεν είναι επιλεγμένο, η τιμή μπορεί να τροποποιηθεί μόνο όταν το αντικείμενο ειναι σε κατάσταση προσχεδίου +CssOnEdit=Css σε σελίδες επεξεργασίας +CssOnView=Css σε σελίδες προβολής +CssOnList=Css σε σελίδες λίστας +HelpCssOnEditDesc=Css που χρησιμοποιείται κατά την επεξεργασία του πεδίου.
Παράδειγμα: "minwiwdth100 maxwidth500 widthcentpercentminusx" +HelpCssOnViewDesc=Css που χρησιμοποιείται κατά την προβολή του πεδίου. +HelpCssOnListDesc=Css που χρησιμοποιείται όταν βρίσκεται μέσα σε έναν πίνακα λίστας.
Παράδειγμα: "tdoverflowmax200" +RECEPTION_PDF_HIDE_ORDERED=Απόκρυψη της ποσότητας που παραγγέλθηκε στα παραγόμενα έγγραφα για παραλαβές +MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT=Εμφάνιση της τιμής στα παραγόμενα έγγραφα για παραλαβές +WarningDisabled=Η προειδοποίηση είναι απενεργοποιημένη +LimitsAndMitigation=Όρια πρόσβασης και περιορισμός +DesktopsOnly=Μόνο Desktops +DesktopsAndSmartphones=Desktops και smartphones +AllowOnlineSign=Να επιτρέπεται η online υπογραφή +AllowExternalDownload=Να επιτρέπεται εξωτερική λήψη (χωρίς σύνδεση, χρησιμοποιώντας κοινόχρηστο σύνδεσμο) +DeadlineDayVATSubmission=Προθεσμία υποβολής ΦΠΑ για τον επόμενο μήνα +MaxNumberOfAttachementOnForms=Μέγιστος αριθμός επισυναπτόμενων αρχείων σε μια φόρμα +IfDefinedUseAValueBeetween=Εάν ορίζεται, χρησιμοποιήστε μια τιμή μεταξύ %s και %s +Reload=Επαναφόρτωση +ConfirmReload=Επιβεβαίωση επαναφόρτωσης της μονάδας diff --git a/htdocs/langs/el_GR/agenda.lang b/htdocs/langs/el_GR/agenda.lang index 5877db8fb3c..09dd46c4ea3 100644 --- a/htdocs/langs/el_GR/agenda.lang +++ b/htdocs/langs/el_GR/agenda.lang @@ -68,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Επιστροφή της αποστολης %s σ ShipmentDeletedInDolibarr=Η αποστολή %s διαγράφηκε ShipmentCanceledInDolibarr=Η αποστολή %s ακυρώθηκε ReceptionValidatedInDolibarr=Η παραλαβή %s επικυρώθηκε +ReceptionDeletedInDolibarr=Η παραλαβή %s διαγράφηκε ReceptionClassifyClosedInDolibarr=Η παραλαβή %s ταξινομήθηκε ως κλειστή OrderCreatedInDolibarr=Η Παραγγελία %s δημιουργήθηκε OrderValidatedInDolibarr=Η παραγγελία %s επικυρώθηκε @@ -87,6 +88,7 @@ SupplierInvoiceSentByEMail=Το τιμολόγιο προμηθευτή %s στ ShippingSentByEMail=Η αποστολή %s στάλθηκε μέσω email ShippingValidated= Η αποστολή %s επικυρώθηκε InterventionSentByEMail=Η παρέμβαση %s στάλθηκε μέσω email +ProjectSentByEMail=Το έργο %s στάλθηκε μέσω email ProposalDeleted=Η προσφορά διαγράφηκε OrderDeleted=Η παραγγελία διαγράφηκε InvoiceDeleted=Το τιμολόγιο διαγράφηκε diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang index 09c984f4ece..3f07afff034 100644 --- a/htdocs/langs/el_GR/bills.lang +++ b/htdocs/langs/el_GR/bills.lang @@ -13,10 +13,12 @@ BillsStatistics=Στατιστικά τιμολογίων πελατών BillsStatisticsSuppliers=Στατιστικά τιμολογίων προμηθευτών DisabledBecauseDispatchedInBookkeeping=Απενεργοποιήθηκε επειδή το τιμολόγιο καταχωρήθηκε στη λογιστική DisabledBecauseNotLastInvoice=Απενεργοποιημένο επειδή το τιμολόγιο δεν μπορεί να διαγράφει. Ορισμένα τιμολόγια καταγράφηκαν μετά από αυτό και θα χαλάσει τη σειρά της αυτόματης αρίθμησης. +DisabledBecauseNotLastSituationInvoice=Απενεργοποιήθηκε επειδή το τιμολόγιο δεν μπορεί να διαγραφεί. Αυτό το τιμολόγιο δεν είναι το τελευταίο στον κύκλο τιμολογίων κατάστασης. DisabledBecauseNotErasable=Απενεργοποιημένο επειδή δεν μπορεί να διαγραφεί -InvoiceStandard=Τυπικό Τιμολόγιο -InvoiceStandardAsk=Τυπικό Τιμολόγιο +InvoiceStandard=Τιμολόγιο +InvoiceStandardAsk=Τιμολόγιο InvoiceStandardDesc=Αυτό το είδος τιμολογίου είναι το τυπικό τιμολόγιο. +InvoiceStandardShort=Τυπικό InvoiceDeposit=Απόδειξη είσπραξης προκαταβολής. InvoiceDepositAsk=Απόδειξη είσπραξης προκαταβολής. InvoiceDepositDesc=Αυτός ο τύπος απόδειξης χρησιμοποιείται όταν λαμβάνετε μια προκαταβολή. @@ -24,6 +26,7 @@ InvoiceProForma=Προτιμολόγιο InvoiceProFormaAsk=Προτιμολόγιο InvoiceProFormaDesc=Το Προτιμολόγιο είναι μια εικόνα ενός πραγματικού τιμολογίου αλλά δεν έχει λογιστική αξία. InvoiceReplacement=Τιμολόγιο Αντικατάστασης +InvoiceReplacementShort=Αντικατάστασης InvoiceReplacementAsk=Τιμολόγιο αντικατάστασης για το τιμολόγιο InvoiceReplacementDesc=Τοτιμολόγιο αντικατάστασης χρησιμοποιείται για την πλήρη αντικατάσταση ενός τιμολογίου που έχει παραληφθεί από τον πελάτη αλλά δεν έχει πληρωθεί.

Σημείωση: Μπορούν να αντικατασταθούν μόνο τιμολόγια χωρίς πληρωμή. Εάν το τιμολόγιο που αντικαταστήσατε δεν έχει κλείσει ακόμα, θα κλείσει αυτόματα ως «εγκαταλειμμένο». InvoiceAvoir=Πιστωτικό τιμολόγιο @@ -37,7 +40,7 @@ ReplacementInvoice=Τιμολόγιο Αντικατάστασης ReplacedByInvoice=Αντικαταστάθηκε από το τιμολόγιο %s ReplacementByInvoice=Αντικαταστάθηκε από τιμολόγιο CorrectInvoice=Διόρθωση Τιμολογίου %s -CorrectionInvoice=Τιμολόγιο Διόρθωσης +CorrectionInvoice=Σχετικό παραστατικό UsedByInvoice=Χρησιμοποιήθηκε στην πληρωμή του τιμολογίου %s ConsumedBy=Καταναλώθηκε από NotConsumed=Δεν καταναλώθηκε @@ -87,7 +90,7 @@ DefaultPaymentMode=Προκαθορισμένος τρόπος πληρωμής DefaultBankAccount=Προεπιλεγμένος τραπεζικός λογαριασμός IdPaymentMode=Τρόπος Πληρωμής (id) CodePaymentMode=Τρόπος πληρωμής (κωδικός) -LabelPaymentMode=Τρόπος Πληρωμής (label) +LabelPaymentMode=Τρόπος Πληρωμής (ετικέτα) PaymentModeShort=Τρόπος Πληρωμής PaymentTerm=Ορος πληρωμής PaymentConditions=Όροι πληρωμής @@ -135,9 +138,9 @@ BillStatusClosedUnpaid=Κλειστό (απλήρωτο) BillStatusClosedPaidPartially=Πληρωμένο (μερικώς) BillShortStatusDraft=Προσχέδιο BillShortStatusPaid=Πληρωμένο -BillShortStatusPaidBackOrConverted=Επιστρέφονται ή μετατρέπονται +BillShortStatusPaidBackOrConverted=Έχει επιστραφεί ή μετατραπεί Refunded=Έγινε επιστροφή χρημάτων -BillShortStatusConverted=Πληρώθηκε +BillShortStatusConverted=Πληρωμένο BillShortStatusCanceled=Εγκαταλελειμμένο BillShortStatusValidated=Επικυρωμένο BillShortStatusStarted=Ξεκίνησε @@ -159,6 +162,7 @@ ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Αυτό ή έν ErrorInvoiceIsNotLastOfSameType=Σφάλμα: Η ημερομηνία του τιμολογίου %s είναι %s. Θα πρέπει να είναι παλαιότερη η ίδια με την τελευταία καταχωρημένη ημερομηνία για τον ίδιο τύπο τιμολογίων (%s). Παρακαλώ αλλάξτε την ημερομηνία του τιμολογίου BillFrom=Από BillTo=Στοιχεία Πελάτη +ShippingTo=Αποστολή σε ActionsOnBill=Ενέργειες στο τιμολόγιο RecurringInvoiceTemplate=Πρότυπο / Επαναλαμβανόμενο τιμολόγιο NoQualifiedRecurringInvoiceTemplateFound=Κανένα πρότυπο επαναλαμβανόμενου τιμολογίου δεν είναι κατάλληλο για δημιουργία. @@ -591,9 +595,9 @@ PDFCrevetteSituationInvoiceTitle=Τιμολόγιο κατάστασης PDFCrevetteSituationInvoiceLine=Κατάσταση N°%s: Τιμ. N°%s σε %s TotalSituationInvoice=Σύνολο κατάστασης invoiceLineProgressError=Η πρόοδος της γραμμής τιμολογίου δεν μπορεί να είναι μεγαλύτερη ή ίση με την επόμενη γραμμή τιμολογίου -updatePriceNextInvoiceErrorUpdateline=Σφάλμα: ενημέρωση τιμής στη γραμμή τιμολογίου: %s +updatePriceNextInvoiceErrorUpdateline=Σφάλμα: ενημερώστε την τιμή στη γραμμή τιμολογίου: %s ToCreateARecurringInvoice=Για να δημιουργήσετε ένα επαναλαμβανόμενο τιμολόγιο για αυτήν τη σύμβαση, δημιουργήστε πρώτα αυτό το προσχέδιο τιμολογίου, στη συνέχεια μετατρέψτε το σε πρότυπο τιμολογίου και καθορίστε τη συχνότητα δημιουργίας μελλοντικών τιμολογίων. -ToCreateARecurringInvoiceGene=Για να δημιουργείτε μελλοντικά τιμολόγια τακτικά και μη αυτόματα, απλώς μεταβείτε στο μενού %s - %s - %s . +ToCreateARecurringInvoiceGene=Για τη δημιουργια τιμολογίων τακτικά και μη αυτόματα, απλώς μεταβείτε στο μενού %s - %s - %s . ToCreateARecurringInvoiceGeneAuto=Αν χρειαστεί να δημιουργήσετε αυτομάτως τέτοιου είδους τιμολόγια, ζητήστε από τον διαχειριστή σας να ενεργοποιήσει και να ρυθμίσει την ενότητα %s . Λάβετε υπόψη ότι και οι δύο μέθοδοι (χειροκίνητες και αυτόματες) μπορούν να χρησιμοποιηθούν χωρίς να υπάρχει κίνδυνος επανάληψης. DeleteRepeatableInvoice=Διαγραφή προτύπου τιμολογίου ConfirmDeleteRepeatableInvoice=Είστε σίγουροι ότι θέλετε να διαγράψετε το πρότυπο τιμολόγιο; @@ -621,4 +625,9 @@ NoPaymentAvailable=Δεν υπάρχει διαθέσιμη πληρωμή γι PaymentRegisteredAndInvoiceSetToPaid=Η πληρωμή καταχωρήθηκε και το τιμολόγιο %s ορίστηκε ως πληρωμένο SendEmailsRemindersOnInvoiceDueDate=Αποστολή υπενθύμισης μέσω email για απλήρωτα τιμολόγια MakePaymentAndClassifyPayed=Καταγραφή πληρωμής -BulkPaymentNotPossibleForInvoice=Δεν είναι δυνατή η μαζική πληρωμή για το τιμολόγιο %s (κακός τύπος ή κατάσταση) +BulkPaymentNotPossibleForInvoice=Δεν είναι δυνατή η μαζική πληρωμή για το τιμολόγιο %s (λάθος τύπος ή κατάσταση) +MentionVATDebitOptionIsOn=Δυνατότητα πληρωμής φόρου βάσει χρεώσεων +MentionCategoryOfOperations=Κατηγορία πράξεων +MentionCategoryOfOperations0=Διανομή αγαθών +MentionCategoryOfOperations1=Παροχή υπηρεσιών +MentionCategoryOfOperations2=Μικτή - Παράδοση αγαθών & παροχή υπηρεσιών diff --git a/htdocs/langs/el_GR/bookmarks.lang b/htdocs/langs/el_GR/bookmarks.lang index 398c61c3d7f..9a0f5303f6f 100644 --- a/htdocs/langs/el_GR/bookmarks.lang +++ b/htdocs/langs/el_GR/bookmarks.lang @@ -20,3 +20,4 @@ ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Επιλέξτε εάν η συ BookmarksManagement=Διαχείριση σελιδοδεικτών BookmarksMenuShortCut=Ctrl + shift + m NoBookmarks=Δεν έχουν οριστεί σελιδοδείκτες +NoBookmarkFound=Δεν βρέθηκε σελιδοδείκτης diff --git a/htdocs/langs/el_GR/boxes.lang b/htdocs/langs/el_GR/boxes.lang index 7956fe4b578..03f769b4c26 100644 --- a/htdocs/langs/el_GR/boxes.lang +++ b/htdocs/langs/el_GR/boxes.lang @@ -9,7 +9,7 @@ BoxLastSupplierBills=Τελευταία τιμολόγια προμηθευτή BoxLastCustomerBills=Τελευταία τιμολόγια πελατών BoxOldestUnpaidCustomerBills=Παλαιότερα μη πληρωμένα τιμολόγια πελατών BoxOldestUnpaidSupplierBills=Παλαιότερα μη πληρωμένα τιμολόγια προμηθευτών -BoxLastProposals=Τελευταίες εμπορικές προτάσεις +BoxLastProposals=Τελευταίες προσφορές BoxLastProspects=Τελευταίες τροποποιημένες προοπτικές BoxLastCustomers=Τελευταίοι τροποποιημένοι πελάτες BoxLastSuppliers=Τελευταίοι τροποποιημένοι προμηθευτές @@ -24,6 +24,7 @@ BoxFicheInter=Τελευταίες παρεμβάσεις BoxCurrentAccounts=Ισοζύγιο ανοιχτών λογαριασμών BoxTitleMemberNextBirthdays=Γενέθλια αυτού του μήνα (μέλη) BoxTitleMembersByType=Μέλη ανά τύπο και κατάσταση +BoxTitleMembersByTags=Μέλη ανά ετικέτα και κατάσταση BoxTitleMembersSubscriptionsByYear=Συνδρομές μελών ανά έτος BoxTitleLastRssInfos=Τα τελευταία %s νέα από %s BoxTitleLastProducts=Προϊόντα / Υπηρεσίες: τελευταία %s τροποποιημένα @@ -44,13 +45,15 @@ BoxTitleSupplierOrdersAwaitingReception=Παραγγελίες προμηθευ BoxTitleLastModifiedContacts=Επαφές / διευθύνσεις: τελευταίες %s τροποποιημένες BoxMyLastBookmarks=Σελιδοδείκτες: τελευταίοι %s BoxOldestExpiredServices=Παλαιότερες ενεργές υπηρεσίες που έχουν λήξει +BoxOldestActions=Οι παλαιότερα ενέργειες σε αναμονή BoxLastExpiredServices=Τελευταίες %s παλαιότερες επαφές με ενεργές υπηρεσίες που έληξαν BoxTitleLastActionsToDo=Τελευταίες %s ενέργειες προς πραγματοποίηση +BoxTitleOldestActionsToDo=Τα παλαιότερα %s συμβάντα που πρέπει να γίνουν, μη ολοκληρωμένα BoxTitleLastContracts=Τελευταία %s τροποποιημένα συμβόλαια BoxTitleLastModifiedDonations=Τελευταίες %s τροποποιημένες δωρεές BoxTitleLastModifiedExpenses=Τελευταίες %s αναφορές εξόδων που τροποποιήθηκαν BoxTitleLatestModifiedBoms=Τελευταία %s BOM που τροποποιήθηκαν -BoxTitleLatestModifiedMos=Τελευταίες %s Παραγγελίες Κατασκευής που τροποποιήθηκαν +BoxTitleLatestModifiedMos=Τελευταίες %s Παραγγελίες παραγωγής που τροποποιήθηκαν BoxTitleLastOutstandingBillReached=Πελάτες με υπέρβαση του μέγιστου οφειλόμενου BoxGlobalActivity=Η γενική δραστηριότητα για (τιμολόγια, προσφορές, παραγγελίες) BoxGoodCustomers=Καλοί πελάτες diff --git a/htdocs/langs/el_GR/commercial.lang b/htdocs/langs/el_GR/commercial.lang index 746c112fe41..8d91921c35b 100644 --- a/htdocs/langs/el_GR/commercial.lang +++ b/htdocs/langs/el_GR/commercial.lang @@ -50,7 +50,7 @@ ActionAffectedTo=Η ενέργεια αφορά τον/την ActionDoneBy=Η ενέργεια έγινε από τον/την ActionAC_TEL=Τηλεφώνημα ActionAC_FAX=Αποστολή fax -ActionAC_PROP=Αποστολή προσφορας με email +ActionAC_PROP=Αποστολή προσφοράς με email ActionAC_EMAIL=Αποστολή email ActionAC_EMAIL_IN=Λήψη email ActionAC_RDV=Συναντήσεις @@ -74,8 +74,16 @@ StatusProsp=Κατάσταση προοπτικής DraftPropals=Προσχέδιο προσφορών NoLimit=Κανένα όριο ToOfferALinkForOnlineSignature=Σύνδεσμος για ηλεκτρονική υπογραφή -WelcomeOnOnlineSignaturePage=Καλώς ήρθατε στη σελίδα αποδοχής εμπορικών προτάσεων από %s -ThisScreenAllowsYouToSignDocFrom=Αυτή η οθόνη σάς επιτρέπει να αποδεχτείτε και να υπογράψετε ή να αρνηθείτε μια προσφορά -ThisIsInformationOnDocumentToSign=Αυτές είναι οι πληροφορίες σχετικά με το έγγραφο προς αποδοχή ή απορρίψη +WelcomeOnOnlineSignaturePageProposal=Καλώς ήρθατε στη σελίδα αποδοχής εμπορικών προσφορών από %s +WelcomeOnOnlineSignaturePageContract=Καλώς ορίσατε στη σελίδα υπογραφής PDF της σύμβασης %s +WelcomeOnOnlineSignaturePageFichinter=Καλώς ορίσατε στη σελίδα υπογραφής PDF της παρέμβασης %s +ThisScreenAllowsYouToSignDocFromProposal=Αυτή η οθόνη σάς επιτρέπει να αποδεχτείτε και να υπογράψετε ή να αρνηθείτε μια προσφορά +ThisScreenAllowsYouToSignDocFromContract=Αυτή η οθόνη σάς επιτρέπει την online υπογραφή σύμβασης σε μορφή PDF. +ThisScreenAllowsYouToSignDocFromFichinter=Αυτή η οθόνη σάς επιτρέπει να υπογράψετε διαδικτυακή παρέμβαση σε μορφή PDF. +ThisIsInformationOnDocumentToSignProposal=Αυτές είναι οι πληροφορίες σχετικά με το έγγραφο προς αποδοχή ή απόρριψη +ThisIsInformationOnDocumentToSignContract=Αυτές είναι πληροφορίες για την σύμβαση προς υπογραφή +ThisIsInformationOnDocumentToSignFichinter=Αυτές είναι πληροφορίες σχετικά με την παρέμβαση προς υπογραφή SignatureProposalRef=Υπογραφή προσφοράς / εμπορικής πρότασης %s +SignatureContractRef=Υπογραφή σύμβασης %s +SignatureFichinterRef=Υπογραφή παρέμβασης %s FeatureOnlineSignDisabled=Η δυνατότητα για ηλεκτρονική υπογραφή απενεργοποιήθηκε ή δημιουργήθηκε έγγραφο πριν από την ενεργοποίηση της δυνατότητας diff --git a/htdocs/langs/el_GR/companies.lang b/htdocs/langs/el_GR/companies.lang index 661a9fe9688..3ec8674c6ba 100644 --- a/htdocs/langs/el_GR/companies.lang +++ b/htdocs/langs/el_GR/companies.lang @@ -53,7 +53,7 @@ RegisteredOffice=Έδρα της εταιρείας Lastname=Επίθετο Firstname=Όνομα RefEmployee=Κωδικός εργαζομένου -NationalRegistrationNumber=National registration number +NationalRegistrationNumber=Εθνικός αριθμός μητρώου PostOrFunction=Θέση εργασίας UserTitle=Τίτλος NatureOfThirdParty=Φύση του τρίτου μέρους @@ -103,8 +103,8 @@ LocalTax2IsUsedES= IRPF is used LocalTax2IsNotUsedES= IRPF is not used WrongCustomerCode=Άκυρος κωδικός πελάτη WrongSupplierCode=Άκυρος κωδικός προμηθευτή -CustomerCodeModel=Μοντέλο κωδικού πελάτη -SupplierCodeModel=Μοντέλο κωδικού προμηθευτή +CustomerCodeModel=Υπόδειγμα κωδικού πελάτη +SupplierCodeModel=Υπόδειγμα κωδικού προμηθευτή Gencod=Barcode GencodBuyPrice=Barcode αναφοράς τιμής ##### Professional ID ##### @@ -312,12 +312,12 @@ CustomerRelativeDiscountShort=Σχετική έκπτωση CustomerAbsoluteDiscountShort=Απόλυτη έκπτωση CompanyHasRelativeDiscount=Αυτός ο πελάτης έχει προεπιλεγμένη έκπτωση %s%% CompanyHasNoRelativeDiscount=Αυτός ο πελάτης δεν έχει σχετική έκπτωση από προεπιλογή -HasRelativeDiscountFromSupplier=Έχετε προεπιλεγμένη έκπτωση %s%% από αυτόν τον προμηθευτή -HasNoRelativeDiscountFromSupplier=Δεν έχετε προεπιλεγμένη σχετική έκπτωση από αυτόν τον προμηθευτή +HasRelativeDiscountFromSupplier=Έχετε μια προεπιλεγμένη έκπτωση %s%% από αυτόν τον προμηθευτή +HasNoRelativeDiscountFromSupplier=Δεν υπάρχει προεπιλεγμένη σχετική έκπτωση από αυτόν τον προμηθευτή CompanyHasAbsoluteDiscount=Αυτός ο πελάτης έχει διαθέσιμες εκπτώσεις (πιστωτικές σημειώσεις ή προκαταβολές) για %s %s CompanyHasDownPaymentOrCommercialDiscount=Αυτός ο πελάτης έχει διαθέσιμες εκπτώσεις (εμπορικές, προκαταβολές) για %s %s CompanyHasCreditNote=Αυτός ο πελάτης έχει ακόμα πιστωτικές σημειώσεις για %s %s -HasNoAbsoluteDiscountFromSupplier=Δεν έχετε διαθέσιμη πίστωση έκπτωσης από αυτόν τον προμηθευτή +HasNoAbsoluteDiscountFromSupplier=Δεν διατίθεται έκπτωση/πίστωση από αυτόν τον προμηθευτή HasAbsoluteDiscountFromSupplier=Έχετε διαθέσιμες εκπτώσεις (πιστωτικές σημειώσεις ή προκαταβολές) για %s %s από αυτόν τον προμηθευτή HasDownPaymentOrCommercialDiscountFromSupplier=Έχετε διαθέσιμες εκπτώσεις (εμπορικές, προκαταβολές) για %s %s από αυτόν τον προμηθευτή HasCreditNoteFromSupplier=Έχετε πιστωτικές σημειώσεις για %s %s από αυτόν τον προμηθευτή @@ -444,7 +444,7 @@ AddAddress=Προσθήκη διεύθυνσης SupplierCategory=Κατηγορία προμηθευτή JuridicalStatus200=Ανεξάρτητος DeleteFile=Διαγραφή Αρχείου -ConfirmDeleteFile=Είστε σίγουροι ότι θέλετε να διαγράψετε το αρχείο; +ConfirmDeleteFile=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το αρχείο %s ; AllocateCommercial=Ανατέθηκε σε αντιπρόσωπο πωλήσεων Organization=Οργανισμός FiscalYearInformation=Οικονομικό έτος @@ -498,3 +498,8 @@ RestOfEurope=Υπόλοιπη Ευρώπη (ΕΕ) OutOfEurope=Εκτός Ευρώπης (ΕΕ) CurrentOutstandingBillLate=Καθυστερημένος ανεξόφλητος λογαριασμός BecarefullChangeThirdpartyBeforeAddProductToInvoice=Προσοχή, ανάλογα με τις ρυθμίσεις τιμής του προϊόντος σας, θα πρέπει να αλλάξετε το Τρίτο Μέρος πριν προσθέσετε το προϊόν στο POS. +EmailAlreadyExistsPleaseRewriteYourCompanyName=Το email υπάρχει ήδη, ξαναγράψτε το όνομα της εταιρείας σας +TwoRecordsOfCompanyName=υπάρχουν περισσότερες από μια εγγραφή για αυτήν την εταιρεία, επικοινωνήστε μαζί μας για να ολοκληρώσετε το αίτημα συνεργασίας σας +CompanySection=Τμήμα εταιρείας +ShowSocialNetworks=Εμφάνιση κοινωνικών δικτύων +HideSocialNetworks=Απόκρυψη κοινωνικών δικτύων diff --git a/htdocs/langs/el_GR/compta.lang b/htdocs/langs/el_GR/compta.lang index b258b9b2b1c..1a105ccd0ee 100644 --- a/htdocs/langs/el_GR/compta.lang +++ b/htdocs/langs/el_GR/compta.lang @@ -29,6 +29,8 @@ BalanceBefore=Ισοζύγιο (πριν) Balance=Ισοζύγιο Debit=Χρέωση Credit=Πίστωση +AccountingDebit=Χρέωση +AccountingCredit=Πίστωση Piece=Λογιστικό Εγγρ. AmountHTVATRealReceived=Σύνολο καθαρών εισπράξεων AmountHTVATRealPaid=Σύνολο καθαρών πληρωμένων @@ -126,7 +128,7 @@ Turnover=Τιμολογημένος κύκλος εργασιών(τζίρος) TurnoverCollected=Κύκλος εργασιών(τζίρος) που εισπράχθηκε SalesTurnoverMinimum=Ελάχιστος κύκλος εργασιών(τζίρος) ByExpenseIncome=Ανα έξοδα και έσοδα -ByThirdParties=Ανά στοιχεία +ByThirdParties=Ανά τρίτα μέρη ByUserAuthorOfInvoice=Ανά συντάκτη τιμολογίου CheckReceipt=Κατάθεση επιταγής CheckReceiptShort=Κατάθεση επιταγής @@ -141,8 +143,8 @@ PaySocialContribution=Πληρωμή Κοινωνικής/Φορολογικής PayVAT=Πληρώμη Φ.Π.Α. PaySalary=Πληρωμή μισθού ConfirmPaySocialContribution=Είστε σίγουροι ότι θέλετε να ταξινομήσετε αυτόν τον κοινωνικό ή φορολογικό φόρο ως πληρωμένο; -ConfirmPayVAT=Είστε βέβαιοι ότι θέλετε να κατατάξετε αυτήν τη δήλωση ΦΠΑ ως πληρωμένη; -ConfirmPaySalary=Είστε βέβαιοι ότι θέλετε να ταξινομήσετε αυτήν την καρτέλα μισθού ως πληρωμένη; +ConfirmPayVAT=Είστε σίγουροι ότι θέλετε να Ταξινομήσετε αυτήν τη δήλωση ΦΠΑ ως πληρωμένη; +ConfirmPaySalary=Είστε σίγουροι ότι θέλετε να ταξινομήσετε αυτήν την καρτέλα μισθού ως πληρωμένη; DeleteSocialContribution=Διαγραφή Κοινωνικής/Φορολογικής εισφοράς DeleteVAT=Διαγραφή δήλωσης ΦΠΑ DeleteSalary=Διαγραφή καρτέλας μισθού @@ -152,58 +154,58 @@ ConfirmDeleteVAT=Είστε σίγουροι ότι θέλετε να διαγρ ConfirmDeleteSalary=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον μισθό; ConfirmDeleteVariousPayment=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη πληρωμή; ExportDataset_tax_1=Κοινωνικές/Φορολογικές εισφορές και πληρωμές -CalcModeVATDebt=Κατάσταση %sΦΠΑ επί των λογιστικών υποχρεώσεων%s -CalcModeVATEngagement=Κατάσταση %sΦΠΑ επί των εσόδων-έξοδα%s. -CalcModeDebt=Ανάλυση των καταγεγραμμένων συναλλαγών ακόμα και αν δεν έχουν καταχωρηθεί στο λογιστικό βιβλίο -CalcModeEngagement=Ανάλυση γνωστών καταγεγραμμένων πληρωμών, ακόμη και αν δεν έχουν ακόμη καταλογιστεί στο Ledger. -CalcModeBookkeeping=Ανάλυση δεδομένων που έχουν καταχωρηθεί στον πίνακα Λογαριασμού Λογιστηρίου. +CalcModeVATDebt=Λειτουργία %sΦΠΑ επί την λογιστική δέσμευσης%s +CalcModeVATEngagement=Λειτουργία %sΦΠΑ επί των εσόδων-έξοδων%s. +CalcModeDebt=Ανάλυση των καταγεγραμμένων συναλλαγών ακόμα και αν δεν έχουν καταχωρηθεί στο Καθολικό. +CalcModeEngagement=Ανάλυση γνωστών καταγεγραμμένων πληρωμών, ακόμη και αν δεν έχουν ακόμη καταχωρηθεί στο Καθολικό. +CalcModeBookkeeping=Ανάλυση δεδομένων που καταχωρήθηκαν στον πίνακα λογιστικής καθολικού. CalcModeLT1= Λειτουργία %sRE στα τιμολόγια πελατών - τιμολόγια προμηθευτών%s CalcModeLT1Debt=Λειτουργία %sRE στα τιμολόγια των πελατών%s (Αφορά φορολογικούς συντελεστές του Ισπανικού κράτους) CalcModeLT1Rec= Λειτουργία %sRE στα τιμολόγια των προμηθευτών%s (Αφορά φορολογικούς συντελεστές του Ισπανικού κράτους) CalcModeLT2= Λειτουργία %sIRPF στα τιμολόγια πελατών - τιμολόγια προμηθευτών%s (Αφορά φορολογικούς συντελεστές του Ισπανικού κράτους) CalcModeLT2Debt=Λειτουργία %sIRPF στα τιμολόγια των πελατών%s (Αφορά φορολογικούς συντελεστές του Ισπανικού κράτους) CalcModeLT2Rec= Λειτουργία %sIRPF στα τιμολόγια των προμηθευτών%s (Αφορά φορολογικούς συντελεστές του Ισπανικού κράτους) -AnnualSummaryDueDebtMode=Υπόλοιπο των εσόδων και εξόδων, ετήσια σύνοψη -AnnualSummaryInputOutputMode=Υπόλοιπο των εσόδων και εξόδων, ετήσια σύνοψη +AnnualSummaryDueDebtMode=Ισοζύγιο εσόδων και εξόδων, ετήσια σύνοψη +AnnualSummaryInputOutputMode=Ισοζύγιο εσόδων και εξόδων, ετήσια σύνοψη AnnualByCompanies=Ισοζύγιο εσόδων και εξόδων, βάσει προκαθορισμένων ομάδων λογαριασμού AnnualByCompaniesDueDebtMode=Ισοζύγιο εσόδων και εξόδων, λεπτομέρεια κατά προκαθορισμένες ομάδες, τρόπος %sClaims-Debts%s δήλωσε τη λογιστική δέσμευσης . -AnnualByCompaniesInputOutputMode=Ισοζύγιο εσόδων και εξόδων, λεπτομέρεια κατά προκαθορισμένες ομάδες, τρόπος %sIncomes-Expenses%s δήλωσε ταμειακή λογιστική . +AnnualByCompaniesInputOutputMode=Ισοζύγιο εσόδων και εξόδων, λεπτομέρεια κατά προκαθορισμένες ομάδες, τρόπος %sΈσοδα-Έξοδα%s δήλωσε ταμειακή λογιστική . SeeReportInInputOutputMode=Δείτε την %sανάλυση των πληρωμών%s για έναν υπολογισμό που βασίζεται στις καταγεγραμμενες πληρωμές ακόμη και αν δεν έχουν καταγραφεί ακόμη στο Καθολικό -SeeReportInDueDebtMode=Δείτε την %sανάλυση των καταγεγραμμένων εγγράφων%s για έναν υπολογισμό που βασίζεται σε γνωστάκαταγεγραμμένα έγγραφα ακόμη και αν δεν έχουν καταγραφεί ακόμη στο Καθολικό +SeeReportInDueDebtMode=Δείτε την %sανάλυση των καταγεγραμμένων εγγράφων%s για έναν υπολογισμό που βασίζεται στα γνωστάκαταγεγραμμένα έγγραφα ακόμη και αν δεν έχουν καταγραφεί ακόμη στο Καθολικό SeeReportInBookkeepingMode=Δείτε την %sανάλυση του λογιστικού πίνακα καθολικού%s για μια αναφορά που βασίζεται στονΛογιστικό πίνακα Καθολικού -RulesAmountWithTaxIncluded=- Amounts shown are with all taxes included +RulesAmountWithTaxIncluded=- Στα ποσά που εμφανίζονται περιλαμβάνονται όλοι οι φόροι RulesAmountWithTaxExcluded=- Τα ποσά των τιμολογίων που εμφανίζονται δεν συμπεριλαμβάνουν Φ.Π.Α. RulesResultDue=- Περιλαμβάνει όλα τα τιμολόγια, έξοδα, ΦΠΑ, δωρεές, μισθούς, είτε πληρώνονται είτε όχι.
- Βασίζεται στην ημερομηνία τιμολόγησης των τιμολογίων και στην ημερομηνία λήξης για έξοδα ή πληρωμές φόρων. Για τους μισθούς χρησιμοποιείται η ημερομηνία λήξης της περιόδου. -RulesResultInOut=- Περιλαμβάνει τις πραγματικές πληρωμές σε τιμολόγια, έξοδα, ΦΠΑ και μισθούς.
- Βασίζεται στις ημερομηνίες πληρωμής των τιμολογίων, εξόδων, ΦΠΑ, δωρεών και μισθών. -RulesCADue=- Περιλαμβάνει τα οφειλόμενα τιμολόγια του πελάτη, είτε πληρώνονται είτε όχι.
- Βασίζεται στην ημερομηνία χρέωσης αυτών των τιμολογίων.
-RulesCAIn=- Περιλαμβάνει όλες τις πραγματικές πληρωμές τιμολογίων που εισπράττονται από πελάτες.
- Βασίζεται στην ημερομηνία πληρωμής αυτών των τιμολογίων
-RulesCATotalSaleJournal=Περιλαμβάνει όλες τις πιστωτικές γραμμές από το περιοδικό Sale. +RulesResultInOut=- Περιλαμβάνει τις πραγματικές πληρωμές σε τιμολόγια, έξοδα, Φ.Π.Α. και μισθούς.
- Βασίζεται στις ημερομηνίες πληρωμής των τιμολογίων, εξόδων, Φ.Π.Α., δωρεών και μισθών. +RulesCADue=- Περιλαμβάνει τα οφειλόμενα τιμολόγια του πελάτη, είτε πληρώνονται είτε όχι.
- Είναι Βασισμένο στην ημερομηνία χρέωσης αυτών των τιμολογίων.
+RulesCAIn=- Περιλαμβάνει όλες τις πραγματικές πληρωμές τιμολογίων που εισπράχθηκαν από πελάτες.
- Είναι Βασισμένο στην ημερομηνία πληρωμής αυτών των τιμολογίων
+RulesCATotalSaleJournal=Περιλαμβάνει όλες τις πιστωτικές γραμμές από το Ημερολόγιο Πωλήσεων. RulesSalesTurnoverOfIncomeAccounts=Περιλαμβάνει (πίστωση - χρέωση) γραμμών για λογαριασμούς προϊόντων στην ομάδα ΕΣΟΔΑ -RulesAmountOnInOutBookkeepingRecord=Περιλαμβάνει την εγγραφή στον Λογαριασμό σας με Λογαριασμούς Λογαριασμού που έχει την ομάδα "ΕΞΟΔΑ" ή "ΕΙΣΟΔΟΣ" -RulesResultBookkeepingPredefined=Περιλαμβάνει την εγγραφή στον Λογαριασμό σας με Λογαριασμούς Λογαριασμού που έχει την ομάδα "ΕΞΟΔΑ" ή "ΕΙΣΟΔΟΣ" -RulesResultBookkeepingPersonalized=Εμφανίζει ρεκόρ στο Λογαριασμό σας με λογαριασμούς λογαριασμών ομαδοποιημένους από εξατομικευμένες ομάδες +RulesAmountOnInOutBookkeepingRecord=Περιλαμβάνει εγγραφή στο Καθολικό σας με λογιστικούς λογαριασμούς που έχουν την ομάδα "ΕΞΟΔΑ" ή "ΕΣΟΔΑ" +RulesResultBookkeepingPredefined=Περιλαμβάνει εγγραφή στο Καθολικό σας με λογιστικούς λογαριασμούς που έχουν την ομάδα "ΕΞΟΔΑ" ή "ΕΣΟΔΑ" +RulesResultBookkeepingPersonalized=Εμφανίζει εγγραφές στο Καθολικό σας με λογιστικούς λογαριασμούς ομαδοποιημένους κατά εξατομικευμένες ομάδες SeePageForSetup=Δείτε το μενού %s για τη ρύθμιση -DepositsAreNotIncluded=- Δεν συμπεριλαμβάνονται τα τιμολόγια για τις προκαταβολές -DepositsAreIncluded=- Down payment invoices are included +DepositsAreNotIncluded=- Δεν συμπεριλαμβάνονται οι αποδείξεις προκαταβολών +DepositsAreIncluded=- Συμπεριλαμβάνονται και οι αποδείξεις προκαταβολών LT1ReportByMonth=Αναφορά φόρου 2 ανά μήνα LT2ReportByMonth=Αναφορά φόρου 3 ανά μήνα -LT1ReportByCustomers=Αναφέρετε τον φόρο 2 από τρίτους -LT2ReportByCustomers=Αναφορά φόρου 3 από τρίτους +LT1ReportByCustomers=Αναφορά φόρου 2 ανά τρίτο μέρος +LT2ReportByCustomers=Αναφορά φόρου 3 ανά τρίτο μέρος LT1ReportByCustomersES=Αναφορά Πελ./Προμ. RE -LT2ReportByCustomersES=Έκθεση του τρίτου IRPF -VATReport=Έκθεση φόρου επί των πωλήσεων -VATReportByPeriods=Έκθεση φόρου επί των πωλήσεων ανά περίοδο -VATReportByMonth=Έκθεση φόρου επί των πωλήσεων ανά μήνα -VATReportByRates=Έκθεση φόρου επί των πωλήσεων ανα συντελεστή -VATReportByThirdParties=Έκθεση φόρου επί των πωλήσεων ανά τρίτο μέρος -VATReportByCustomers=Έκθεση φόρου επί των πωλήσεων ανά πελάτη -VATReportByCustomersInInputOutputMode=Αναφορά από τον ΦΠΑ των πελατών εισπράττεται και καταβάλλεται -VATReportByQuartersInInputOutputMode=Αναφορά κατά συντελεστή φόρου επί των πωλήσεων του φόρου που εισπράχθηκε και καταβλήθηκε +LT2ReportByCustomersES=Αναφορά ανά τρίτο μέρος IRPF +VATReport=Αναφορά φόρου πωλήσεων +VATReportByPeriods=Αναφορά φόρου πωλήσεων ανά περίοδο +VATReportByMonth=Αναφορά φόρου πωλήσεων ανά μήνα +VATReportByRates=Αναφορά φόρου πωλήσεων ανά συντελεστή +VATReportByThirdParties=Αναφορά φόρου πωλήσεων ανά τρίτο μέρος +VATReportByCustomers=Αναφορά φόρου πωλήσεων ανά πελάτη +VATReportByCustomersInInputOutputMode=Αναφορά ανά Φ.Π.Α. πελάτη που εισπράχθηκε και καταβλήθηκε +VATReportByQuartersInInputOutputMode=Αναφορά ανά συντελεστή φόρου πωλήσεων που εισπράχθηκε και καταβλήθηκε VATReportShowByRateDetails=Εμφάνιση λεπτομερειών αυτού του συντελεστή -LT1ReportByQuarters=Αναφέρετε τον φόρο 2 με βάση την τιμή -LT2ReportByQuarters=Αναφέρετε τον φόρο 3 με βάση την τιμή -LT1ReportByQuartersES=Αναφορά με ποσοστό RE -LT2ReportByQuartersES=Αναφορά IRPF επιτόκιο +LT1ReportByQuarters=Αναφορά φόρου 2 με βάση την τιμή +LT2ReportByQuarters=Αναφορά φόρου 3 με βάση την τιμή +LT1ReportByQuartersES=Αναφορά ανά ποσοστό RE +LT2ReportByQuartersES=Αναφορά ανά ποσοστό IRPF SeeVATReportInInputOutputMode=Δείτε την αναφορά %s είσπραξης Φ.Π.Α.%s για έναν τυπικό υπολογισμό SeeVATReportInDueDebtMode=Δείτε την αναφορά %sΦ.Π.Α. χρεώσεων%s για έναν υπολογισμό με δυνατότητα επιλογής στην τιμολόγηση RulesVATInServices=- Για τις υπηρεσίες, η αναφορά περιλαμβάνει τον ΦΠΑ των πληρωμών που πράγματι εισπράχθηκαν ή καταβλήθηκαν με βάση την ημερομηνία πληρωμής. @@ -214,21 +216,21 @@ OptionVatInfoModuleComptabilite=Σημείωση: Για τα υλικά περ ThisIsAnEstimatedValue=Αυτή είναι μια προεπισκόπηση, που βασίζεται σε επαγγελματικά συμβάντα και όχι από τον τελικό πίνακα του καθολικού, επομένως τα τελικά αποτελέσματα ενδέχεται να διαφέρουν από αυτές τις τιμές προεπισκόπησης PercentOfInvoice=%%/τιμολόγιο NotUsedForGoods=Δεν γίνεται χρήση σε υλικά αγαθά -ProposalStats=Στατιστικά στοιχεία σχετικά με τις προτάσεις +ProposalStats=Στατιστικά στοιχεία προσφορών OrderStats=Στατιστικά στοιχεία για τις παραγγελίες InvoiceStats=Στατιστικά στοιχεία για τους λογαριασμούς -Dispatch=Dispatching -Dispatched=Dispatched +Dispatch=Αποστολή +Dispatched=Απεσταλμένο ToDispatch=Για αποστολή ThirdPartyMustBeEditAsCustomer=Το τρίτο μέρος πρέπει να ορίζεται ως πελάτης SellsJournal=Ημερολόγιο πωλήσεων PurchasesJournal=Ημερολόγιο Αγορών DescSellsJournal=Ημερολόγιο πωλήσεων DescPurchasesJournal=Ημερολόγιο Αγορών -CodeNotDef=Δεν προσδιορίζεται -WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. -DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. -Pcg_version=Μοντέλα λογιστικού σχεδίου +CodeNotDef=Δεν έχει οριστεί +WarningDepositsNotIncluded=Οι αποδείξεις προκαταβολών δεν περιλαμβάνονται σε αυτήν την έκδοση της ενότητας λογιστικής. +DatePaymentTermCantBeLowerThanObjectDate=Η ημερομηνία προθεσμίας πληρωμής δεν μπορεί να είναι προγενέστερη της ημερομηνίας αντικειμένου. +Pcg_version=Υποδείγματα λογιστικών σχεδίων Pcg_type=Pcg type Pcg_subtype=Pcg subtype InvoiceLinesToDispatch=Γραμμές τιμολογίων για αποστολή @@ -240,21 +242,21 @@ Mode1=Μέθοδος 1 Mode2=Μέθοδος 2 CalculationRuleDesc=Για τον υπολογισμό του συνολικού ΦΠΑ, υπάρχουν δύο μέθοδοι:
Μέθοδος 1 στρογγυλοποίηση του ΦΠΑ σε κάθε γραμμή και, στη συνέχεια, η άθροισή τους.
Μέθοδος 2 άθροιση του ΦΠΑ σε κάθε γραμμή και, στη συνέχεια, στρογγυλοποίηση.
Το τελικό αποτέλεσμα μπορεί να διαφέρει κατά λίγα λεπτά. Προεπιλεγμένη λειτουργία είναι η %s. CalculationRuleDescSupplier=Σύμφωνα με τον προμηθευτή, επιλέξτε κατάλληλη μέθοδο για να εφαρμόσετε τον ίδιο κανόνα υπολογισμού και για να λάβετε το ίδιο αποτέλεσμα που αναμένεται από τον προμηθευτή σας. -TurnoverPerProductInCommitmentAccountingNotRelevant=Η αναφορά κύκλου εργασιών που συλλέγεται ανά προϊόν δεν είναι διαθέσιμη. Αυτή η αναφορά είναι διαθέσιμη μόνο για το τιμολόγιο κύκλου εργασιών. +TurnoverPerProductInCommitmentAccountingNotRelevant=Η αναφορά κύκλου εργασιών που εισπράχθηκε ανά προϊόν δεν είναι διαθέσιμη. Αυτή η αναφορά είναι διαθέσιμη μόνο για τον κύκλο εργασιών τιμολογημένων στοιχείων TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Η αναφορά του κύκλου εργασιών που εισπράχθηκε ανά συντελεστή φόρου πώλησης δεν είναι διαθέσιμη. Αυτή η αναφορά είναι διαθέσιμη μόνο για τιμολογημένο κύκλο εργασιών. CalculationMode=Τρόπος υπολογισμού AccountancyJournal=Ημερολόγιο λογιστικού κώδικα -ACCOUNTING_VAT_SOLD_ACCOUNT=Λογαριασμός λογιστικής από προεπιλογή για Φ.Π.Α. στις πωλήσεις (χρησιμοποιείται αν δεν ορίζεται στη ρύθμιση λεξικού ΦΠΑ) -ACCOUNTING_VAT_BUY_ACCOUNT=Λογαριασμός λογιστικής από προεπιλογή για Φ.Π.Α. στις αγορές (χρησιμοποιείται αν δεν έχει οριστεί στη ρύθμιση λεξικού ΦΠΑ) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Λογιστικός λογαριασμός που χρησιμοποιείται για τρίτους πελάτες -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Ο αποκλειστικός λογιστικός λογαριασμός που ορίζεται σε κάρτα τρίτου μέρους θα χρησιμοποιηθεί μόνο για τη λογιστική της Subledger. Αυτός θα χρησιμοποιηθεί για τη Γενική Λογιστική και ως προεπιλεγμένη αξία της λογιστικής Subledger, εάν δεν έχει οριστεί ειδικό λογαριασμός λογιστικής πελάτη σε τρίτους. -ACCOUNTING_ACCOUNT_SUPPLIER=Λογαριασμός λογιστικής που χρησιμοποιείται για τους τρίτους προμηθευτές -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Ο αποκλειστικός λογιστικός λογαριασμός που ορίζεται σε κάρτα τρίτου μέρους θα χρησιμοποιηθεί μόνο για τη λογιστική της Subledger. Αυτός θα χρησιμοποιηθεί για τη Γενική Λογιστική και ως προεπιλεγμένη αξία της λογιστικής της Subleger εάν δεν έχει καθοριστεί ο λογαριασμός λογιστικής αποκλειστικής προμήθειας σε τρίτους. -ConfirmCloneTax=Επιβεβαιώστε τον κλώνο ενός κοινωνικού / φορολογικού φόρου -ConfirmCloneVAT=Επιβεβαιώστε τον κλώνο μιας δήλωσης ΦΠΑ -ConfirmCloneSalary=Επιβεβαιώστε τον κλώνο ενός μισθού -CloneTaxForNextMonth=Clone it for next month +ACCOUNTING_VAT_SOLD_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τον ΦΠΑ επί των πωλήσεων (χρησιμοποιείται εάν δεν ορίζεται στη ρύθμιση του λεξικού ΦΠΑ) +ACCOUNTING_VAT_BUY_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως ο προεπιλεγμένος λογαριασμός για τον ΦΠΑ στις αγορές (χρησιμοποιείται εάν δεν ορίζεται στη ρύθμιση λεξικού ΦΠΑ) +ACCOUNTING_VAT_PAY_ACCOUNT=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί ως προεπιλεγμένος λογαριασμός για την πληρωμή ΦΠΑ +ACCOUNTING_ACCOUNT_CUSTOMER=Λογαριασμός (από το Λογιστικό Σχέδιο) που χρησιμοποιείται για τρίτους "πελάτες". +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Ο αποκλειστικός λογιστικός λογαριασμός που ορίζεται στην κάρτα τρίτων θα χρησιμοποιηθεί μόνο για τη λογιστική Βοηθητικού καθολικού. Αυτό θα χρησιμοποιηθεί για το Γενικό Καθολικό και ως προεπιλεγμένη τιμή της λογιστικής Βοηθητικού καθολικού εάν δεν έχει καθοριστεί αποκλειστικός λογιστικός λογαριασμός πελάτη σε τρίτο μέρος. +ACCOUNTING_ACCOUNT_SUPPLIER=Λογαριασμός (από το Λογιστικό Σχέδιο) που χρησιμοποιείται για τους τρίτους "προμηθευτές" +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Ο αποκλειστικός λογιστικός λογαριασμός που ορίζεται στην στην καρτέλα τρίτου μέρους θα χρησιμοποιηθεί μόνο για τη λογιστική του Βοηθητικού καθολικού. Αυτό θα χρησιμοποιηθεί για το Γενικό Καθολικό και ως προεπιλεγμένη τιμή της λογιστικής του Βοηθητικού καθολικού εάν δεν έχει καθοριστεί αποκλειστικός λογιστικός λογαριασμός προμηθευτή στο τρίτο μέρος. +ConfirmCloneTax=Επιβεβαιώστε την αντιγραφή ενός κοινωνικού / φορολογικού φόρου +ConfirmCloneVAT=Επιβεβαιώστε την αντιγραφή μιας δήλωσης ΦΠΑ +ConfirmCloneSalary=Επιβεβαιώστε την αντιγραφή ενός μισθού +CloneTaxForNextMonth=Αντιγραφή για επόμενο μήνα SimpleReport=Απλή αναφορά AddExtraReport=Επιπλέον αναφορές (προσθήκη αναφοράς ξένων και εθνικών πελατών) OtherCountriesCustomersReport=Αναφορά για πελάτες εξωτερικού @@ -270,8 +272,8 @@ ListSocialContributionAssociatedProject=Λίστα κοινωνικών εισφ DeleteFromCat=Κατάργηση από τη λογιστική ομάδα AccountingAffectation=Λογιστική κατανομή LastDayTaxIsRelatedTo=Τελευταία ημέρα της περιόδου με την οποία ο φόρος σχετίζεται -VATDue=Φόρος πωλήσεων που αξιώνεται -ClaimedForThisPeriod=Ισχυρίζεται για την περίοδο +VATDue=Φόρος πωλήσεων που αξιώθηκε +ClaimedForThisPeriod=Αξίωση για την περίοδο PaidDuringThisPeriod=Πληρώθηκε για αυτήν την περίοδο PaidDuringThisPeriodDesc=Αυτό είναι το άθροισμα όλων των πληρωμών που συνδέονται με δηλώσεις ΦΠΑ που έχουν ημερομηνία λήξης περιόδου στο επιλεγμένο εύρος ημερομηνιών ByVatRate=Με φορολογικό συντελεστή πώλησης diff --git a/htdocs/langs/el_GR/contracts.lang b/htdocs/langs/el_GR/contracts.lang index 0b3d4a3c755..31cc7d184ca 100644 --- a/htdocs/langs/el_GR/contracts.lang +++ b/htdocs/langs/el_GR/contracts.lang @@ -1,107 +1,107 @@ # Dolibarr language file - Source file is en_US - contracts -ContractsArea=Περιοχή Συμβολαίων -ListOfContracts=Λίστα Συμβολαίων -AllContracts=Όλα τα συμβόλαια -ContractCard=Καρτέλα Συμβολαίου -ContractStatusNotRunning=Σε αργία +ContractsArea=Τομέας συμβάσεων +ListOfContracts=Λίστα συμβάσεων +AllContracts=Όλες οι συμβάσεις +ContractCard=Καρτέλα Σύμβασης +ContractStatusNotRunning=Ανενεργή ContractStatusDraft=Προσχέδιο ContractStatusValidated=Επικυρώθηκε -ContractStatusClosed=Έκλεισε -ServiceStatusInitial=Σε αργία -ServiceStatusRunning=Σε εξέλιξη -ServiceStatusNotLate=Σε εξέλιξη, δεν έχει λήξει +ContractStatusClosed=Τερματισμένη +ServiceStatusInitial=Ανενεργή +ServiceStatusRunning=Ενεργή +ServiceStatusNotLate=Ενεργή, δεν έχει λήξει ServiceStatusNotLateShort=Δεν έχει λήξει -ServiceStatusLate=Σε εξέλιξη, Έληξε +ServiceStatusLate=Ενεργή, Έληξε ServiceStatusLateShort=Έληξε -ServiceStatusClosed=Έκλεισε -ShowContractOfService=Show contract of service -Contracts=Συμβόλαια +ServiceStatusClosed=Τερματισμένη +ShowContractOfService=Εμφάνιση σύμβασης υπηρεσιών +Contracts=Συμβάσεις ContractsSubscriptions=Συμβάσεις/Συνδρομές -ContractsAndLine=Συμβόλαια και η γραμμή των συμβολαίων -Contract=Συμβόλαιο -ContractLine=Γραμμή επαφής -ContractLines=Γραμμές συμβολαίων -Closing=Κλείσιμο -NoContracts=Κανένα Συμβόλαιο +ContractsAndLine=Συμβάσεις και γραμμή των συμβάσεων +Contract=Σύμβαση +ContractLine=Γραμμή σύμβασης +ContractLines=Γραμμές συμβάσεων +Closing=Τερματισμός +NoContracts=Καμιά Σύμβαση MenuServices=Υπηρεσίες MenuInactiveServices=Ανενεργές Υπηρεσίες MenuRunningServices=Ενεργές Υπηρεσίες MenuExpiredServices=Ληγμένες Υπηρεσίες MenuClosedServices=Τερματισμένες Υπηρεσίες -NewContract=Νέο Συμβόλαιο -NewContractSubscription=Νέο συμβόλαιο ή συνδρομή +NewContract=Νέα σύμβαση +NewContractSubscription=Νέα σύμβαση ή συνδρομή AddContract=Δημιουργία σύμβασης -DeleteAContract=Διαγραφή Συμβολαίου -ActivateAllOnContract=Ενεργοποιήστε όλες τις υπηρεσίες -CloseAContract=Τερματισμός Συμβολαίου -ConfirmDeleteAContract=Είστε σίγουροι πως θέλετε να διαγράψετε αυτό το συμβόλαιο και όλες τις υπηρεσίες του; -ConfirmValidateContract=Are you sure you want to validate this contract under name %s? -ConfirmActivateAllOnContract=Αυτό θα ανοίξει όλες τις υπηρεσίες (δεν είναι ακόμα ενεργές). Είστε βέβαιοι ότι θέλετε να ανοίξετε όλες τις υπηρεσίες; -ConfirmCloseContract=Αυτό θα κλείσει όλες τις υπηρεσίες (που έχουν λήξει ή όχι). Είστε σίγουροι ότι θέλετε να κλείσετε αυτό το συμβόλαιο; -ConfirmCloseService=Are you sure you want to close this service with date %s? -ValidateAContract=Επικύρωση συμβολαίου +DeleteAContract=Διαγραφή Σύμβασης +ActivateAllOnContract=Ενεργοποίηση όλων των υπηρεσιών +CloseAContract=Τερματισμός Σύμβασης +ConfirmDeleteAContract=Είστε σίγουροι πως θέλετε να διαγράψετε αυτή τη σύμβαση και όλες τις υπηρεσίες αυτής; +ConfirmValidateContract=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτή τη σύμβαση υπό το όνομα %s? +ConfirmActivateAllOnContract=Αυτό θα εκκινήσει όλες τις υπηρεσίες (που δεν είναι ακόμα ενεργές). Είστε σίγουροι ότι θέλετε να εκκινήσετε όλες τις υπηρεσίες; +ConfirmCloseContract=Αυτό θα τερματίσει όλες τις υπηρεσίες (ενεργές και μη). Είστε σίγουροι ότι θέλετε να διακόψετε αυτή τη σύμβαση; +ConfirmCloseService=Είστε σίγουροι ότι θέλετε να τερματίσετε αυτήν την υπηρεσία με ημερομηνία %s ; +ValidateAContract=Επικύρωση σύμβασης ActivateService=Ενεργοποίηση Υπηρεσίας -ConfirmActivateService=Are you sure you want to activate this service with date %s? -RefContract=Αναφορά συμβολαίου -DateContract=Ημερομηνία συμβολαίου +ConfirmActivateService=Είστε σίγουροι ότι θέλετε να ενεργοποιήσετε αυτήν την υπηρεσία με ημερομηνία %s? +RefContract=Αναφορά σύμβασης +DateContract=Ημερομηνία σύμβασης DateServiceActivate=Ημερομηνία ενεργοποίησης υπηρεσίας ListOfServices=Λίστα υπηρεσιών ListOfInactiveServices=Λίστα μη ενεργών υπηρεσιών -ListOfExpiredServices=Λίστα εκπρόθεσμων ενεργών υπηρεσιών -ListOfClosedServices=Λίστα κλεισμένων υπηρεσιών -ListOfRunningServices=Λίστα τρέχουσων υπηρεσιών -NotActivatedServices=Inactive services (among validated contracts) +ListOfExpiredServices=Λίστα ενεργών υπηρεσιών που έχουν λήξει +ListOfClosedServices=Λίστα τερματισμένων υπηρεσιών +ListOfRunningServices=Λίστα ενεργών υπηρεσιών +NotActivatedServices=Ανενεργές υπηρεσίες (μεταξύ των επικυρωμένων συμβάσεων) BoardNotActivatedServices=Υπηρεσίες προς ενεργοποίηση σε επικυρωμένα συμβόλαια -BoardNotActivatedServicesShort=Υπηρεσίες για ενεργοποίηση -LastContracts=Τελευταία %s Συμβόλαια +BoardNotActivatedServicesShort=Υπηρεσίες προς ενεργοποίηση +LastContracts=Τελευταίες %s συμβάσεις LastModifiedServices=Τελευταίες %s τροποποιημένες υπηρεσίες -ContractStartDate=Ημερ. έναρξης -ContractEndDate=Ημερ. τέλους -DateStartPlanned=Planned start date -DateStartPlannedShort=Planned start date -DateEndPlanned=Planned end date -DateEndPlannedShort=Planned end date -DateStartReal=Real start date -DateStartRealShort=Real start date -DateEndReal=Real end date -DateEndRealShort=Real end date -CloseService=Close service -BoardRunningServices=Υπηρεσίες που εκτελούνται -BoardRunningServicesShort=Υπηρεσίες που εκτελούνται -BoardExpiredServices=Οι υπηρεσίες έληξαν -BoardExpiredServicesShort=Οι υπηρεσίες έληξαν +ContractStartDate=Ημερομηνία έναρξης +ContractEndDate=Ημερομηνία λήξης +DateStartPlanned=Προγραμματισμένη ημερομηνία έναρξης +DateStartPlannedShort=Προγραμματισμένη ημερομηνία έναρξης +DateEndPlanned=Προγραμματισμένη ημερομηνία λήξης +DateEndPlannedShort=Προγραμματισμένη ημερομηνία λήξης +DateStartReal=Πραγματική ημερομηνία έναρξης +DateStartRealShort=Πραγματική ημερομηνία έναρξης +DateEndReal=Πραγματική ημερομηνία λήξης +DateEndRealShort=Πραγματική ημερομηνία λήξης +CloseService=Τερματισμός υπηρεσίας +BoardRunningServices=Ενεργές υπηρεσίες +BoardRunningServicesShort=Ενεργές υπηρεσίες +BoardExpiredServices=Ληγμένες υπηρεσίες +BoardExpiredServicesShort=Ληγμένες υπηρεσίες ServiceStatus=Κατάσταση υπηρεσίας -DraftContracts=Προσχέδια συμβολαίων -CloseRefusedBecauseOneServiceActive=Η σύμβαση δεν μπορεί να κλείσει καθώς υπάρχει τουλάχιστον μία ανοικτή υπηρεσία σε αυτήν -ActivateAllContracts=Ενεργοποιήστε όλες τις γραμμές συμβάσεων -CloseAllContracts=Close all contract lines -DeleteContractLine=Delete a contract line -ConfirmDeleteContractLine=Are you sure you want to delete this contract line? -MoveToAnotherContract=Move service into another contract. -ConfirmMoveToAnotherContract=I choosed new target contract and confirm I want to move this service into this contract. -ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Renew contract line (number %s) -ExpiredSince=Expiration date -NoExpiredServices=Δεν έληξε ενεργές υπηρεσίες -ListOfServicesToExpireWithDuration=Λίστα των Υπηρεσιών λήγει σε %s ημέρες -ListOfServicesToExpireWithDurationNeg=Κατάλογος των υπηρεσιών έληξε από περισσότερες, από %s ημέρες -ListOfServicesToExpire=Κατάλογος Υπηρεσιών προς λήξει -NoteListOfYourExpiredServices=Αυτή η λίστα περιέχει μόνο τις υπηρεσίες των συμβάσεων για λογαριασμό ΠΕΛ./ΠΡΟΜ. που συνδέονται ως εκπρόσωπος πώληση. -StandardContractsTemplate=Οι πρότυπες συμβάσεις -ContactNameAndSignature=Για %s, το όνομα και η υπογραφή: +DraftContracts=Προσχέδια συμβάσεων +CloseRefusedBecauseOneServiceActive=Η σύμβαση δεν μπορεί να κλείσει καθώς υπάρχει τουλάχιστον μία ενεργή υπηρεσία σε αυτήν +ActivateAllContracts=Ενεργοποίηση όλων των γραμμών συμβάσεων +CloseAllContracts=Διακοπή όλων των γραμμών συμβάσεων +DeleteContractLine=Διαγραφή γραμμής σύμβασης +ConfirmDeleteContractLine=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη γραμμή σύμβασης; +MoveToAnotherContract=Μεταφορά υπηρεσίας σε άλλη σύμβαση +ConfirmMoveToAnotherContract=Επέλεξα νέα σύμβαση και επιβεβαιώνω ότι θέλω να μεταφέρω αυτήν την υπηρεσία σε αυτήν. +ConfirmMoveToAnotherContractQuestion=Επιλέξτε σε ποια υπάρχουσα σύμβαση (του ίδιου πελάτη), θέλετε να μεταφέρετε αυτήν την υπηρεσία; +PaymentRenewContractId=Ανανέωση σύμβασης %s (υπηρεσία %s) +ExpiredSince=Ημερομηνία λήξης +NoExpiredServices=Δεν υπάρχουν ενεργές υπηρεσίες που έχουν λήξει +ListOfServicesToExpireWithDuration=Λίστα Υπηρεσιών που λήγουν σε %s ημέρες +ListOfServicesToExpireWithDurationNeg=Υπηρεσίες που έχουν λήξει πάνω από, %s ημέρες +ListOfServicesToExpire=Λίστα υπηρεσιών προς λήξη +NoteListOfYourExpiredServices=Αυτή η λίστα περιέχει μόνο τις υπηρεσίες των συμβάσεων για τρίτα μέρη στα οποία είστε εκπρόσωποι πωλήσεων. +StandardContractsTemplate=Πρότυπο τυπικών συμβάσεων +ContactNameAndSignature=Για %s, όνομα και υπογραφή: OnlyLinesWithTypeServiceAreUsed=Μόνο εγγραφές τύπου "Υπηρεσία" θα αντιγραφούν. -ConfirmCloneContract=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε τη σύμβαση %s ; -LowerDateEndPlannedShort=Χαμηλότερη προγραμματισμένη ημερομηνία λήξης των ενεργών υπηρεσιών +ConfirmCloneContract=Είστε σίγουροι ότι θέλετε να αντιγράψετε τη σύμβαση %s ; +LowerDateEndPlannedShort=Κατώτερη προγραμματισμένη ημερομηνία λήξης των ενεργών υπηρεσιών SendContractRef=Στοιχεία σύμβασης __REF__ OtherContracts=Άλλες συμβάσεις ##### Types de contacts ##### -TypeContact_contrat_internal_SALESREPSIGN=Σύμβαση πώλησης υπογραφή εκπροσώπου -TypeContact_contrat_internal_SALESREPFOLL=Πωλήσεις εκπρόσωπος παρακολούθηση των συμβάσεων -TypeContact_contrat_external_BILLING=Χρέωση επαφή με τον πελάτη -TypeContact_contrat_external_CUSTOMER=Παρακολούθηση της επαφής με τον πελάτη -TypeContact_contrat_external_SALESREPSIGN=Υπογραφή σύμβασης επαφή με τον πελάτη -HideClosedServiceByDefault=Απόκρυψη κλειστών υπηρεσιών από προεπιλογή -ShowClosedServices=Εμφάνιση κλειστών υπηρεσιών -HideClosedServices=Απόκρυψη κλειστών υπηρεσιών -UserStartingService=Εκκίνηση υπηρεσίας χρήστη -UserClosingService=Κλείσιμο υπηρεσίας χρήστη +TypeContact_contrat_internal_SALESREPSIGN=Εκπρόσωπος πωλήσεων αρμόδιος για την υπογραφή της σύμβασης +TypeContact_contrat_internal_SALESREPFOLL=Εκπρόσωπος πωλήσεων υπεύθυνος για τη σύμβαση +TypeContact_contrat_external_BILLING=Επαφή λογιστηρίου πελάτη +TypeContact_contrat_external_CUSTOMER=Επαφή περαιτέρω επικοινωνίας με τον πελάτη +TypeContact_contrat_external_SALESREPSIGN=Επαφή για την υπογραφή σύμβασης με τον πελάτη +HideClosedServiceByDefault=Απόκρυψη τερματισμένων υπηρεσιών από προεπιλογή +ShowClosedServices=Εμφάνιση τερματισμένων υπηρεσιών +HideClosedServices=Απόκρυψη τερματισμένων υπηρεσιών +UserStartingService=Χρήστης που εκκίνησε την υπηρεσία +UserClosingService=Χρήστης που τερμάτισε την υπηρεσία diff --git a/htdocs/langs/el_GR/cron.lang b/htdocs/langs/el_GR/cron.lang index 9959bf37d38..9d006be9a8f 100644 --- a/htdocs/langs/el_GR/cron.lang +++ b/htdocs/langs/el_GR/cron.lang @@ -1,75 +1,75 @@ # Dolibarr language file - Source file is en_US - cron # About page # Right -Permission23101 = Λεπτομέρειες προγραμματισμένης εργασίας +Permission23101 = Ανάγνωση Προγραμματισμένης εργασίας Permission23102 = Δημιουργία/ενημέρωση προγραμματισμένης εργασίας Permission23103 = Διαγραφή προγραμματισμένης εργασίας Permission23104 = Εκτέλεση προγραμματισμένης εργασίας # Admin -CronSetup=Προγραμματισμένη ρύθμιση διαχείρισης των εργασιών +CronSetup=Ρύθμιση διαχείρισης προγραμματισμένων εργασιών URLToLaunchCronJobs=URL για να ελέγξετε και να ξεκινήσετε τις κατάλληλες εργασίες cron από ένα πρόγραμμα περιήγησης OrToLaunchASpecificJob=Ή για να ελέγξετε και να ξεκινήσετε μια συγκεκριμένη εργασία από ένα πρόγραμμα περιήγησης KeyForCronAccess=Κλειδί ασφαλείας για το URL για να ξεκινήσει η εργασία cron FileToLaunchCronJobs=Γραμμή εντολών για έλεγχο και εκκίνηση ειδικών εργασιών cron -CronExplainHowToRunUnix=Στο Unix περιβάλλον θα πρέπει να χρησιμοποιήσετε την ακόλουθη καταχώρηση crontab για να τρέχει η γραμμή εντολών καθένα 5 λεπτά -CronExplainHowToRunWin=Στο περιβάλλον Microsoft (tm) των Windows μπορείτε να χρησιμοποιήσετε τα εργαλεία προγραμματισμένης εργασίας για να εκτελέσετε τη γραμμή εντολών κάθε 5 λεπτά -CronMethodDoesNotExists=Class %s does not contains any method %s +CronExplainHowToRunUnix=Στο περιβάλλον Unix θα πρέπει να χρησιμοποιήσετε την ακόλουθη καταχώρηση crontab για να εκτελείτε τη γραμμή εντολών κάθε 5 λεπτά +CronExplainHowToRunWin=Στο περιβάλλον των Microsoft (tm) Windows μπορείτε να χρησιμοποιήσετε τα εργαλεία προγραμματισμένης εργασίας για να εκτελέσετε τη γραμμή εντολών κάθε 5 λεπτά +CronMethodDoesNotExists=Η κλάση %s δεν περιέχει καμία μέθοδο %s CronMethodNotAllowed=Η μέθοδος %s της κλάσης %s βρίσκεται στη μαύρη λίστα των απαγορευμένων μεθόδων -CronJobDefDesc=Τα προφίλ εργασίας Cron ορίζονται στο αρχείο περιγραφικής ενότητας. Όταν η ενότητα είναι ενεργοποιημένη, φορτώνεται και είναι διαθέσιμη, ώστε να μπορείτε να διαχειριστείτε τις εργασίες από το μενού εργαλείων admin %s. -CronJobProfiles=Λίστα προκαθορισμένων προφίλ εργασίας cron +CronJobDefDesc=Τα προφίλ εργασίας Cron ορίζονται στο αρχείο παραμετροποιήσεων της ενότητας. Όταν η ενότητα είναι ενεργοποιημένη, φορτώνονται και είναι διαθέσιμες, ώστε να μπορείτε να διαχειριστείτε τις εργασίες από το μενού Εργαλεία διαχειριστή %s. +CronJobProfiles=Λίστα προκαθορισμένων προφίλ εργασιών cron # Menu -EnabledAndDisabled=Ενεργοποίηση και απενεργοποίηση +EnabledAndDisabled=Ενεργοποιημένες και απενεργοποιημένες # Page list -CronLastOutput=Latest run output -CronLastResult=Latest result code +CronLastOutput=Output τελευταίας εκτέλεσης Cron +CronLastResult=Αποτέλεσμα τελευταίας εκτέλεσης Cron CronCommand=Εντολή CronList=Προγραμματισμένες εργασίες CronDelete=Διαγραφή προγραμματισμένων εργασιών -CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job -CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. +CronConfirmDelete=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτές τις προγραμματισμένες εργασίες; +CronExecute=Εκκίνηση τώρα +CronConfirmExecute=Είστε σίγουροι ότι θέλετε να εκτελέσετε αυτές τις προγραμματισμένες εργασίες τώρα; +CronInfo=Η ενότητα προγραμματισμένης εργασίας επιτρέπει τον προγραμματισμό εργασιών ώστε να εκτελούνται αυτόματα. Οι εργασίες μπορούν επίσης να ξεκινήσουν χειροκίνητα. CronTask=Εργασία CronNone=Καμία CronDtStart=Όχι πριν CronDtEnd=Όχι μετά CronDtNextLaunch=Επόμενη εκτέλεση -CronDtLastLaunch=Start date of latest execution -CronDtLastResult=End date of latest execution +CronDtLastLaunch=Ημερομηνία έναρξης της τελευταίας εκτέλεσης +CronDtLastResult=Ημερομηνία λήξης της τελευταίας εκτέλεσης CronFrequency=Συχνότητα -CronClass=Κατηγορία +CronClass=Κλάση CronMethod=Μέθοδος -CronModule=Module +CronModule=Ενότητα CronNoJobs=Δεν έχουν καταχωρηθεί εργασίες CronPriority=Προτεραιότητα CronLabel=Ετικέτα -CronNbRun=Αριθμός εκτοξεύσεων -CronMaxRun=Μέγιστος αριθμός εκτοξεύσεων +CronNbRun=Αριθμός εκκινήσεων Cron +CronMaxRun=Μέγιστος αριθμός εκκινήσεων CronEach=Κάθε -JobFinished=Ξεκίνησε και τελείωσε +JobFinished=Η εργασία ξεκίνησε και ολοκληρώθηκε Scheduled=Προγραμματισμένες #Page card CronAdd= Προσθήκη εργασίας -CronEvery=Execute job each -CronObject=Instance/Object to create +CronEvery=Εκτέλεση εργασίας κάθε +CronObject=Αντικείμενο προς δημιουργία CronArgs=Παράμετροι CronSaveSucess=Επιτυχής αποθήκευση CronNote=Σχόλιο CronFieldMandatory=Τα πεδία %s είναι υποχρεωτικά CronErrEndDateStartDt=Η ημερομηνία λήξης δεν μπορεί να είναι πριν από την ημερομηνία έναρξης -StatusAtInstall=Κατάσταση κατά την εγκατάσταση της μονάδας -CronStatusActiveBtn=Προγραμματισμός +StatusAtInstall=Κατάσταση κατά την εγκατάσταση της ενότητας +CronStatusActiveBtn=Ενεργοποίηση προγραμματισμού CronStatusInactiveBtn=Απενεργοποίηση CronTaskInactive=Αυτή η εργασία είναι απενεργοποιημένη (δεν έχει προγραμματιστεί) CronId=Id -CronClassFile=Filename with class -CronModuleHelp=Όνομα του καταλόγου μονάδων Dolibarr (επίσης λειτουργούν με εξωτερική μονάδα Dolibarr).
Για παράδειγμα, για να καλέσουμε τη μέθοδο fetch του προϊόντος Dolibarr Product / htdocs / product / class / product.class.php, η τιμή για την ενότητα είναι
προϊόν -CronClassFileHelp=Η σχετική διαδρομή και το όνομα του αρχείου για φόρτωση (η διαδρομή είναι σχετική με τον κεντρικό κατάλογο διακομιστή ιστού).
Για παράδειγμα, για να καλέσετε τη μέθοδο λήψης του προϊόντος Dolibarr Product htdocs / product / class / product.class.php , η τιμή για το όνομα αρχείου κλάσης είναι
προϊόν / κλάση / product.class.php -CronObjectHelp=Το όνομα αντικειμένου που θα φορτωθεί.
Για παράδειγμα, για να καλέσετε τη μέθοδο λήψης του προϊόντος Dolibarr Product /htdocs/product/class/product.class.php, η τιμή για το όνομα του αρχείου κλάσης είναι
Προϊόν -CronMethodHelp=Η μέθοδος αντικειμένου για την εκκίνηση.
Για παράδειγμα, για να καλέσετε τη μέθοδο λήψης του προϊόντος Dolibarr Product /htdocs/product/class/product.class.php, η τιμή για τη μέθοδο είναι
φέρω -CronArgsHelp=Τα επιχειρήματα της μεθόδου.
Για παράδειγμα, για να καλέσετε τη μέθοδο λήψης του προϊόντος Dolibarr Product /htdocs/product/class/product.class.php, η τιμή για τους paramters μπορεί να είναι
0, ProductRef +CronClassFile=Όνομα αρχείου με κλάση +CronModuleHelp=Όνομα του καταλόγου ενοτήτων Dolibarr (επίσης λειτουργούν με εξωτερική ενότητα Dolibarr).
Για παράδειγμα, για να καλέσουμε τη μέθοδο fetch του αντικειμένου προϊόντος Dolibarr / htdocs / product / class / product.class.php, η τιμή για την ενότητα είναι
προϊόν +CronClassFileHelp=Η σχετική διαδρομή και το όνομα του αρχείου για φόρτωση (η διαδρομή είναι σχετική με τον κεντρικό κατάλογο διακομιστή ιστού).
Για παράδειγμα, για να καλέσετε τη μέθοδο fetch του αντικειμένου προϊόντος Dolibarr htdocs/product/class/product.class.php , η τιμή για το όνομα αρχείου κλάσης είναι
product/class/product.class.php +CronObjectHelp=Το όνομα αντικειμένου που θα φορτωθεί.
Για παράδειγμα, για να καλέσετε τη μέθοδο fetch του αντικειμένου προϊόντος Dolibarr /htdocs/product/class/product.class.php, η τιμή για το όνομα του αρχείου κλάσης είναι
Product +CronMethodHelp=Η μέθοδος αντικειμένου για την εκκίνηση.
Για παράδειγμα, για να καλέσετε τη μέθοδο fetch του αντικειμένου προϊόντος Dolibarr /htdocs/product/class/product.class.php, η τιμή για τη μέθοδο είναι
fetch +CronArgsHelp=Τα επιχειρήματα της μεθόδου.
Για παράδειγμα, για να καλέσετε τη μέθοδο fetch του αντικειμένου προϊόντος Dolibarr Product /htdocs/product/class/product.class.php, η τιμή για τις παραμέτρους μπορεί να είναι
0, ProductRef CronCommandHelp=Γραμμή εντολών του συστήματος προς εκτέλεση. -CronCreateJob=Create new Scheduled Job +CronCreateJob=Δημιουργία νέας προγραμματισμένης εργασίας CronFrom=Από # Info # Common @@ -78,16 +78,23 @@ CronType_method=Μέθοδος κλήσης μιας κλάσης PHP CronType_command=Εντολή Shell CronCannotLoadClass=Δεν είναι δυνατή η φόρτωση του αρχείου κλάσης %s (για χρήση της κλάσης %s) CronCannotLoadObject=Το αρχείο κλάσης %s φορτώθηκε, αλλά το αντικείμενο %s δεν βρέθηκε σε αυτό -UseMenuModuleToolsToAddCronJobs=Μεταβείτε στο μενού " Αρχική σελίδα - Εργαλεία διαχειριστή - Προγραμματισμένες εργασίες " για να δείτε και να επεξεργαστείτε προγραμματισμένες εργασίες. -JobDisabled=Job disabled -MakeLocalDatabaseDumpShort=Αντίγραφο ασφαλείας τοπικής βάσης δεδομένων -MakeLocalDatabaseDump=Δημιουργήστε μια τοπική χωματερή βάση δεδομένων. Οι παράμετροι είναι: συμπίεση ('gz' ή 'bz' ή 'none'), backup type ('mysql', 'pgsql', 'auto'), -MakeSendLocalDatabaseDumpShort=Αποστολή αντιγράφου ασφαλείας τοπικής βάσης δεδομένων -MakeSendLocalDatabaseDump=Αποστολή αντιγράφου ασφαλείας τοπικής βάσης δεδομένων μέσω email. Οι παράμετροι είναι: προς, από, θέμα, μήνυμα, όνομα αρχείου (Όνομα αρχείου που εστάλη), φίλτρο ('sql' μόνο για αντίγραφο ασφαλείας της βάσης δεδομένων) -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. -DATAPOLICYJob=Cleaner δεδομένων και ανώνυμος -JobXMustBeEnabled=Η προγραμματισμένη εργασία %s πρέπει να είναι ενεργοποιηθεί +UseMenuModuleToolsToAddCronJobs=Μεταβείτε στο μενού "Αρχική - Εργαλεία διαχειριστή - Προγραμματισμένες εργασίες" για να δείτε και να επεξεργαστείτε προγραμματισμένες εργασίες. +JobDisabled=Η εργασία απενεργοποιήθηκε +MakeLocalDatabaseDumpShort=Τοπικό αντίγραφο ασφαλείας βάσης δεδομένων +MakeLocalDatabaseDump=Δημιουργήστε ένα τοπικό αντίγραφο της βάσης δεδομένων. Οι παράμετροι είναι: συμπίεση ('gz' ή 'bz' ή 'none'), τύπος αντιγράφου ασφαλείας ('mysql', 'pgsql', 'auto'), 1, 'auto' ή όνομα αρχείου προς δημιουργία, αριθμός αρχείων αντιγράφων ασφαλείας προς διατήρηση +MakeSendLocalDatabaseDumpShort=Αποστολή τοπικού αντιγράφου ασφαλείας της βάσης δεδομένων +MakeSendLocalDatabaseDump=Αποστολή τοπικού αντιγράφου ασφαλείας της βάσης δεδομένων μέσω email. Οι παράμετροι είναι: προς, από, θέμα, μήνυμα, όνομα αρχείου (Όνομα αρχείου που εστάλη), φίλτρο ('sql' μόνο για αντίγραφο ασφαλείας της βάσης δεδομένων) +BackupIsTooLargeSend=Λυπούμαστε, το τελευταίο αρχείο αντιγράφου ασφαλείας είναι πολύ μεγάλο για να σταλεί μέσω email +CleanUnfinishedCronjobShort=Εκκαθάριση ημιτελούς cronjob +CleanUnfinishedCronjob=Εκκαθάριση cronjob που κόλλησε κατά την εκτέλεση όταν η διεργασία δεν εκτελείται πλέον +WarningCronDelayed=Προσοχή, για λόγους απόδοσης, όποια και αν είναι η επόμενη ημερομηνία εκτέλεσης των ενεργοποιημένων εργασιών, οι εργασίες σας ενδέχεται να καθυστερήσουν το πολύ %s ώρες, πριν εκτελεστούν. +DATAPOLICYJob=Καθαρισμός δεδομένων και ανωνυμοποιητής +JobXMustBeEnabled=Η προγραμματισμένη εργασία %s πρέπει να είναι ενεργοποιημένη +EmailIfError=Email για προειδοποίηση σφάλματος +ErrorInBatch=Σφάλμα κατά την εκτέλεση της εργασίας %s + # Cron Boxes -LastExecutedScheduledJob=Τελευταία προγραμματισμένη εργασία που εκτελέστηκε +LastExecutedScheduledJob=Τελευταία εκτελεσμένη προγραμματισμένη εργασία NextScheduledJobExecute=Επόμενη προγραμματισμένη εργασία προς εκτέλεση -NumberScheduledJobError=Αριθμός λανθασμένων προγραμματισμένων εργασιών +NumberScheduledJobError=Αριθμός προγραμματισμένων εργασιών σε κατάσταση λάθους +NumberScheduledJobNeverFinished=Αριθμός προγραμματισμένων εργασιών που δεν ολοκληρώθηκαν ποτέ diff --git a/htdocs/langs/el_GR/datapolicy.lang b/htdocs/langs/el_GR/datapolicy.lang new file mode 100644 index 00000000000..6dcd402dc13 --- /dev/null +++ b/htdocs/langs/el_GR/datapolicy.lang @@ -0,0 +1,92 @@ +# Copyright (C) 2018 Nicolas ZABOURI +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Module label 'ModuledatapolicyName' +Module4100Name = Πολιτική Προστασίας Δεδομένων +# Module description 'ModuledatapolicyDesc' +Module4100Desc = Ενότητα διαχείρισης προστασίας δεδομένων (Συμμόρφωση με τον GDPR) + +# +# Administration page +# +datapolicySetup = Ρύθμιση Ενότητας Πολιτικής Προστασίας Δεδομένων +Deletion = Διαγραφή δεδομένων +datapolicySetupPage = Σύμφωνα και με τη νομοθεσία της χώρας μας (Παράδειγμα Άρθρο 5 του GDPR), τα προσωπικά δεδομένα πρέπει να διατηρούνται για περίοδο που δεν υπερβαίνει την απαραίτητη για τους σκοπούς για τους οποίους συλλέχθηκαν, εκτός από αρχειακούς σκοπούς.
Η διαγραφή θα γίνει αυτόματα μετά από μια ορισμένη περίοδο χωρίς συμβάν (το χρονικό διάστημα που θα έχετε υποδείξει παρακάτω). +NB_MONTHS = %s μήνες +ONE_YEAR = 1 χρόνος +NB_YEARS = %s χρόνια +DATAPOLICY_TIERS_CLIENT = Πελάτης +DATAPOLICY_TIERS_PROSPECT = Προοπτική +DATAPOLICY_TIERS_PROSPECT_CLIENT = Προοπτική/Πελάτης +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Ούτε προοπτική/Ούτε πελάτης +DATAPOLICY_TIERS_FOURNISSEUR = Προμηθευτής +DATAPOLICY_CONTACT_CLIENT = Πελάτης +DATAPOLICY_CONTACT_PROSPECT = Προοπτική +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Προοπτική/Πελάτης +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Ούτε προοπτική/Ούτε πελάτης +DATAPOLICY_CONTACT_FOURNISSEUR = Προμηθευτής +DATAPOLICY_ADHERENT = Μέλος +DATAPOLICY_Tooltip_SETUP = Τύπος επαφής - Υποδείξτε τις επιλογές σας για κάθε τύπο. +DATAPOLICYMail = Ρύθμιση email +DATAPOLICYSUBJECTMAIL = Θέμα email +DATAPOLICYCONTENTMAIL = Το περιεχόμενο του email +DATAPOLICYSUBSITUTION = Μπορείτε να χρησιμοποιήσετε τις ακόλουθες μεταβλητές στο email σας (το LINKACCEPT επιτρέπει τη δημιουργία ενός συνδέσμου που καταγράφει τη συγκατάθεση του ατόμου, το LINKREFUSED καθιστά δυνατή την καταγραφή της άρνησης συγκατάθεσης του ατόμου): +DATAPOLICYACCEPT = Μήνυμα μετά από συγκατάθεση +DATAPOLICYREFUSE = Μήνυμα μετά από άρνηση συγκατάθεσης +SendAgreementText = Μπορείτε να στείλετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου GDPR σε όλες τις σχετικές επαφές σας (που δεν έχουν λάβει ακόμη email και για τις οποίες δεν έχετε καταχωρίσει τίποτα σχετικά με τη συμφωνία GDPR τους). Για να το κάνετε αυτό, χρησιμοποιήστε το παρακάτω κουμπί. +SendAgreement = Αποστολή email +AllAgreementSend = Όλα τα email έχουν σταλεί +TXTLINKDATAPOLICYACCEPT = Κείμενο για τον σύνδεσμο "συγκατάθεση" +TXTLINKDATAPOLICYREFUSE = Κείμενο για τον σύνδεσμο "άρνηση συγκατάθεσης" + + +# +# Extrafields +# +DATAPOLICY_BLOCKCHECKBOX = GDPR : Επεξεργασία προσωπικών δεδομένων +DATAPOLICY_consentement = Ελήφθη συγκατάθεση για την επεξεργασία προσωπικών δεδομένων +DATAPOLICY_opposition_traitement = Δεν δίνει συγκατάθεση για την επεξεργασία των προσωπικών δεδομένων +DATAPOLICY_opposition_prospection = Δεν δίνει συγκατάθεση για την επεξεργασία των προσωπικών δεδομένων για χρήση ως προοπτική + +# +# Popup +# +DATAPOLICY_POPUP_ANONYME_TITLE = Ανωνυμοποίηση τρίτου μέρους +DATAPOLICY_POPUP_ANONYME_TEXTE = Δεν μπορείτε να διαγράψετε αυτήν την επαφή από το Dolibarr επειδή υπάρχουν σχετικά στοιχεία. Σύμφωνα με τον GDPR, είστε υποχρεωμένοι να ανωνυμοποιήσετε τα δεδομένα. Θα θέλατε να συνεχίσετε; + +# +# Button for portability +# +DATAPOLICY_PORTABILITE = Φορητότητα GDPR +DATAPOLICY_PORTABILITE_TITLE = Εξαγωγή προσωπικών δεδομένων +DATAPOLICY_PORTABILITE_CONFIRMATION = Είστε σίγουροι ότι θέλετε να εξαγάγετε τα προσωπικά δεδομένα αυτής της επαφής; + +# +# Notes added during an anonymization +# +ANONYMISER_AT = Ανωνυμοποιήθηκε η %s + +# V2 +DATAPOLICYReturn = Επικύρωση GDPR +DATAPOLICY_date = Ημερομηνία συγκατάθεσης/μη συγκατάθεσης GDPR +DATAPOLICY_send = Ημερομηνία αποστολής email συγκατάθεσης +DATAPOLICYReturn = Επικύρωση GDPR +DATAPOLICY_SEND = Αποστολή email GDPR +MailSent = Το E-mail έχει σταλεί + +# ERROR +ErrorSubjectIsRequired = Σφάλμα: Το θέμα του email είναι υποχρεωτικό. Συμπληρώστε το στη ρύθμιση της ενότητας +=Λόγω τεχνικού προβλήματος, δεν μπορέσαμε να καταχωρήσουμε την επιλογή σας. Ζητούμε συγγνώμη για αυτό. Επικοινωνήστε μαζί μας για να μας στείλετε την επιλογή σας. +NUMBER_MONTH_BEFORE_DELETION = Αριθμός μήνα πριν από τη διαγραφή diff --git a/htdocs/langs/el_GR/ecm.lang b/htdocs/langs/el_GR/ecm.lang index acdcbae10ad..872c78f4733 100644 --- a/htdocs/langs/el_GR/ecm.lang +++ b/htdocs/langs/el_GR/ecm.lang @@ -5,9 +5,10 @@ ECMSectionManual=Χειροκίνητος κατάλογος ECMSectionAuto=Αυτόματος κατάλογος ECMSectionsManual=Χειροκίνητο δέντρο ECMSectionsAuto=Αυτόματο δέντρο -ECMSections=Φάκελοι +ECMSectionsMedias=Medias tree +ECMSections=Κατάλογοι ECMRoot=ECM Root -ECMNewSection=Νέος Φάκελος +ECMNewSection=Νέος κατάλογος ECMAddSection=Προσθήκη καταλόγου ECMCreationDate=Ημερομηνία Δημιουργίας ECMNbOfFilesInDir=Αριθμός αρχείων στον κατάλογο @@ -16,34 +17,36 @@ ECMNbOfFilesInSubDir=Αριθμός αρχείων σε υπο-καταλόγο ECMCreationUser=Δημιουργός ECMArea=Περιοχή DMS / ECM ECMAreaDesc=Η περιοχή DMS / ECM (Συστήματα Διαχείρισης Εγγράφων / Ηλεκτρονική Διαχείριση Περιεχομένου) σας επιτρέπει να αποθηκεύετε, να μοιράζεστε και να αναζητάτε γρήγορα όλα τα είδη εγγράφων στο Dolibarr. -ECMAreaDesc2=* Automatic directories are filled automatically when adding documents from card of an element.
* Manual directories can be used to save documents not linked to a particular element. -ECMSectionWasRemoved=Directory %s has been deleted. +ECMAreaDesc2a=* Οι μη αυτόματοι κατάλογοι μπορούν να χρησιμοποιηθούν για την αποθήκευση εγγράφων που δεν συνδέονται με ένα συγκεκριμένο στοιχείο. +ECMAreaDesc2b=* Οι αυτόματοι κατάλογοι συμπληρώνονται αυτόματα κατά την προσθήκη εγγράφων από τη σελίδα ενός στοιχείου. +ECMAreaDesc3=* Οι κατάλογοι πολυμέσων είναι φάκελοι στον υποκατάλογο /medias του καταλόγου εγγράφων, αναγνώσιμα από όλους χωρίς να χρειάζεται συνδεση. Χρησιμοποιούνται για την αποθήκευση αρχείων εικόνας από ηλεκτρονική αλληλογραφία ή κάποια ενότητα του ιστότοπου. +ECMSectionWasRemoved=Ο κατάλογος %s έχει διαγραφεί. ECMSectionWasCreated=Ο κατάλογος %s έχει δημιουργηθεί. -ECMSearchByKeywords=Search by keywords -ECMSearchByEntity=Search by object -ECMSectionOfDocuments=Directories of documents +ECMSearchByKeywords=Αναζήτηση με λέξεις-κλειδιά +ECMSearchByEntity=Αναζήτηση κατά αντικείμενο +ECMSectionOfDocuments=Κατάλογοι εγγράφων ECMTypeAuto=Αυτόματα ECMDocsBy=Έγγραφα που συνδέονται με το %s -ECMNoDirectoryYet=Δεν δημιουργήθηκε φάκελος -ShowECMSection=Εμφάνιση φακέλου -DeleteSection=Διαγραφή φακέλου -ConfirmDeleteSection=Can you confirm you want to delete the directory %s? -ECMDirectoryForFiles=Relative directory for files -CannotRemoveDirectoryContainsFilesOrDirs=Η κατάργηση δεν είναι δυνατή επειδή περιέχει ορισμένα αρχεία ή δευτερεύοντες καταλόγους +ECMNoDirectoryYet=Δεν δημιουργήθηκε κατάλογος +ShowECMSection=Εμφάνιση καταλόγου +DeleteSection=Κατάργηση καταλόγου +ConfirmDeleteSection=Μπορείτε να επιβεβαιώσετε ότι θέλετε να διαγράψετε τον κατάλογο %s; +ECMDirectoryForFiles=Σχετικός κατάλογος αρχείων +CannotRemoveDirectoryContainsFilesOrDirs=Η κατάργηση δεν είναι δυνατή επειδή περιέχει ορισμένα αρχεία ή υπο-καταλόγους CannotRemoveDirectoryContainsFiles=Η αφαίρεση δεν είναι δυνατή επειδή περιέχει ορισμένα αρχεία -ECMFileManager=Διαχειριστής Αρχείων +ECMFileManager=Διαχείριση αρχείων ECMSelectASection=Επιλέξτε έναν κατάλογο στο δέντρο ... -DirNotSynchronizedSyncFirst=Αυτός ο κατάλογος φαίνεται να δημιουργείται ή να τροποποιείται εκτός της μονάδας ECM. Πρέπει πρώτα να κάνετε κλικ στο κουμπί "Επανασύνδεση" για να συγχρονίσετε το δίσκο και τη βάση δεδομένων για να αποκτήσετε περιεχόμενο αυτού του καταλόγου. -ReSyncListOfDir=Επανασυνδέστε τη λίστα των καταλόγων -HashOfFileContent=Διαγραφή περιεχομένου αρχείου +DirNotSynchronizedSyncFirst=Αυτός ο κατάλογος φαίνεται να έχει δημιουργηθεί ή τροποποιηθεί εκτός της ενότητας ECM. Πρέπει πρώτα να κάνετε κλικ στο κουμπί "Επανασυγχρονισμός" για να συγχρονίσετε το δίσκο και τη βάση δεδομένων για να λάβετε το περιεχόμενο αυτού του καταλόγου. +ReSyncListOfDir=Επανασυγχρονισμός λίστας καταλόγων +HashOfFileContent=Hash περιεχομένου αρχείου NoDirectoriesFound=Δεν βρέθηκαν κατάλογοι -FileNotYetIndexedInDatabase=Αρχείο που δεν έχει ακόμη ευρετηριαστεί στη βάση δεδομένων (δοκιμάστε να το μεταφορτώσετε ξανά) -ExtraFieldsEcmFiles=Extrafields Αρχεία Ecm -ExtraFieldsEcmDirectories=Κατάλογοι Extrafields Ecm +FileNotYetIndexedInDatabase=Το αρχείο δεν έχει καταχωρηθεί ακόμη στη βάση δεδομένων (προσπαθήστε να το ανεβάσετε ξανά) +ExtraFieldsEcmFiles=Επιπλέον πεδία αρχείων Ecm +ExtraFieldsEcmDirectories=Επιπλέον πεδία Καταλόγων Ecm ECMSetup=Ρύθμιση ECM -GenerateImgWebp=Δημιουργήστε αντίγραφα όλων των εικόνων με μια άλλη έκδοση με μορφή .webp +GenerateImgWebp=Δημιουργήστε αντίγραφα όλων των εικόνων με μια άλλη έκδοση σε μορφή .webp ConfirmGenerateImgWebp=Εάν επιβεβαιώσετε, θα δημιουργήσετε μια εικόνα σε μορφή .webp για όλες τις εικόνες που βρίσκονται αυτήν τη στιγμή σε αυτόν τον φάκελο (οι υποφάκελοι δεν περιλαμβάνονται)... ConfirmImgWebpCreation=Επιβεβαιώστε την δημιουργία διπλοτύπων όλων των εικόνων -SucessConvertImgWebp=Δημιουργήθηκαν επιτυχώς διπλότυπα των εικονων +SucessConvertImgWebp=Δημιουργήθηκαν επιτυχώς διπλότυπα των εικόνων ECMDirName=Όνομα καταλόγου ECMParentDirectory=Γονικός κατάλογος diff --git a/htdocs/langs/el_GR/errors.lang b/htdocs/langs/el_GR/errors.lang index f9eb877e700..89f518ceea0 100644 --- a/htdocs/langs/el_GR/errors.lang +++ b/htdocs/langs/el_GR/errors.lang @@ -4,7 +4,7 @@ NoErrorCommitIsDone=Κανένα σφάλμα # Errors ErrorButCommitIsDone=Βρέθηκαν σφάλματα, αλλά επικυρώνουμε παρόλα αυτά -ErrorBadEMail=Το email %s είναι λάθος +ErrorBadEMail=Η διεύθυνση email %s είναι λάθος ErrorBadMXDomain=Το email %s φαίνεται λανθασμένο (ο τομέας δεν έχει έγκυρη εγγραφή MX) ErrorBadUrl=Η διεύθυνση URL %s δεν ειναι σωστή ErrorBadValueForParamNotAString=Κακή τιμή για την παράμετρο σας. συνδέεται αόριστα όταν λείπει η μετάφραση. @@ -14,6 +14,7 @@ ErrorLoginAlreadyExists=Η σύνδεση %s υπάρχει ήδη. ErrorGroupAlreadyExists=Η ομάδα %s υπάρχει ήδη. ErrorEmailAlreadyExists=Το email %s υπάρχει ήδη. ErrorRecordNotFound=Η εγγραφή δεν βρέθηκε. +ErrorRecordNotFoundShort=Δεν βρέθηκε ErrorFailToCopyFile=Απέτυχε η αντιγραφή του αρχείου '%s' στο '%s'. ErrorFailToCopyDir=Απέτυχε η αντιγραφή του καταλόγου ' %s ' στο ' %s '. ErrorFailToRenameFile=Απέτυχε η μετονομασία του αρχείου ' %s ' σε ' %s '. @@ -48,6 +49,7 @@ ErrorBadImageFormat=Το αρχείο εικόνας δεν έχει μια υπ ErrorBadDateFormat=Η τιμή «%s« δεν έχει σωστή μορφή ημερομηνίας ErrorWrongDate=Η ημερομηνία δεν είναι σωστή! ErrorFailedToWriteInDir=Απέτυχε η εγγραφή στον κατάλογο %s +ErrorFailedToBuildArchive=Αποτυχία δημιουργίας αρχείου αρχειοθέτησης %s ErrorFoundBadEmailInFile=Βρέθηκε λανθασμένη σύνταξη email για %s γραμμές στο αρχείο (παράδειγμα γραμμής %s με email=%s) ErrorUserCannotBeDelete=Ο χρήστης δεν μπορεί να διαγραφεί. Ίσως σχετίζεται με οντότητες Dolibarr. ErrorFieldsRequired=Ορισμένα υποχρεωτικά πεδία έχουν μείνει κενά. @@ -76,7 +78,7 @@ ErrorNoValueForCheckBoxType=Παρακαλώ συμπληρώστε την τι ErrorNoValueForRadioType=Παρακαλώ συμπληρώστε την τιμή για τη λίστα τύπου radio ErrorBadFormatValueList=Η τιμή της λίστας δεν μπορεί να έχει περισσότερα από ένα κόμμα: %s , αλλά χρειάζεται τουλάχιστον ένα: κλειδί, τιμή ErrorFieldCanNotContainSpecialCharacters=Το πεδίο %s δεν πρέπει να περιέχει ειδικούς χαρακτήρες. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Το πεδίο %s δεν πρέπει να περιέχει ειδικούς χαρακτήρες, ούτε κεφαλαία και δεν μπορεί να περιέχει μόνο αριθμούς. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Το πεδίο %s δεν πρέπει να περιέχει ειδικούς χαρακτήρες, ούτε κεφαλαίους χαρακτήρες και πρέπει να ξεκινά με αλφαβητικό χαρακτήρα (a-z) ErrorFieldMustHaveXChar=Το πεδίο %s πρέπει να έχει τουλάχιστον %s χαρακτήρες. ErrorNoAccountancyModuleLoaded=Δεν έχει ενεργοποιηθεί η ενότητα λογιστικής ErrorExportDuplicateProfil=Αυτό το όνομα προφίλ υπάρχει ήδη για αυτό το σύνολο των εξαγωγών. @@ -95,9 +97,9 @@ ErrorWrongValueForField=Το πεδίο %s : ' %s ' δεν τ ErrorHtmlInjectionForField=Πεδίο %s : Η τιμή ' %s' περιέχει μη επιτρεπτά κακόβουλα δεδομένα ErrorFieldValueNotIn=Πεδίο %s : ' %s ' δεν ειναι η τιμή που βρέθηκε στο πεδίο %s του %s ErrorFieldRefNotIn=Πεδίο %s : ' %s ' δεν ειναι %s υπάρχουσας αναφοράς +ErrorMultipleRecordFoundFromRef=Βρέθηκαν αρκετές εγγραφές κατά την αναζήτηση για την αναφορά %s . Δεν υπάρχει τρόπος αντιστοίχισης κάποιου ID. ErrorsOnXLines=%sσφάλματα βρέθηκαν ErrorFileIsInfectedWithAVirus=Το πρόγραμμα προστασίας από ιούς δεν μπόρεσε να επικυρώσει το αρχείο (το αρχείο ενδέχεται να έχει μολυνθεί από ιό) -ErrorSpecialCharNotAllowedForField=Δεν επιτρέπονται ειδικοί χαρακτήρες για το πεδίο "%s" ErrorNumRefModel=Υπάρχει μια αναφορά στη βάση δεδομένων (%s) και δεν είναι συμβατή με αυτόν τον κανόνα αρίθμησης. Καταργήστε την εγγραφή ή την μετονομάστε την αναφορά για να ενεργοποιήσετε αυτήν την ενότητα. ErrorQtyTooLowForThisSupplier=Πολύ χαμηλή ποσότητα για αυτόν τον προμηθευτή ή δεν έχει καθοριστεί τιμή σε αυτό το προϊόν για αυτόν τον προμηθευτή ErrorOrdersNotCreatedQtyTooLow=Ορισμένες παραγγελίες δεν έχουν δημιουργηθεί λόγω υπερβολικά μικρών ποσοτήτων @@ -242,6 +244,7 @@ ErrorObjectMustHaveStatusActiveToBeDisabled=Τα αντικείμενα πρέπ ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Τα αντικείμενα πρέπει να έχουν την κατάσταση «Προσχέδιο» ή «Απενεργοποιημένο» για να ενεργοποιηθούν ErrorNoFieldWithAttributeShowoncombobox=Κανένα πεδίο δεν έχει την ιδιότητα "showoncombobox" στον ορισμό του αντικειμένου "%s". Δεν υπάρχει τρόπος να εμφανίσουμε τη λίστα σύνθετου πλαισίου. ErrorFieldRequiredForProduct=Το πεδίο '%s' απαιτείται για το προϊόν %s +AlreadyTooMuchPostOnThisIPAdress=Έχετε ήδη δημοσιεύσει πάρα πολλά σε αυτήν τη διεύθυνση IP. ProblemIsInSetupOfTerminal=Το πρόβλημα είναι στη ρύθμιση του τερματικού %s. ErrorAddAtLeastOneLineFirst=Προσθέστε τουλάχιστον μία γραμμή πρώτα ErrorRecordAlreadyInAccountingDeletionNotPossible=Σφάλμα, η εγγραφή έχει ήδη μεταφερθεί στη λογιστική, η διαγραφή δεν είναι δυνατή. @@ -277,8 +280,8 @@ ErrorWrongFileName=Το όνομα του αρχείου δεν μπορεί ν ErrorNotInDictionaryPaymentConditions=Δεν υπάρχει στο Λεξικό Όρων Πληρωμής, παρακαλώ τροποποιήστε. ErrorIsNotADraft=Το %s δεν είναι πρόχειρο ErrorExecIdFailed=Δεν είναι δυνατή η εκτέλεση της εντολής "id" -ErrorBadCharIntoLoginName=Μη εξουσιοδοτημένος χαρακτήρας στο όνομα σύνδεσης -ErrorRequestTooLarge=Σφάλμα, το αίτημα είναι πολύ μεγάλο +ErrorBadCharIntoLoginName=Μη έγκυρος χαρακτήρας στο πεδίο %s +ErrorRequestTooLarge=Σφάλμα, το αίτημα είναι πολύ μεγάλο ή η περίοδος λειτουργίας έληξε ErrorNotApproverForHoliday=Δεν είστε ο υπεύθυνος έγκρισης για την άδεια %s ErrorAttributeIsUsedIntoProduct=Αυτό το χαρακτηριστικό χρησιμοποιείται σε μία ή περισσότερες παραλλαγές προϊόντων ErrorAttributeValueIsUsedIntoProduct=Αυτή η τιμή χαρακτηριστικού χρησιμοποιείται σε μία ή περισσότερες παραλλαγές προϊόντος @@ -291,6 +294,16 @@ ErrorAjaxRequestFailed=To αίτημα AJAX απέτυχε ErrorThirpdartyOrMemberidIsMandatory=Τρίτο μέρος ή Μέλος της εταιρικής σχέσης είναι υποχρεωτικό ErrorFailedToWriteInTempDirectory=Αποτυχία εγγραφής στον κατάλογο temp ErrorQuantityIsLimitedTo=Η ποσότητα περιορίζεται σε %s +ErrorFailedToLoadThirdParty=Αποτυχία εύρεσης/φόρτωσης τρίτου μέρους από id=%s, email=%s, όνομα=%s +ErrorThisPaymentModeIsNotSepa=Αυτός ο τρόπος πληρωμής δεν είναι τύπου SEPA +ErrorStripeCustomerNotFoundCreateFirst=Αυτό το τρίτο μέρος δεν έχει οριστεί ως πελάτης Stripe (ή έχει οριστεί σε τιμή που έχει διαγραφεί από το Stripe). Πρώτα δημιουργήστε το (ή επισυνάψτε το ξανά). +ErrorCharPlusNotSupportedByImapForSearch=Η αναζήτηση IMAP δεν μπορεί να πραγματοποιηθεί σε αποστολέα ή παραλήπτη για μια συμβολοσειρά που περιέχει τον χαρακτήρα + +ErrorTableNotFound=Ο πίνακας %s δεν βρέθηκε +ErrorValueForTooLow=Η τιμή για %s είναι πολύ χαμηλή +ErrorValueCantBeNull=Η τιμή για %s δεν μπορεί να είναι μηδενική +ErrorDateOfMovementLowerThanDateOfFileTransmission=Η ημερομηνία της τραπεζικής συναλλαγής δεν μπορεί να είναι παλαιότερη από την ημερομηνία αποστολής του αρχείου +ErrorTooMuchFileInForm=Πάρα πολλά αρχεία στην φόρμα, ο μέγιστος αριθμός είναι %s αρχεία +ErrorSessionInvalidatedAfterPasswordChange=Η συνεδρία ακυρώθηκε μετά από αλλαγή κωδικού πρόσβασης, κατάστασης ή ημερομηνιών εγκυρότητας. Παρακαλώ συνδεθείτε ξανά. # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Η παράμετρος PHP upload_max_filesize (%s) είναι υψηλότερη από την παράμετρο PHP post_max_size (%s). Αυτή δεν είναι μια συνεπής ρύθμιση. @@ -304,7 +317,7 @@ WarningConfFileMustBeReadOnly=Προειδοποίηση, το αρχείο ρυ WarningsOnXLines=Προειδοποιήσεις στις %s εγγραφές κώδικα WarningNoDocumentModelActivated=Δεν έχει ενεργοποιηθεί κανένα μοντέλο για την παραγωγή εγγράφων. Ένα πρότυπο θα επιλεγεί από προεπιλογή μέχρι να ελέγξετε τη ρύθμιση της ενότητας σας. WarningLockFileDoesNotExists=Προειδοποίηση, αφού ολοκληρωθεί η εγκατάσταση, πρέπει να απενεργοποιήσετε τα εργαλεία εγκατάστασης / μετεγκατάστασης προσθέτοντας ένα αρχείο install.lock στον κατάλογο %s . Η παράλειψη της δημιουργίας αυτού του αρχείου αποτελεί σοβαρό κίνδυνο για την ασφάλεια. -WarningUntilDirRemoved=Όλες οι προειδοποιήσεις ασφαλείας (ορατές μόνο από τους διαχειριστές) θα παραμείνουν ενεργές για όσο διάστημα υπάρχει η ευπάθεια (ή ότι η σταθερή MAIN_REMOVE_INSTALL_WARNING προστίθεται στο Ρυθμίσεις->Άλλες Ρυθμίσεις). +WarningUntilDirRemoved=Αυτή η προειδοποίηση ασφαλείας θα παραμείνει ενεργή όσο υπάρχει η ευπάθεια. WarningCloseAlways=Προειδοποίηση, το κλείσιμο πραγματοποιείται ακόμη και αν το ποσό διαφέρει μεταξύ των στοιχείων πηγής και προορισμού. Ενεργοποιήστε αυτήν τη δυνατότητα με προσοχή. WarningUsingThisBoxSlowDown=Προειδοποίηση, χρησιμοποιώντας αυτό το πλαίσιο επιβραδύνετε σοβαρά όλες τις σελίδες που εμφανίζουν το πλαίσιο. WarningClickToDialUserSetupNotComplete=Η ρύθμιση των πληροφοριών ClickToDial για τον χρήστη σας δεν έχει ολοκληρωθεί (δείτε την καρτέλα ClickToDial στην κάρτα χρήστη σας). @@ -313,6 +326,7 @@ WarningPaymentDateLowerThanInvoiceDate=Η ημερομηνία πληρωμής WarningTooManyDataPleaseUseMoreFilters=Πάρα πολλά δεδομένα (περισσότερες από %sγραμμές). Χρησιμοποιήστε περισσότερα φίλτρα ή ορίστε τη σταθερά %s σε υψηλότερο όριο. WarningSomeLinesWithNullHourlyRate=Κάποιοι χρόνοι καταγράφηκαν από ορισμένους χρήστες ενώ η ωριαία τιμή τους δεν είχε καθοριστεί. Χρησιμοποιήθηκε μια τιμή 0 %s ανά ώρα, αλλά αυτό μπορεί να οδηγήσει σε λανθασμένη εκτίμηση του χρόνου που δαπανήθηκε. WarningYourLoginWasModifiedPleaseLogin=Η σύνδεσή σας τροποποιήθηκε. Για λόγους ασφαλείας θα πρέπει να συνδεθείτε με τη νέα σας σύνδεση πριν από την επόμενη ενέργεια. +WarningYourPasswordWasModifiedPleaseLogin=Ο κωδικός πρόσβασης σας τροποποιήθηκε. Για λόγους ασφαλείας θα πρέπει να συνδεθείτε τώρα με τον νέο σας κωδικό πρόσβασης. WarningAnEntryAlreadyExistForTransKey=Υπάρχει ήδη μια καταχώριση για το κλειδί μετάφρασης για αυτήν τη γλώσσα WarningNumberOfRecipientIsRestrictedInMassAction=Προειδοποίηση, ο αριθμός διαφορετικών παραληπτών περιορίζεται σε %s όταν χρησιμοποιείτε τις μαζικές ενέργειες σε λίστες WarningDateOfLineMustBeInExpenseReportRange=Προειδοποίηση, η ημερομηνία γραμμής δεν είναι στο εύρος της αναφοράς εξόδων @@ -326,6 +340,8 @@ WarningAvailableOnlyForHTTPSServers=Διατίθεται μόνο εάν χρη WarningModuleXDisabledSoYouMayMissEventHere=Η ενότητα %s δεν έχει ενεργοποιηθεί. Έτσι, μπορεί να χάσετε πολλές λειτουργίες. WarningPaypalPaymentNotCompatibleWithStrict=Η τιμή "Αυστηρή" κάνει τις λειτουργίες ηλεκτρονικής πληρωμής να μην λειτουργούν σωστά. Χρησιμοποιήστε την τιμή 'Χαλαρή' . WarningThemeForcedTo=Προειδοποίηση, έχει γίνει επιβολή του θέματος %s από την κρυφή σταθερά MAIN_FORCETEME +WarningPagesWillBeDeleted=Προειδοποίηση, αυτό θα διαγράψει επίσης όλες τις υπάρχουσες σελίδες/container του ιστότοπου. Θα πρέπει να εξάγετε τον ιστότοπό σας νωρίτερα, ώστε να έχετε ένα αντίγραφο ασφαλείας για να μπορείτε να τον εισάγετε ξανά αργότερα αν χρειαστει. +WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal=Η αυτόματη επικύρωση είναι απενεργοποιημένη όταν η επιλογή μείωσης του αποθέματος έχει οριστεί στην "Επικύρωση τιμολογίου". # Validate RequireValidValue = Η τιμή δεν είναι έγκυρη diff --git a/htdocs/langs/el_GR/eventorganization.lang b/htdocs/langs/el_GR/eventorganization.lang index f7f93ac9c84..1788d3d80bf 100644 --- a/htdocs/langs/el_GR/eventorganization.lang +++ b/htdocs/langs/el_GR/eventorganization.lang @@ -54,6 +54,7 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = Στη φόρμα για τη δημι # Object # EventOrganizationConfOrBooth= Συνέδριο ή Περίπτερο +EventOrganizationConfOrBoothes=Συνέδρια ή Περίπτερα ManageOrganizeEvent = Διαχειριστείτε την οργάνωση μιας εκδήλωσης ConferenceOrBooth = Συνέδριο ή Περίπτερο ConferenceOrBoothTab = Συνέδριο ή Περίπτερο @@ -114,15 +115,15 @@ EvntOrgRegistrationHelpMessage = Εδώ, μπορείτε να ψηφίσετε EvntOrgRegistrationConfHelpMessage = Εδώ, μπορείτε να προτείνετε ένα νέο συνέδριο για προώθηση κατά τη διάρκεια της εκδήλωσης. EvntOrgRegistrationBoothHelpMessage = Εδώ, μπορείτε να κάνετε αίτηση για να έχετε ένα περίπτερο κατά τη διάρκεια της εκδήλωσης. ListOfSuggestedConferences = Λίστα προτεινόμενων συνεδρίων -ListOfSuggestedBooths = Λίστα προτεινόμενων περιπτέρων -ListOfConferencesOrBooths=Λίστα συνεδρίων ή περιπτέρων του έργου εκδήλωσης +ListOfSuggestedBooths=Προτεινόμενα περίπτερα +ListOfConferencesOrBooths=Συνέδρια ή περίπτερα του έργου εκδήλωσης SuggestConference = Προτείνετε ένα νέο συνέδριο SuggestBooth = Προτείνετε ένα περίπτερο ViewAndVote = Δείτε και ψηφίστε για προτεινόμενες εκδηλώσεις PublicAttendeeSubscriptionGlobalPage = Δημόσιος σύνδεσμος για εγγραφή στην εκδήλωση PublicAttendeeSubscriptionPage = Δημόσιος σύνδεσμος για εγγραφή σε αυτήν την εκδήλωση μόνο  MissingOrBadSecureKey = Το κλειδί ασφαλείας δεν είναι έγκυρο ή λείπει -EvntOrgWelcomeMessage = Αυτή η φόρμα σάς επιτρέπει να εγγραφείτε ως νέος συμμετέχων στην εκδήλωση: %s +EvntOrgWelcomeMessage = Αυτή η φόρμα σάς επιτρέπει να εγγραφείτε ως νέος συμμετέχων στην εκδήλωση EvntOrgDuration = Αυτό το συνέδριο ξεκινά στις %s και τελειώνει στις %s. ConferenceAttendeeFee = Χρέωση συμμετεχόντων στο συνέδριο για την εκδήλωση : "%s" που διεξάγεται από %s έως %s. BoothLocationFee = Θέση περιπτέρου για την εκδήλωση : "%s" που διεξάγεται από %s έως %s @@ -132,7 +133,7 @@ LabelOfconference=Ταμπέλα συνεδρίου ConferenceIsNotConfirmed=Η εγγραφή δεν είναι διαθέσιμη, το συνέδριο δεν έχει επιβεβαιωθεί ακόμα DateMustBeBeforeThan=Το %s πρέπει να είναι πριν από το %s DateMustBeAfterThan=Το %s πρέπει να είναι μετά το %s - +MaxNbOfAttendeesReached=Ο μέγιστος αριθμός συμμετεχόντων έχει συμπληρωθεί NewSubscription=Εγγραφή OrganizationEventConfRequestWasReceived=Η πρότασή σας για μια διάσκεψη έχει ληφθεί OrganizationEventBoothRequestWasReceived=Το αίτημά σας για ένα περίπτερο έχει ληφθεί @@ -157,7 +158,7 @@ VoteOk = Η ψήφος σας έγινε αποδεκτή. AlreadyVoted = Έχετε ήδη ψηφίσει για αυτήν την εκδήλωση. VoteError = Παρουσιάστηκε σφάλμα κατά την ψηφοφορία, παρακαλώ δοκιμάστε ξανά. -SubscriptionOk = Η εγγραφή σας έχει επικυρωθεί +SubscriptionOk=Η εγγραφή σας έχει καταγραφεί ConfAttendeeSubscriptionConfirmation = Επιβεβαίωση της συνδρομής σας σε μια εκδήλωση Attendee = Συμμετέχων PaymentConferenceAttendee = Πληρωμή συμμετεχόντων στο συνέδριο @@ -165,8 +166,11 @@ PaymentBoothLocation = Πληρωμή θέσης περιπτέρου DeleteConferenceOrBoothAttendee=Κατάργηση συμμετέχοντος RegistrationAndPaymentWereAlreadyRecorder=Μια εγγραφή και μια πληρωμή έχουν ήδη καταγραφεί για το email %s EmailAttendee=Email του συμμετέχοντα +EmailCompany=Εταιρικό email EmailCompanyForInvoice=Διεύθυνση ηλεκτρονικού ταχυδρομείου εταιρείας (για τιμολόγιο, εάν διαφέρει από το email του συμμετέχοντα) ErrorSeveralCompaniesWithEmailContactUs=Έχουν βρεθεί πολλές εταιρείες με αυτό το email, επομένως δεν μπορούμε να επικυρώσουμε αυτόματα την εγγραφή σας. Παρακαλώ επικοινωνήστε μαζί μας στο %s ErrorSeveralCompaniesWithNameContactUs=Έχουν βρεθεί πολλές εταιρείες με αυτό το όνομα, επομένως δεν μπορούμε να επικυρώσουμε αυτόματα την εγγραφή σας. Παρακαλώ επικοινωνήστε μαζί μας στο %s NoPublicActionsAllowedForThisEvent=Καμία δημόσια δράση δεν είναι ανοιχτή στο κοινό για αυτήν την εκδήλωση MaxNbOfAttendees=Μέγιστος αριθμός συμμετεχόντων +DateStartEvent=Ημερομηνία έναρξης εκδήλωσης +DateEndEvent=Ημερομηνία λήξης εκδήλωσης diff --git a/htdocs/langs/el_GR/holiday.lang b/htdocs/langs/el_GR/holiday.lang index 63b8a5d3c3b..5369f65d7b8 100644 --- a/htdocs/langs/el_GR/holiday.lang +++ b/htdocs/langs/el_GR/holiday.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Αδεια +Holidays=Άδειες +Holiday=Άδεια CPTitreMenu=Αδεια MenuReportMonth=Μηνιαία αναφορά MenuAddCP=Νέα αίτηση άδειας +MenuCollectiveAddCP=Νέα αίτηση συλλογικής άδειας NotActiveModCP=Πρέπει να ενεργοποιήσετε την ενότητα Άδειες για να δείτε αυτήν τη σελίδα. AddCP=Κάντε αίτηση άδειας DateDebCP=Ημερ. έναρξης @@ -19,10 +21,10 @@ Leave=Αίτημα άδειας LeaveId=Αναγνωριστικό άδειας ReviewedByCP=Θα εγκριθεί από UserID=Αναγνωριστικό χρήστη -UserForApprovalID=Χρήστη για αναγνωριστικό έγκρισης -UserForApprovalFirstname=Όνομα του χρήστη της έγκρισης -UserForApprovalLastname=Επώνυμο του χρήστη της έγκρισης -UserForApprovalLogin=Σύνδεση χρήστη έγκρισης +UserForApprovalID=Αναγνωριστικό Χρήστη έγκρισης +UserForApprovalFirstname=Όνομα χρήστη έγκρισης +UserForApprovalLastname=Επώνυμο του χρήστη έγκρισης +UserForApprovalLogin=Όνομα σύνδεσης χρήστη έγκρισης DescCP=Περιγραφή SendRequestCP=Δημιουργία αιτήματος άδειας DelayToRequestCP=Τα αιτήματα αδείας πρέπει να υποβάλλονται τουλάχιστον %s ημέρα(ες) πριν από αυτές. @@ -56,6 +58,7 @@ ConfirmDeleteCP=Επιβεβαίωση διαγραφής αυτής της αί ErrorCantDeleteCP=Σφάλμα δεν έχετε το δικαίωμα να διαγράψετε αυτό το αίτημα άδειας. CantCreateCP=Δεν έχετε το δικαίωμα να κάνετε αιτήματα άδειας. InvalidValidatorCP=Πρέπει να επιλέξεις τον προϊστάμενο για την αίτηση άδειας σου. +InvalidValidator=Ο χρήστης που επιλέχθηκε δεν είναι υπεύθυνος έγκρισης. NoDateDebut=Πρέπει να επιλέξετε μια ημερομηνία έναρξης. NoDateFin=Πρέπει να επιλέξετε μια ημερομηνία λήξης. ErrorDureeCP=Η αίτηση άδειας δεν περιέχει εργάσιμες ημέρες @@ -73,12 +76,14 @@ DetailRefusCP=Λόγος για την απόρριψη DateRefusCP=Ημερομηνία απόρριψης DateCancelCP=Ημερομηνία ακύρωσης DefineEventUserCP=Αναθέστε μια έκτακτη άδεια για έναν χρήστη -addEventToUserCP=Αφήστε την ανάθεση +addEventToUserCP=Έγκριση άδειας NotTheAssignedApprover=Δεν είστε ο εκχωρημένος υπεύθυνος έγκρισης MotifCP=Λόγος UserCP=Χρήστης ErrorAddEventToUserCP=Παρουσιάστηκε σφάλμα κατά την προσθήκη τις έκτακτης άδειας. AddEventToUserOkCP=Η προσθήκη της έκτακτης άδειας έχει ολοκληρωθεί. +ErrorFieldRequiredUserOrGroup=Πρέπει να συμπληρωθεί το πεδίο "ομάδα" ή το πεδίο "χρήστης". +fusionGroupsUsers=Το πεδίο ομάδων και το πεδίο χρήστη θα συγχωνευθούν MenuLogCP=Εμφάνιση καταγραφής αλλαγών LogCP=Αρχείο καταγραφής όλων των ενημερώσεων που έγιναν στο "Υπόλοιπο άδειας" ActionByCP=Ενημερώθηκε από @@ -86,6 +91,13 @@ UserUpdateCP=Ενημερώθηκε για PrevSoldeCP=Προηγούμενο Υπόλοιπο NewSoldeCP=Νέο υπόλοιπο alreadyCPexist=Υπάρχει ήδη αίτηση άδειας για αυτήν τη περίοδο. +UseralreadyCPexist=Ένα αίτημα άδειας έχει ήδη γίνει σε αυτήν την περίοδο για το %s. +groups=Ομάδες +users=Χρήστες +AutoSendMail=Αυτόματη αποστολή αλληλογραφίας +NewHolidayForGroup=Νέο αίτημα συλλογικής άδειας +SendRequestCollectiveCP=Αποστολή αιτήματος συλλογικής άδειας +AutoValidationOnCreate=Αυτόματη επικύρωση FirstDayOfHoliday=Πρώτη μέρα άδειας LastDayOfHoliday=Τελευταία μέρα άδειας BoxTitleLastLeaveRequests=Τελευταία %sτροποποιημένα αιτήματα άδειας @@ -117,11 +129,11 @@ HolidaysToValidateBody=Παρακάτω είναι ένα αίτημα άδει HolidaysToValidateDelay=Αυτή η αίτηση άδειας θα πραγματοποιηθεί εντός περιόδου μικρότερης των %s ημερών. HolidaysToValidateAlertSolde=Ο χρήστης που έκανε αυτήν την αίτηση άδειας δεν έχει αρκετές διαθέσιμες ημέρες. HolidaysValidated=Επικυρωμένα αιτήματα άδειας -HolidaysValidatedBody=Η αίτηση αδείας %s στο %s έχει επικυρωθεί. +HolidaysValidatedBody=Το αίτημά σας για άδεια από %s έως %s έχει επικυρωθεί. HolidaysRefused=Το αίτημα απορρίφθηκε HolidaysRefusedBody=Το αίτημα άδειας για %s στο %s απορρίφθηκε για τον ακόλουθο λόγο: HolidaysCanceled=Ακυρωμένο αίτημα αδείας -HolidaysCanceledBody=Η αίτηση αδείας σας για %s στο %s έχει ακυρωθεί. +HolidaysCanceledBody=Το αίτημά σας για άδεια από %s έως %s ακυρώθηκε. FollowedByACounter=1: Αυτό το είδος άδειας πρέπει να ακολουθείται από μετρητή. Ο μετρητής αυξάνεται χειροκίνητα ή αυτόματα και όταν επικυρωθεί ένα αίτημα άδειας, ο μετρητής μειώνεται.
0: Δεν ακολουθείται από μετρητή. NoLeaveWithCounterDefined=Δεν έχουν οριστεί τύποι άδειας που πρέπει να ακολουθούνται από μετρητή GoIntoDictionaryHolidayTypes=Πηγαίνετε στο Αρχικη - Ρυθμίσεις - Λεξικά - Τύπος άδειας για τη ρύθμιση των διαφορετικών τύπων αδειών. @@ -131,9 +143,16 @@ TemplatePDFHolidays=Πρότυπο PDF για αιτήματα άδειας FreeLegalTextOnHolidays=Ελεύθερο κείμενο σε pdf WatermarkOnDraftHolidayCards=Υδατογραφήματα σε προσχέδια αιτημάτων αδείας HolidaysToApprove=Διακοπές προς έγκριση -NobodyHasPermissionToValidateHolidays=Κανείς δεν έχει άδεια να επικυρώσει διακοπές -HolidayBalanceMonthlyUpdate=Μηνιαία ενημέρωση του υπολοιπου των εορτών +NobodyHasPermissionToValidateHolidays=Κανείς δεν έχει άδεια να επικυρώσει αιτήματα άδειας +HolidayBalanceMonthlyUpdate=Μηνιαία ενημέρωση υπολοίπου άδειας XIsAUsualNonWorkingDay=Η %s είναι συνήθως ΜΗ εργάσιμη ημέρα BlockHolidayIfNegative=Αποκλεισμός εάν το υπόλοιπο είναι αρνητικό LeaveRequestCreationBlockedBecauseBalanceIsNegative=Η δημιουργία αυτού του αιτήματος άδειας έχει αποκλειστεί επειδή το υπόλοιπό σας είναι αρνητικό ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Το αίτημα αδείας%s πρέπει να είναι προσχέδιο, ακυρωμένο ή απορριφθέν για να διαγράφει +IncreaseHolidays=Αύξηση του υπολοίπου άδειας +HolidayRecordsIncreased= Τα υπόλοιπα %s αδειών αυξήθηκαν +HolidayRecordIncreased=Το υπόλοιπο της άδειας αυξήθηκε +ConfirmMassIncreaseHoliday=Μαζική αύξηση των ημερών αδείας +NumberDayAddMass=Αριθμός ημέρας για προσθήκη στην επιλογή +ConfirmMassIncreaseHolidayQuestion=Είστε σίγουροι ότι θέλετε να αυξήσετε τις διακοπές των %s επιλεγμένων εγγραφών ; +HolidayQtyNotModified=Το υπόλοιπο των ημερών που απομένουν για το %s δεν έχει αλλάξει diff --git a/htdocs/langs/el_GR/hrm.lang b/htdocs/langs/el_GR/hrm.lang index e6eb6107843..0721140f6e8 100644 --- a/htdocs/langs/el_GR/hrm.lang +++ b/htdocs/langs/el_GR/hrm.lang @@ -2,7 +2,7 @@ # Admin -HRM_EMAIL_EXTERNAL_SERVICE=E-mail για αποτροπή εξωτερικών υπηρεσιών στο HRM +HRM_EMAIL_EXTERNAL_SERVICE=Email για την αποτροπή εξωτερικής υπηρεσίας HRM Establishments=Επιχειρήσεις Establishment=Επιχείρηση NewEstablishment=Νέα επιχείρηση @@ -26,8 +26,8 @@ HRM_DEFAULT_SKILL_DESCRIPTION=Προεπιλεγμένη περιγραφή τω deplacement=Ωράριο DateEval=Ημερομηνία αξιολόγησης JobCard=Καρτέλα θέσεων εργασίας -JobPosition=Θέση εργασίας -JobsPosition=Θέσεις εργασίας +JobPosition=Περιγραφή εργασίας +JobsPosition=Περιγραφές εργασιών NewSkill=Νέα Δεξιότητα SkillType=Τύπος δεξιότητας Skilldets=Λίστα βαθμών για αυτήν την δεξιότητα @@ -86,7 +86,7 @@ SaveAddSkill = Προσθήκη δεξιότητας(ων) SaveLevelSkill = Το επίπεδο δεξιοτήτων αποθηκεύτηκε DeleteSkill = Η δεξιότητα αφαιρέθηκε SkillsExtraFields=Συμπληρωματικά χαρακτηριστικά (Δεξιότητες) -JobsExtraFields=Συμπληρωματικά χαρακτηριστικά (Υπάλληλοι) +JobsExtraFields=Συμπληρωματικά χαρακτηριστικά (Προφίλ θέσης εργασίας) EvaluationsExtraFields=Συμπληρωματικά χαρακτηριστικά (Αξιολογήσεις) NeedBusinessTravels=Ανάγκη επαγγελματικών ταξιδιών NoDescription=Χωρίς περιγραφή diff --git a/htdocs/langs/el_GR/interventions.lang b/htdocs/langs/el_GR/interventions.lang index 7343febc66e..a88e3346568 100644 --- a/htdocs/langs/el_GR/interventions.lang +++ b/htdocs/langs/el_GR/interventions.lang @@ -34,7 +34,7 @@ InterventionCreatedInDolibarr=Η παρέμβαση %s δημιουργήθηκ InterventionValidatedInDolibarr=Η παρέμβαση %s επικυρώθηκε InterventionModifiedInDolibarr=Η παρέμβαση %s τροποποιήθηκε InterventionClassifiedBilledInDolibarr=Η παρέμβαση %s ορίστηκε ως τιμολογημένη -InterventionClassifiedUnbilledInDolibarr=Σετ Παρέμβαση %s ως μη τιμολογημένο +InterventionClassifiedUnbilledInDolibarr=Η παρέμβαση %s ορίστηκε ως μη τιμολογημένη InterventionSentByEMail=Η παρέμβαση %s εστάλη μέσω email InterventionDeletedInDolibarr=Η παρέμβαση %s διαγράφηκε InterventionsArea=Τομέας παρεμβάσεων @@ -68,3 +68,5 @@ ConfirmReopenIntervention=Είστε σίγουροι ότι θέλετε να GenerateInter=Δημιουργία παρέμβασης FichinterNoContractLinked=Η παρέμβαση %s έχει δημιουργηθεί χωρίς συνδεδεμένο συμβόλαιο. ErrorFicheinterCompanyDoesNotExist=Η εταιρεία δεν υπάρχει. Δεν έχει δημιουργηθεί παρέμβαση. +NextDateToIntervention=Ημερομηνία δημιουργίας επόμενης παρέμβασης +NoIntervention=Καμία παρέμβαση diff --git a/htdocs/langs/el_GR/ldap.lang b/htdocs/langs/el_GR/ldap.lang index 9d4e9462f60..ce71b71b688 100644 --- a/htdocs/langs/el_GR/ldap.lang +++ b/htdocs/langs/el_GR/ldap.lang @@ -20,10 +20,10 @@ LDAPFieldSkypeExample=Παράδειγμα: skypeName UserSynchronized=Συγχρονισμένος χρήστης GroupSynchronized=Συγχρονισμένη ομάδα MemberSynchronized=Συγχρονισμένο μέλος -MemberTypeSynchronized=Συγχρονισμένος τύπος μέλους +MemberTypeSynchronized=Ο τύπος μέλους είναι συγχρονισμένος ContactSynchronized=Επικοινωνία συγχρονισμένη ForceSynchronize=Δυναμικός συγχρονισμός Dolibarr -> LDAP -ErrorFailedToReadLDAP=Αποτυχία ανάγνωσης LDAP βάση δεδομένων. Ελέγξτε LDAP εγκατάσταση module και την προσβασιμότητα της βάσης δεδομένων. +ErrorFailedToReadLDAP=Αποτυχία ανάγνωσης της LDAP βάση δεδομένων. Ελέγξτε τη ρύθμιση της ενότητας LDAP και την προσβασιμότητα της βάσης δεδομένων. PasswordOfUserInLDAP=Κωδικός πρόσβασης χρήστη στο LDAP LDAPPasswordHashType=Τύπος hash κωδικού πρόσβασης LDAPPasswordHashTypeExample=Τύπος hash κωδικού πρόσβασης που χρησιμοποιείται στον διακομιστή diff --git a/htdocs/langs/el_GR/loan.lang b/htdocs/langs/el_GR/loan.lang index 3d4d6d36803..9d6a9874c85 100644 --- a/htdocs/langs/el_GR/loan.lang +++ b/htdocs/langs/el_GR/loan.lang @@ -28,7 +28,7 @@ CantUseScheduleWithLoanStartedToPaid = Δεν είναι δυνατή η δημ CantModifyInterestIfScheduleIsUsed = Δεν μπορείτε να τροποποιήσετε το επιτόκιο εάν χρησιμοποιείτε χρονοδιάγραμμα # Admin ConfigLoan=Διαμόρφωση της ενότητας δανείου -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Κεφάλαιο λογιστικού λογαριασμού από προεπιλογή -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Επιτόκιο λογιστικού λογαριασμού από προεπιλογή -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Ασφάλιση λογιστικού λογαριασμού από προεπιλογή +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί από προεπιλογή για κεφάλαια (ενότητα δανείου) +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί από προεπιλογή για τόκους (ενότητα δανείου) +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Λογαριασμός (από το λογιστικό σχέδιο) που θα χρησιμοποιηθεί από προεπιλογή για ασφάλιση (ενότητα δανείου) CreateCalcSchedule=Επεξεργασία οικονομικής δέσμευσης diff --git a/htdocs/langs/el_GR/mailmanspip.lang b/htdocs/langs/el_GR/mailmanspip.lang index 928fc330e69..79a1fb3d63e 100644 --- a/htdocs/langs/el_GR/mailmanspip.lang +++ b/htdocs/langs/el_GR/mailmanspip.lang @@ -7,7 +7,7 @@ MailmanCreationSuccess=Η δοκιμή ενεργοποίησης συνδρομ MailmanDeletionSuccess=Η δοκιμή κατάργησης συνδρομής εκτελέστηκε με επιτυχία SynchroMailManEnabled=Θα πραγματοποιηθεί ενημέρωση του Mailman SynchroSpipEnabled=Θα πραγματοποιηθεί ενημέρωση του Spip -DescADHERENT_MAILMAN_ADMINPW=Κωδικός πρόσβασης διαχειριστή του Mailman  +DescADHERENT_MAILMAN_ADMIN_PASSWORD=Κωδικός πρόσβασης διαχειριστή του Mailman  DescADHERENT_MAILMAN_URL=URL για συνδρομές Mailman DescADHERENT_MAILMAN_UNSUB_URL=URL για κατάργηση συνδρομών Mailman DescADHERENT_MAILMAN_LISTS=Λίστα (ες) για την αυτόματη αναγραφή των νέων μελών (χωρισμένες με κόμμα) diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang index 605ee14d77a..18f1f56ae44 100644 --- a/htdocs/langs/el_GR/main.lang +++ b/htdocs/langs/el_GR/main.lang @@ -10,7 +10,7 @@ DIRECTION=ltr # 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 +FONTFORPDF=DejaVuSans FONTSIZEFORPDF=10 SeparatorDecimal=, SeparatorThousand=. @@ -34,6 +34,7 @@ NoTemplateDefined=Δεν υπάρχει διαθέσιμο πρότυπο για AvailableVariables=Διαθέσιμες μεταβλητές αντικατάστασης NoTranslation=Δεν μεταφράστηκε Translation=Μετάφραση +Translations=Μεταφράσεις CurrentTimeZone=TimeZone PHP (server) EmptySearchString=Εισαγάγετε μη κενά κριτήρια αναζήτησης EnterADateCriteria=Εισαγάγετε κριτήρια ημερομηνίας @@ -59,7 +60,7 @@ ErrorFailedToSendMail=Αποτυχία αποστολής mail (αποστολέ ErrorFileNotUploaded=Το αρχείο δεν φορτώθηκε. Βεβαιωθείτε ότι το μέγεθος δεν υπερβαίνει το μέγιστο επιτρεπόμενο όριο, ότι υπάρχει διαθέσιμος χώρος στο δίσκο και ότι δεν υπάρχει ήδη ένα αρχείο με το ίδιο όνομα σε αυτόν τον κατάλογο. ErrorInternalErrorDetected=Εντοπίστηκε Σφάλμα ErrorWrongHostParameter=Λάθος παράμετρος διακομιστή -ErrorYourCountryIsNotDefined=Η χώρα σας δεν έχει οριστεί. Μεταβείτε στην Αρχική σελίδα-Ρυθμίσεις-Επεξεργασία και δημοσιεύστε την φόρμα πάλι. +ErrorYourCountryIsNotDefined=Η χώρα σας δεν έχει οριστεί. Μεταβείτε στην Αρχική-Ρυθμίσεις-Εταιρεία / Οργανισμός και δημοσιεύστε την φόρμα πάλι. ErrorRecordIsUsedByChild=Αποτυχία κατάργησης αυτής της εγγραφής. Αυτή η εγγραφή χρησιμοποιείται από τουλάχιστον ένα θυγατρικό αρχείο. ErrorWrongValue=Λάθος τιμή ErrorWrongValueForParameterX=Λανθασμένη τιμή για την παράμετρο %s @@ -124,7 +125,7 @@ YouCanSetOptionDolibarrMainProdToZero=Μπορείτε να διαβάσετε InformationToHelpDiagnose=Αυτές οι πληροφορίες μπορεί να είναι χρήσιμες για διαγνωστικούς σκοπούς (μπορείτε να ορίσετε την επιλογή $dolibarr_main_prod σε '1' για να αποκρύψετε ευαίσθητες πληροφορίες) MoreInformation=Περισσότερες πληροφορίες TechnicalInformation=Τεχνικές πληροφορίες -TechnicalID=Τεχνική ταυτότητα ID +TechnicalID=ID Τεχνικής πληροφορίας LineID=Αναγνωριστικό γραμμής NotePublic=Σημειώσεις (δημόσιες) NotePrivate=Σημειώσεις (προσωπικές) @@ -185,9 +186,9 @@ SaveAs=Αποθήκευση Ως SaveAndStay=Αποθήκευση και Νέο SaveAndNew=Αποθήκευση και Νέο TestConnection=Δοκιμή σύνδεσης -ToClone=Κλωνοποίηση -ConfirmCloneAsk=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε το αντικείμενο %s ; -ConfirmClone=Επιλέξτε τα δεδομένα που θέλετε να κλωνοποιήσετε: +ToClone=Αντιγραφή +ConfirmCloneAsk=Είστε σίγουροι ότι θέλετε να αντιγράψετε το αντικείμενο %s ; +ConfirmClone=Επιλέξτε τα δεδομένα που θέλετε να αντιγράψετε: NoCloneOptionsSpecified=Δεν καθορίστηκαν δεδομένα προς αντιγραφή Of=του Go=Μετάβαση @@ -205,6 +206,7 @@ Valid=Έγκυρο Approve=Έγκριση Disapprove=Δεν εγκρίνεται ReOpen=Εκ νέου άνοιγμα +OpenVerb=Ανοιχτά Upload=Μεταφόρτωση ToLink=Σύνδεσμος Select=Επιλογή @@ -222,8 +224,9 @@ UserGroup=Ομάδα χρηστών UserGroups=Ομάδες χρηστών NoUserGroupDefined=Κανένας χρήστης δεν ορίζεται στην ομάδα Password=Κωδικός πρόσβασης -PasswordRetype=Πληκτρολογήστε ξανά τον κωδικό πρόσβασης +PasswordRetype=Επαναλάβετε τον κωδικό πρόσβασης σας NoteSomeFeaturesAreDisabled=Σημειώστε ότι πολλές δυνατότητες/ενότητες είναι απενεργοποιημένες σε αυτήν την επίδειξη. +YourUserFile=Το αρχείο χρήστη σας Name=Όνομα NameSlashCompany=Όνομα / Εταιρεία Person=Άτομο @@ -265,8 +268,8 @@ Logout=Αποσύνδεση NoLogoutProcessWithAuthMode=Δεν εφαρμόζεται το χαρακτηριστικό αποσύνδεσης με λειτουργία ελέγχου ταυτότητας %s Connection=Είσοδος Setup=Ρυθμίσεις -Alert=Συναγερμός -MenuWarnings=Συναγερμοί +Alert=Ειδοποίηση +MenuWarnings=Ειδοποιήσεις Previous=Προηγούμ. Next=Επόμ. Cards=Καρτέλες @@ -343,7 +346,7 @@ MonthOfDay=Μήνας της ημέρας DaysOfWeek=Ημέρες της εβδομάδας HourShort=Ω MinuteShort=λ -Rate=Βαθμός +Rate=Τιμή CurrencyRate=Τιμή μετατροπής νομίσματος UseLocalTax=με Φ.Π.Α Bytes=Bytes @@ -407,13 +410,13 @@ Total=Σύνολο SubTotal=Υποσύνολο TotalHTShort=Σύνολο (εκτός) TotalHT100Short=Σύνολο 100%% (εκτός) -TotalHTShortCurrency=Σύνολο (εξαιρουμένου του νομίσματος) +TotalHTShortCurrency=Σύνολο (χωρίς Φ.Π.Α. σε νόμισμα) TotalTTCShort=Σύνολο (με Φ.Π.Α.) TotalHT=Σύνολο χωρίς ΦΠΑ TotalHTforthispage=Σύνολο (χωρίς φόρο) για αυτήν τη σελίδα Totalforthispage=Σύνολο για αυτή τη σελίδα TotalTTC=Σύνολο (με Φ.Π.Α.) -TotalTTCToYourCredit=Σύνολο (με ΦΠΑ) στο υπόλοιπο +TotalTTCToYourCredit=Σύνολο (συμπ. φόρου) στην πίστωσή σας TotalVAT=Συνολικός Φ.Π.Α. TotalVATIN=Σύνολο IGST TotalLT1=Συνολικός φόρος 2 @@ -422,18 +425,18 @@ TotalLT1ES=Σύνολο RE TotalLT2ES=Σύνολο IRPF TotalLT1IN=Σύνολο CGST TotalLT2IN=Σύνολο SGST -HT=Excl. φόρος -TTC=με Φ.Π.Α -INCVATONLY=Inc. ΦΠΑ -INCT=Inc. όλους τους φόρους +HT=Εκτός φόρων +TTC=Με Φ.Π.Α. +INCVATONLY=Με Φ.Π.Α. +INCT=Με όλους τους φόρους VAT=Φ.Π.Α VATIN=IGST VATs=Φόροι επί των πωλήσεων VATINs=Φόροι IGST LT1=Φόρος πωλήσεων 2 -LT1Type=Φόρος πωλήσεων 2 τύπου +LT1Type=Τύπος φόρου πωλήσεων 2 LT2=Φόρος πωλήσεων 3 -LT2Type=Φόρος πωλήσεων 3 τύπου +LT2Type=Τύπος φόρου πωλήσεων 3 LT1ES=ΑΠΕ LT2ES=IRPF LT1IN=CGST @@ -465,7 +468,7 @@ Ref=Αναφ. ExternalRef=εξωτερική Αναφ. RefSupplier=Αναφ. Προμηθευτή RefPayment=Αναφ. πληρωμής -CommercialProposalsShort=Εμπορικές προσφορές +CommercialProposalsShort=Προσφορές Comment=Σχόλιο Comments=Σχόλια ActionsToDo=Ενέργειες που πρέπει να γίνουν @@ -487,7 +490,8 @@ ActionsOnContact=Ενέργειες για αυτήν την επαφή / διε ActionsOnContract=Ενέργειες για αυτή τη σύμβαση ActionsOnMember=Ενέργειες σχετικά με αυτό το μέλος ActionsOnProduct=Ενέργειες σχετικά με αυτό το προϊόν -NActionsLate=%s καθυστερ. +ActionsOnAsset=Ενέργειες για αυτό το πάγιο στοιχείο +NActionsLate=%s σε καθυστέρηση ToDo=Να γίνουν Completed=Ολοκληρωμένα Running=Σε εξέλιξη @@ -503,21 +507,21 @@ Duration=Διάρκεια TotalDuration=Συνολική Διάρκεια Summary=Σύνοψη DolibarrStateBoard=Στατιστικά στοιχεία βάσης δεδομένων -DolibarrWorkBoard=Άνοιγμα αντικειμένων +DolibarrWorkBoard=Ανοιχτά αντικείμενα NoOpenedElementToProcess=Δεν υπάρχει ανοιχτό στοιχείο για επεξεργασία -Available=Σε διάθεση -NotYetAvailable=Δεν είναι ακόμη σε διάθεση -NotAvailable=Χωρίς διάθεση +Available=Διαθέσιμα +NotYetAvailable=Δεν είναι ακόμη διαθέσιμα +NotAvailable=Μη διαθέσιμα Categories=Ετικέτες/Κατηγορίες Category=Ετικέτα/Κατηγορία -By=Από +By=Ανά From=Από FromDate=Από FromLocation=Από to=πρός -To=πρός -ToDate=πρός -ToLocation=πρός +To=Προς +ToDate=έως +ToLocation=Προς at=στο and=και or=ή @@ -541,8 +545,8 @@ Drafts=Προσχέδια StatusInterInvoiced=Τιμολογήθηκε Validated=Επικυρωμένο ValidatedToProduce=Επικυρώθηκε (Για παραγωγή) -Opened=Άνοιγμα -OpenAll=Άνοιγμα (Όλα) +Opened=Ανοιχτά +OpenAll=Ανοιχτό (Όλα) ClosedAll=Κλειστό (Όλα) New=Νέο Discount=Έκπτωση @@ -553,7 +557,7 @@ OriginalSize=Αρχικό μέγεθος Received=Παραλήφθηκε Paid=Πληρωμένα Topic=Θέμα -ByCompanies=Ανά στοιχείο +ByCompanies=Ανά τρίτα μέρη ByUsers=Ανα χρήστη Links=Σύνδεσμοι Link=Σύνδεσμος @@ -561,11 +565,11 @@ Rejects=Απορρίψεις Preview=Προεπισκόπηση NextStep=Επόμενο Βήμα Datas=Δεδομένα -None=Κανένας +None=Κανένα NoneF=Καμία NoneOrSeveral=Κανένα ή πολλά Late=Καθυστερ. -LateDesc=Ένα στοιχείο ορίζεται ως Καθυστέρηση σύμφωνα με τη διαμόρφωση του συστήματος στο μενού Αρχική σελίδα - Ρύθμιση - Ειδοποιήσεις. +LateDesc=Ένα στοιχείο ορίζεται ως Καθυστερημένο σύμφωνα με τη διαμόρφωση του συστήματος στο μενού Αρχική - Ρυθμίσεις - Ειδοποιήσεις. NoItemLate=Δεν υπάρχει καθυστερημένο στοιχείο Photo=Εικόνα Photos=Εικόνες @@ -626,7 +630,7 @@ MonthVeryShort10=Ο MonthVeryShort11=Ν MonthVeryShort12=Δ AttachedFiles=Επισυναπτόμενα αρχεία και έγγραφα -JoinMainDoc=Συμμετοχή στο κύριο έγγραφο +JoinMainDoc=Επισυνάψτε το κύριο έγγραφο JoinMainDocOrLastGenerated=Στείλτε το κύριο έγγραφο ή το τελευταίο που δημιουργήθηκε εάν δεν βρεθεί DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD @@ -644,7 +648,7 @@ File=Αρχείο Files=Αρχεία NotAllowed=Δεν επιτρέπεται ReadPermissionNotAllowed=Δεν υπάρχει δικαίωμα ανάγνωσης -AmountInCurrency=Σύνολο σε %s +AmountInCurrency=Ποσό σε νόμισμα %s Example=Παράδειγμα Examples=Παραδείγματα NoExample=Κανένα παράδειγμα @@ -662,7 +666,7 @@ Check=Έλεγχος Uncheck=Αποεπιλογή Internal=Εσωτερικός External=Εξωτερικός -Internals=Εσωτερικόι +Internals=Εσωτερικοί Externals=Εξωτερικοί Warning=Προειδοποίηση Warnings=Προειδοποιήσεις @@ -687,7 +691,7 @@ FeatureNotYetSupported=Η δυνατότητα δεν υποστηρίζεται CloseWindow=Κλείσιμο Παραθύρου Response=Απάντηση Priority=Προτεραιότητα -SendByMail=Απόστειλε μέσω ηλεκτρονικού ταχυδρομείου +SendByMail=Αποστολή μέσω email MailSentBy=Το email στάλθηκε από NotSent=Δεν εστάλη TextUsedInTheMessageBody=Κείμενο email @@ -717,12 +721,12 @@ AutomaticCode=Αυτόματος Κωδικός FeatureDisabled=Η δυνατότητα είναι απενεργοποιημένη MoveBox=Μετακίνηση widget Offered=Προσφέρθηκε -NotEnoughPermissions=Δεν έχετε τα απαραίτητα δικαιώματα +NotEnoughPermissions=Δεν έχετε τα απαραίτητα δικαιώματα για αυτή την ενέργεια UserNotInHierachy=Αυτή η ενέργεια αφορά τους επόπτες αυτού του χρήστη -SessionName=Όνομα συνόδου +SessionName=Όνομα συνεδρίας Method=Μέθοδος Receive=Παραλαβή -CompleteOrNoMoreReceptionExpected=Ολοκληρώθηκε ή δεν αναμένετε κάτι περισσότερο +CompleteOrNoMoreReceptionExpected=Ολοκληρώθηκε ή δεν αναμένεται κάτι περισσότερο ExpectedValue=Αναμενόμενη αξία ExpectedQty=Αναμενόμενη ποσότητα PartialWoman=Μερική @@ -731,7 +735,7 @@ NeverReceived=Δεν παραλήφθηκε Canceled=Ακυρώθηκε YouCanChangeValuesForThisListFromDictionarySetup=Μπορείτε να αλλάξετε τιμές για αυτήν τη λίστα από το μενού Ρυθμίσεις - Λεξικά YouCanChangeValuesForThisListFrom=Μπορείτε να αλλάξετε τιμές για αυτήν τη λίστα από το μενού %s -YouCanSetDefaultValueInModuleSetup=Μπορείτε να ορίσετε την προεπιλεγμένη τιμή που χρησιμοποιείται κατά τη δημιουργία μιας νέας εγγραφής στη ρύθμιση μονάδων +YouCanSetDefaultValueInModuleSetup=Μπορείτε να ορίσετε την προεπιλεγμένη τιμή που χρησιμοποιείται κατά τη δημιουργία μιας νέας εγγραφής στη ρύθμιση της ενότητας Color=Χρώμα Documents=Συνδεδεμένα Αρχεία Documents2=Έγγραφα @@ -747,19 +751,19 @@ ThisLimitIsDefinedInSetupAt=Όριο Dolibarr (Μενού %s): %s Kb, όριο P NoFileFound=Δεν έχουν μεταφορτωθεί έγγραφα CurrentUserLanguage=Τρέχουσα γλώσσα CurrentTheme=Τρέχον θέμα -CurrentMenuManager=Τρέχουσα διαχειρηση μενού -Browser=Browser +CurrentMenuManager=Τρέχουσα διαχείριση μενού +Browser=Πρόγραμμα περιήγησης Layout=Σχέδιο Screen=Οθόνη -DisabledModules=Απενεργοποιημένες Μονάδες +DisabledModules=Απενεργοποιημένες ενότητες For=Για ForCustomer=Για τον πελάτη Signature=Υπογραφή DateOfSignature=Ημερομηνία υπογραφής -HidePassword=Εμφάνιση πραγματικής εντολής με απόκρυψη του κωδικού -UnHidePassword=Εμφάνιση πραγματικής εντολής με εμφάνιση του κωδικού -Root=Ρίζα -RootOfMedias=Ρίζα δημόσιων μέσων (/ media) +HidePassword=Εμφάνιση πραγματικής εντολής με απόκρυψη του κωδικού πρόσβασης +UnHidePassword=Εμφάνιση πραγματικής εντολής με εμφάνιση του κωδικού πρόσβασης +Root=Ριζικός κατάλογος +RootOfMedias=Ριζικός κατάλογος δημόσιων πολυμέσων (/medias) Informations=Πληροφορίες Page=Σελίδα Notes=Σημειώσεις @@ -767,13 +771,13 @@ AddNewLine=Προσθήκη νέας γραμμής AddFile=Προσθήκη Αρχείου FreeZone=Προϊόν ελεύθερου κειμένου FreeLineOfType=Στοιχείο ελεύθερου κειμένου, πληκτρολογήστε: -CloneMainAttributes=Κλωνοποίηση αντικειμένου με τα βασικά του χαρακτηριστικά +CloneMainAttributes=Αντιγραφή αντικειμένου με τα βασικά του χαρακτηριστικά ReGeneratePDF=Επαναπαραγωγή PDF PDFMerge=Συγχώνευση PDF Merge=Συγχώνευση DocumentModelStandardPDF=Τυπικό πρότυπο PDF -PrintContentArea=Εμγάνιση σελίδας για εκτύπωση -MenuManager=Menu manager +PrintContentArea=Εμφάνιση σελίδας για εκτύπωση της κύριας περιοχής περιεχομένου +MenuManager=Διαχείριση μενού WarningYouAreInMaintenanceMode=Προσοχή, βρίσκεστε σε λειτουργία συντήρησης: επιτρέπεται μόνο η σύνδεση %s να χρησιμοποιεί την εφαρμογή σε αυτή τη λειτουργία. CoreErrorTitle=Σφάλμα συστήματος CoreErrorMessage=Λυπούμαστε, παρουσιάστηκε ένα σφάλμα. Επικοινωνήστε με το διαχειριστή του συστήματος σας για να ελέγξετε τα αρχεία καταγραφής ή να απενεργοποιήστε το $ dolibarr_main_prod = 1 για να πάρετε περισσότερες πληροφορίες. @@ -781,7 +785,7 @@ CreditCard=Πιστωτική Κάρτα ValidatePayment=Επικύρωση πληρωμής CreditOrDebitCard=Πιστωτική ή χρεωστική κάρτα FieldsWithAreMandatory=Τα πεδία με%s είναι υποχρεωτικά -FieldsWithIsForPublic=Τα πεδία με %s εμφανίζονται στη δημόσια λίστα των μελών. Αν δεν το θέλετε, καταργήστε την επιλογή του πλαισίου "δημόσιο". +FieldsWithIsForPublic=Τα πεδία με %s εμφανίζονται στη δημόσια λίστα μελών. Εάν δεν το θέλετε αυτό, καταργήστε την επιλογή του πλαισίου "δημόσιο". AccordingToGeoIPDatabase=(σύμφωνα με τη μετατροπή GeoIP) Line=Γραμμή NotSupported=Δεν υποστηρίζεται @@ -790,8 +794,8 @@ Result=Αποτέλεσμα ToTest=Δοκιμή ValidateBefore=Το στοιχείο πρέπει να επικυρωθεί πριν χρησιμοποιήσετε αυτήν τη δυνατότητα Visibility=Ορατότητα -Totalizable=Συνολικά -TotalizableDesc=Αυτό το πεδίο είναι συνολικά σε λίστα +Totalizable=Αθροίσιμο +TotalizableDesc=Αυτό το πεδίο αθροίζεται στη λίστα Private=Προσωπικό Hidden=Κρυφό Resources=Πόροι @@ -801,39 +805,40 @@ Before=Πριν After=Μετά IPAddress=Η διεύθυνση IP Frequency=Συχνότητα -IM=Άμεσων μηνυμάτων +IM=Υπηρεσία άμεσης ανταλλαγής μηνυμάτων NewAttribute=Νέο χαρακτηριστικό -AttributeCode=Κωδικός Ιδιότητα +AttributeCode=Κωδικός χαρακτηριστικού URLPhoto=URL της φωτογραφία / λογότυπο SetLinkToAnotherThirdParty=Σύνδεση με άλλο τρίτο μέρος -LinkTo=Σύνδεση σε -LinkToProposal=Σύνδεση σε προσφορά +LinkTo=Σύνδεση με +LinkToProposal=Σύνδεση με προσφορά +LinkToExpedition= Σύνδεση με την καμπάνια LinkToOrder=Σύνδεση με παραγγελία -LinkToInvoice=Σύνδεση σε τιμολόγιο +LinkToInvoice=Σύνδεση με τιμολόγιο LinkToTemplateInvoice=Σύνδεση με το τιμολόγιο προτύπου -LinkToSupplierOrder=Σύνδεση με την παραγγελία αγοράς -LinkToSupplierProposal=Σύνδεση με την πρόταση προμηθευτή -LinkToSupplierInvoice=Σύνδεση με το τιμολόγιο προμηθευτή -LinkToContract=Σύνδεση με συμβόλαιο -LinkToIntervention=Σύνδεση σε παρέμβαση -LinkToTicket=Σύνδεση με το εισιτήριο -LinkToMo=Σύνδεσμος προς Mo +LinkToSupplierOrder=Σύνδεση με παραγγελία αγοράς +LinkToSupplierProposal=Σύνδεση με πρσφορά προμηθευτή +LinkToSupplierInvoice=Σύνδεση με τιμολόγιο προμηθευτή +LinkToContract=Σύνδεση με σύμβαση +LinkToIntervention=Σύνδεση με παρέμβαση +LinkToTicket=Σύνδεση με το ticket +LinkToMo=Σύνδεση με Mo CreateDraft=Δημιουργία σχεδίου SetToDraft=Επιστροφή στο προσχέδιο ClickToEdit=Κάντε κλικ για επεξεργασία ClickToRefresh=Κάντε κλικ για ανανέωση EditWithEditor=Επεξεργασία με το CKEditor EditWithTextEditor=Επεξεργασία με πρόγραμμα επεξεργασίας κειμένου -EditHTMLSource=Επεξεργασία προέλευσης HTML -ObjectDeleted=Αντικείμενο %s διαγράφεται +EditHTMLSource=Επεξεργασία πηγής HTML +ObjectDeleted=Το αντικείμενο %s διαγράφηκε ByCountry=Ανά χώρα ByTown=Ανά πόλη -ByDate=Με ημερομηνία +ByDate=Ανά ημερομηνία ByMonthYear=Ανά μήνα/έτος ByYear=Ανά έτος ByMonth=Με το μήνα ByDay=Ανά μέρα -BySalesRepresentative=Με τον αντιπρόσωπο πωλήσεων +BySalesRepresentative=Ανά αντιπρόσωπο πωλήσεων LinkedToSpecificUsers=Συνδέεται με μια συγκεκριμένη επαφή χρήστη NoResults=Δεν υπάρχουν αποτελέσματα AdminTools=Εργαλεία διαχειριστή @@ -841,7 +846,7 @@ SystemTools=Εργαλεία συστήματος ModulesSystemTools=Εργαλεία ενοτήτων Test=Δοκιμή Element=Στοιχείο -NoPhotoYet=Δεν υπαρχουν διαθεσημες φωτογραφίες ακόμα +NoPhotoYet=Δεν υπάρχουν διαθέσιμες εικόνες Dashboard=Πίνακας ελέγχου MyDashboard=Ο πίνακας ελέγχου μου Deductible=Εκπίπτουν @@ -849,13 +854,13 @@ from=από toward=προς Access=Πρόσβαση SelectAction=Επιλογή ενέργειας -SelectTargetUser=Επιλέξτε το χρήστη / υπάλληλο στόχου +SelectTargetUser=Επιλέξτε χρήστη/υπάλληλο-στόχο HelpCopyToClipboard=Χρησιμοποιήστε το Ctrl + C για να αντιγράψετε στο πρόχειρο SaveUploadedFileWithMask=Αποθηκεύστε το αρχείο στον server με το όνομα "%s" (αλλιώς "%s") OriginFileName=Αρχική Ονομασία SetDemandReason=Ρυθμίστε την πηγή SetBankAccount=Προσδιορίστε Τραπεζικό λογαριασμό -AccountCurrency=Τραπεζικός λογαριασμός +AccountCurrency=Νόμισμα Λογαριασμού ViewPrivateNote=Προβολή σημειώσεων XMoreLines=%s γραμμή (ές) κρυμμένη ShowMoreLines=Εμφάνιση περισσότερων / λιγότερων γραμμών @@ -865,8 +870,8 @@ SelectElementAndClick=Επιλέξτε ένα στοιχείο και κάντε PrintFile=Εκτύπωση του αρχείου %s ShowTransaction=Εμφάνιση καταχώρισης σε τραπεζικό λογαριασμό ShowIntervention=Εμφάνιση παρέμβασης -ShowContract=Εμφάνιση συμβολαίου -GoIntoSetupToChangeLogo=Μεταβείτε στην Αρχική σελίδα - Εγκατάσταση - Εταιρεία για να αλλάξετε το λογότυπο ή να μεταβείτε στην Αρχική σελίδα - Ρύθμιση - Εμφάνιση για απόκρυψη. +ShowContract=Εμφάνιση σύμβασης +GoIntoSetupToChangeLogo=Μεταβείτε στην Αρχική - Ρυθμίσεις - Εταιρεία / Οργανισμός για να αλλάξετε το λογότυπο ή μεταβείτε στην Αρχική - Ρυθμίσεις - Εμφάνιση για απόκρυψη αυτού. Deny=Άρνηση Denied=Άρνηση ListOf=Λίστα %s @@ -876,29 +881,32 @@ Genderman=Αρσενικό Genderwoman=Θηλυκό Genderother=Άλλο ViewList=Προβολή λίστας -ViewGantt=Gantt θέα -ViewKanban=Θέα στο Kanban +ViewGantt=Προβολή τύπου Gantt +ViewKanban=Προβολή τύπου Kanban Mandatory=Υποχρεωτικό Hello=Χαίρετε GoodBye=Αντίο σας Sincerely=Ειλικρινώς -ConfirmDeleteObject=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το αντικείμενο; +ConfirmDeleteObject=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το αντικείμενο; DeleteLine=Διαγραφή γραμμής -ConfirmDeleteLine=Είστε σίγουρος ότι θέλετε να διαγράψετε αυτή τη γραμμή; +ConfirmDeleteLine=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη γραμμή; ErrorPDFTkOutputFileNotFound=Σφάλμα: το αρχείο δεν δημιουργήθηκε. Ελέγξτε ότι το 'pdftk' είναι εγκατεστημένο σε έναν κατάλογο που περιλαμβάνεται στο environment variable $PATH (μόνο linux/unix) ή επικοινωνήστε με τον διαχειριστή του συστήματός σας. -NoPDFAvailableForDocGenAmongChecked=Δεν υπήρχε αρχείο PDF για την παραγωγή εγγράφων μεταξύ των καταχωρημένων εγγραφών -TooManyRecordForMassAction=Έχουν επιλεγεί πάρα πολλά αρχεία για μαζική δράση. Η ενέργεια περιορίζεται σε μια λίστα αρχείων %s. +NoPDFAvailableForDocGenAmongChecked=Δεν υπήρχε αρχείο PDF για την παραγωγή εγγράφων μεταξύ των επιλεγμένων εγγραφών +TooManyRecordForMassAction=Έχουν επιλεγεί πάρα πολλά αρχεία για μαζική δράση. Η ενέργεια περιορίζεται σε μια λίστα %sαρχείων . NoRecordSelected=Δεν έχει επιλεγεί εγγραφή -MassFilesArea=Περιοχή για αρχεία που δημιουργούνται από μαζικές ενέργειες -ShowTempMassFilesArea=Εμφάνιση περιοχής αρχείων που έχουν δημιουργηθεί με μαζικές ενέργειες +MassFilesArea=Τομέας αρχείων που δημιουργήθηκαν από μαζικές ενέργειες +ShowTempMassFilesArea=Εμφάνιση τομέα αρχείων που έχουν δημιουργηθεί με μαζικές ενέργειες ConfirmMassDeletion=Επιβεβαίωση μαζικής διαγραφής -ConfirmMassDeletionQuestion=Είστε βέβαιοι ότι θέλετε να διαγράψετε τις επιλεγμένες εγγραφές %s; +ConfirmMassDeletionQuestion=Είστε σίγουροι ότι θέλετε να διαγράψετε τις επιλεγμένες εγγραφές %s; +ConfirmMassClone=Επιβεβαίωση μαζικής κλωνοποίησης +ConfirmMassCloneQuestion=Επιλέξτε έργο για κλωνοποίηση +ConfirmMassCloneToOneProject=Κλωνοποίηση στο έργο %s RelatedObjects=Σχετικά Αντικείμενα -ClassifyBilled=Χαρακτηρισμός ως τιμολογημένο -ClassifyUnbilled=Ταξινόμηση των μη τιμολογημένων +ClassifyBilled=Ταξινόμηση ως τιμολογημένο +ClassifyUnbilled=Ταξινόμηση ως μη τιμολογημένο Progress=Πρόοδος -ProgressShort=Progr. -FrontOffice=Μπροστινό γραφείο +ProgressShort=Πρόοδος +FrontOffice=Front office BackOffice=Υποστήριξη Submit=Υποβολή View=Προβολή @@ -908,10 +916,10 @@ ExportFilteredList=Εξαγωγή φιλτραρισμένης λίστας ExportList=Εξαγωγή λίστας ExportOptions=Επιλογές Εξαγωγής IncludeDocsAlreadyExported=Συμπεριλάβετε έγγραφα που έχουν ήδη εξαχθεί -ExportOfPiecesAlreadyExportedIsEnable=Η εξαγωγή τεμαχίων που έχουν ήδη εξαχθεί είναι δυνατή -ExportOfPiecesAlreadyExportedIsDisable=Η εξαγωγή τεμαχίων που έχουν ήδη εξαχθεί είναι απενεργοποιημένη +ExportOfPiecesAlreadyExportedIsEnable=Τα έγγραφα που έχουν ήδη εξαχθεί είναι ορατά και θα εξαχθούν ξανά +ExportOfPiecesAlreadyExportedIsDisable=Τα έγγραφα που έχουν ήδη εξαχθεί είναι κρυφά και δεν θα εξαχθούν ξανά AllExportedMovementsWereRecordedAsExported=Όλες οι εξαγόμενες κινήσεις καταγράφηκαν ως εξαγόμενες -NotAllExportedMovementsCouldBeRecordedAsExported=Δεν μπορούν να καταγραφούν όλες οι εξαγόμενες κινήσεις ως εξαγωγές +NotAllExportedMovementsCouldBeRecordedAsExported=Δεν ήταν δυνατή η καταγραφή όλων των εξαγόμενων κινήσεων Miscellaneous=Διάφορα Calendar=Ημερολόγιο GroupBy=Ομαδοποίηση κατά... @@ -923,43 +931,44 @@ SomeTranslationAreUncomplete=Ορισμένες από τις διαθέσιμε DirectDownloadLink=Δημόσιος σύνδεσμος λήψης PublicDownloadLinkDesc=Απαιτείται μόνο ο σύνδεσμος για τη λήψη του αρχείου DirectDownloadInternalLink=Ιδιωτικός σύνδεσμος λήψης -PrivateDownloadLinkDesc=Πρέπει να είστε συνδεδεμένοι και χρειάζεστε δικαιώματα για να δείτε ή να κατεβάσετε το αρχείο -Download=Κατεβάστε +PrivateDownloadLinkDesc=Πρέπει να είστε συνδεδεμένοι και να έχετε τα απαραίτητα δικαιώματα για να δείτε ή να κατεβάσετε το αρχείο +Download=Λήψη DownloadDocument=Λήψη εγγράφου +DownloadSignedDocument=Λήψη υπογεγραμμένου εγγράφου ActualizeCurrency=Ενημέρωση τιμής νομίσματος Fiscalyear=Οικονομικό έτος -ModuleBuilder=Ενότητα και Εργαλείο δημιουργίας εφαρμογών +ModuleBuilder=Εφαρμογή δημιουργίας ενοτήτων SetMultiCurrencyCode=Ορισμός νομίσματος BulkActions=Μαζικές ενέργειες -ClickToShowHelp=Κάντε κλικ για να εμφανιστεί η βοήθεια βοήθειας -WebSite=Δικτυακός τόπος +ClickToShowHelp=Κάντε κλικ για να εμφανιστεί το αναδυόμενο πλαίσιο βοήθειας +WebSite=Ιστοσελίδα WebSites=Ιστοσελίδες -WebSiteAccounts=Λογαριασμοί ιστοτόπων +WebSiteAccounts=Λογαριασμοί ιστοσελίδας ExpenseReport=Αναφορά εξόδων ExpenseReports=Αναφορές εξόδων HR=HR HRAndBank=HR και Τράπεζα AutomaticallyCalculated=Αυτόματα υπολογισμένο TitleSetToDraft=Επιστροφή σε προσχέδιο -ConfirmSetToDraft=Είστε βέβαιοι ότι θέλετε να επιστρέψετε στην κατάσταση Προετοιμασίας; +ConfirmSetToDraft=Είστε σίγουροι ότι θέλετε να επιστρέψετε στην κατάσταση Προσχεδίου; ImportId=Εισαγωγή αναγνωριστικού Events=Συμβάντα EMailTemplates=Πρότυπα ηλεκτρονικού ταχυδρομείου -FileNotShared=Αρχείο που δεν μοιράζεται με εξωτερικό κοινό +FileNotShared=Αρχείο που δεν μοιράζεται με εξωτερικούς χρήστες Project=Έργο Projects=Έργα -LeadOrProject=Μόλυβδος | Εργο -LeadsOrProjects=Οδηγεί | Εργα -Lead=Οδηγω -Leads=Οδηγεί -ListOpenLeads=Κατάλογος ανοικτών αγωγών -ListOpenProjects=Κατάλογος ανοιχτών έργων -NewLeadOrProject=Νέο έργο ή έργο -Rights=Άδειες +LeadOrProject=Προοπτική | Έργο +LeadsOrProjects=Προοπτικές | Έργα +Lead=Προοπτική +Leads=Προοπτικές +ListOpenLeads=Λίστα ανοικτών προοπτικών +ListOpenProjects=Λίστα ανοιχτών έργων +NewLeadOrProject=Νέα προοπτική ή έργο +Rights=Δικαιώματα LineNb=Αριθμός γραμμής. IncotermLabel=Διεθνείς Εμπορικοί Όροι -TabLetteringCustomer=Γράμματα πελατών -TabLetteringSupplier=Επιστολές πωλητών +TabLetteringCustomer=Λογιστική συμφωνία πελατών +TabLetteringSupplier=Λογιστική συμφωνία προμηθευτών Monday=Δευτέρα Tuesday=Τρίτη Wednesday=Τετάρτη @@ -1022,13 +1031,13 @@ billion=δισεκατομμύριο trillion=τρισεκατομμύριο quadrillion=τετρακισεκατομμύριο SelectMailModel=Επιλέξτε ένα πρότυπο ηλεκτρονικού ταχυδρομείου -SetRef=Ρύθμιση αναφ -Select2ResultFoundUseArrows=Βρέθηκαν αποτελέσματα. Χρησιμοποιήστε τα βέλη για να επιλέξετε. -Select2NotFound=Δεν υπάρχουν αποτελέσματα +SetRef=Αναφορά Σετ +Select2ResultFoundUseArrows=Βρέθηκαν ορισμένα αποτελέσματα. Χρησιμοποιήστε τα βέλη για να επιλέξετε. +Select2NotFound=Δεν βρέθηκε αποτέλεσμα Select2Enter=Εισαγωγή Select2MoreCharacter=ή περισσότερους χαρακτήρες Select2MoreCharacters=ή περισσότερους χαρακτήρες -Select2MoreCharactersMore=Σύνταξη αναζήτησης:
| Ή (α | β)
* Οποιοσδήποτε χαρακτήρας (a * b)
^ Ξεκινήστε με (^ ab)
$ Τέλος με (ab $)
+Select2MoreCharactersMore=Σύνταξη αναζήτησης:
| Ή (α | β)
* Οποιοσδήποτε χαρακτήρας (α * β)
^ Ξεκινήστε με (^ ab)
$ Τέλος με (αβ $)
Select2LoadingMoreResults=Φόρτωση περισσότερων αποτελεσμάτων Select2SearchInProgress=Αναζήτηση σε εξέλιξη SearchIntoThirdparties=Πελ./Προμ. @@ -1042,16 +1051,17 @@ SearchIntoMO=Εντολές Παραγωγής SearchIntoTasks=Εργασίες SearchIntoCustomerInvoices=Τιμολόγια πελατών SearchIntoSupplierInvoices=Τιμολόγια προμηθευτή -SearchIntoCustomerOrders=Παραγγελίες πωλήσεων -SearchIntoSupplierOrders=Εντολές αγοράς +SearchIntoCustomerOrders=Εντολές πωλήσεων +SearchIntoSupplierOrders=Παραγγελίες αγοράς SearchIntoCustomerProposals=Προσφορές -SearchIntoSupplierProposals=Προτάσεις πωλητών +SearchIntoSupplierProposals=Προσφορές προμηθευτών SearchIntoInterventions=Παρεμβάσεις SearchIntoContracts=Συμβόλαια SearchIntoCustomerShipments=Αποστολές Πελάτη SearchIntoExpenseReports=Αναφορές εξόδων SearchIntoLeaves=Άδεια -SearchIntoTickets=Εισιτήρια +SearchIntoKM=Γνωσιακή βάση +SearchIntoTickets=Tickets SearchIntoCustomerPayments=Πληρωμές πελατών SearchIntoVendorPayments=Πληρωμές προμηθευτών SearchIntoMiscPayments=Διάφορες πληρωμές @@ -1106,7 +1116,7 @@ ContactDefault_project=Έργο ContactDefault_project_task=Εργασία ContactDefault_propal=Προσφορά ContactDefault_supplier_proposal=Προσφορά Προμηθευτή -ContactDefault_ticket=Εισιτήριο +ContactDefault_ticket=Ticket ContactAddedAutomatically=Η επαφή προστέθηκε από ρόλους τρίτων επαφών More=Περισσότερα ShowDetails=Εμφάνιση λεπτομερειών @@ -1122,6 +1132,7 @@ DeleteFileText=Θέλετε πραγματικά να διαγράψετε αυ ShowOtherLanguages=Εμφάνιση άλλων γλωσσών SwitchInEditModeToAddTranslation=Μεταβείτε στη λειτουργία επεξεργασίας για να προσθέσετε μεταφράσεις για αυτήν τη γλώσσα NotUsedForThisCustomer=Δεν χρησιμοποιείται για αυτόν τον πελάτη +NotUsedForThisVendor=Δεν χρησιμοποιείται για αυτόν τον προμηθευτή AmountMustBePositive=Το ποσό πρέπει να είναι θετικό ByStatus=Κατά κατάσταση InformationMessage=Πληροφορία @@ -1132,7 +1143,7 @@ MODIFYInDolibarr=Η εγγραφή %s τροποποιήθηκε DELETEInDolibarr=Η εγγραφή %s διαγράφηκε VALIDATEInDolibarr=Η εγγραφή %s επικυρώθηκε APPROVEDInDolibarr=Εγκρίθηκε η εγγραφή %s -DefaultMailModel=Προεπιλεγμένο μοντέλο αλληλογραφίας +DefaultMailModel=Προεπιλεγμένο πρότυπο αλληλογραφίας PublicVendorName=Επωνυμία προμηθευτή DateOfBirth=Ημερομηνία γέννησης SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Το Security token έχει λήξει, επομένως η ενέργεια ακυρώθηκε. Παρακαλώ προσπαθήστε ξανά. @@ -1142,22 +1153,36 @@ EventReminder=Υπενθύμιση συμβάντος UpdateForAllLines=Ενημέρωση για όλες τις γραμμές OnHold=Σε Αναμονή Civility=Ευγένεια -AffectTag=Επιβολή ετικέτας +AffectTag=Αντιστοιχίστε μια ετικέτα +AffectUser=Εκχώρηση σε χρήστη +SetSupervisor=Ορίστε τον επόπτη CreateExternalUser=Δημιουργία εξωτερικού χρήστη -ConfirmAffectTag=Μαζική επιβολή ετικετών -ConfirmAffectTagQuestion=Είστε σίγουροι ότι θέλετε να επιβάλετε τις ετικέτες στις επιλεγμένες εγγραφές %s; +ConfirmAffectTag=Μαζική αντιστοίχιση ετικετών +ConfirmAffectUser=Μαζική εκχώρηση σε χρήστες +ProjectRole=Ρόλος έχει εκχωρηθεί σε κάθε έργο/ευκαιρία +TasksRole=Ρόλος που έχει εκχωρηθεί σε κάθε εργασία (εάν χρησιμοποιείται) +ConfirmSetSupervisor=Μαζικός ορισμός Επόπτη +ConfirmUpdatePrice=Επιλέξτε ένα ποσοστό αύξησης/μείωσης τιμής +ConfirmAffectTagQuestion=Είστε σίγουροι ότι θέλετε να αντιστοιχίσετε ετικέτες στις επιλεγμένες εγγραφές %s; +ConfirmAffectUserQuestion=Είστε σίγουροι ότι θέλετε να εκχωρήσετε χρήστες στις επιλεγμένες εγγραφές %s; +ConfirmSetSupervisorQuestion=Είστε σίγουροι ότι θέλετε να ορίσετε τον επόπτη στις %s επιλεγμένες εγγραφές; +ConfirmUpdatePriceQuestion=Είστε σίγουροι ότι θέλετε να ενημερώσετε την τιμή των %s επιλεγμένων εγγραφών ; CategTypeNotFound=Δεν βρέθηκε τύπος ετικέτας για τον τύπο των εγγραφών +Rate=Τιμή +SupervisorNotFound=Δεν βρέθηκε Επόπτης CopiedToClipboard=Αντιγράφηκε στο πρόχειρο InformationOnLinkToContract=Το ποσό αυτό είναι μόνο το σύνολο όλων των γραμμών της σύμβασης. Δεν λαμβάνεται υπόψη η έννοια του χρόνου. ConfirmCancel=Είστε σίγουροι ότι θέλετε να ακυρώσετε EmailMsgID=Email MsgID +EmailDate=Ημερομηνία email +SetToStatus=Ορισμός σε κατάσταση %s SetToEnabled=Ορίστε σε ενεργοποιημένη -SetToDisabled=Ορίστηκε σε απενεργοποιημένη +SetToDisabled=Ορίστε σε απενεργοποιημένη ConfirmMassEnabling=επιβεβαίωση μαζικής ενεργοποίησης -ConfirmMassEnablingQuestion=Είστε σίγουροι ότι θέλετε να ενεργοποιήσετε την(τις) %sεπιλεγμένη(ες) εγγραφη(ές); +ConfirmMassEnablingQuestion=Είστε σίγουροι ότι θέλετε να ενεργοποιήσετε τις %sεπιλεγμένες εγγραφές; ConfirmMassDisabling=επιβεβαίωση μαζικής απενεργοποίησης ConfirmMassDisablingQuestion=Είστε σίγουροι ότι θέλετε να απενεργοποιήσετε τις επιλεγμένες εγγραφές %s; -RecordsEnabled=%s εγγραφή(ές) ενεργοποιημένες +RecordsEnabled=Ενεργοποιήθηκαν %s εγγραφές RecordsDisabled=%s εγγραφές απενεργοποιήθηκαν RecordEnabled=Η εγγραφή ενεργοποιήθηκε RecordDisabled=Η εγγραφή απενεργοποιήθηκε @@ -1179,11 +1204,21 @@ Terminated=Ακυρωμένο AddLineOnPosition=Προσθήκη γραμμής στη θέση (στο τέλος αν είναι κενή) ConfirmAllocateCommercial=Επιβεβαίωση ορισμού αντιπροσώπου πωλήσεων ConfirmAllocateCommercialQuestion=Είστε σίγουροι ότι θέλετε να ορίσετε τις επιλεγμένες εγγραφές %s; -CommercialsAffected=Εκπρόσωποι πωλήσεων που αφορά -CommercialAffected=Εκπρόσωπος πωλήσεων που αφορά +CommercialsAffected=Ορίστηκαν αντιπρόσωποι πωλήσεων +CommercialAffected=Ορίστηκε αντιπρόσωπος πωλήσεων YourMessage=Το μήνυμά σας YourMessageHasBeenReceived=Το μήνυμά σας έχει ληφθεί. Θα απαντήσουμε ή θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό. UrlToCheck=URL για έλεγχο Automation=Αυτοματισμός CreatedByEmailCollector=Δημιουργήθηκε από τον συλλέκτη Email CreatedByPublicPortal=Δημιουργήθηκε από Δημόσια πύλη +UserAgent=User Agent +InternalUser=Εσωτερικός χρήστης +ExternalUser=Εξωτερικός χρήστης +NoSpecificContactAddress=Δεν υπάρχει συγκεκριμένη επαφή ή διεύθυνση +NoSpecificContactAddressBis=Αυτή η καρτέλα είναι αφιερωμένη στην επιβολή συγκεκριμένων επαφών ή διευθύνσεων για το τρέχον αντικείμενο. Χρησιμοποιήστε το μόνο εάν θέλετε να ορίσετε μία ή περισσότερες συγκεκριμένες επαφές ή διευθύνσεις για το αντικείμενο όταν οι πληροφορίες του τρίτου μέρους δεν είναι αρκετές ή δεν είναι ακριβείς. +HideOnVCard=Απόκρυψη %s +AddToContacts=Προσθήκη διεύθυνσης στις επαφές μου +LastAccess=Τελευταία πρόσβαση +UploadAnImageToSeeAPhotoHere=Ανεβάστε μια εικόνα από την καρτέλα %s για να δείτε μια φωτογραφία εδώ +LastPasswordChangeDate=Ημερομηνία τελευταίας αλλαγής κωδικού πρόσβασης diff --git a/htdocs/langs/el_GR/margins.lang b/htdocs/langs/el_GR/margins.lang index 40df1eddafb..48dd84e4e9c 100644 --- a/htdocs/langs/el_GR/margins.lang +++ b/htdocs/langs/el_GR/margins.lang @@ -5,10 +5,10 @@ Margins=Περιθώρια TotalMargin=Συνολικό Περιθώριο MarginOnProducts=Περιθώριο / Προϊόντα MarginOnServices=Περιθώριο / Υπηρεσίες -MarginRate=Ποσοστό περιθωρίου επί της % +MarginRate=Ποσοστό περιθωρίου επί της %% MarkRate=Ποσοστό Κέρδους -DisplayMarginRates=Εμφάνιση ποσοστό κέρδους -DisplayMarkRates=Εμφάνιση σημειωμένων τιμών +DisplayMarginRates=Εμφάνιση ποσοστών περιθωρίου +DisplayMarkRates=Εμφάνιση ποσοστών κέρδους InputPrice=Εισαγωγή τιμής margin=Διαχείριση των ποσοστών κέρδους margesSetup=Ρύθμιση της διαχείρισης ποσοστών κέρδους @@ -16,7 +16,7 @@ MarginDetails=Λεπτομέρειες Περιθωρίων ProductMargins=Περιθώρια προϊόντος CustomerMargins=Περιθώρια πελατών SalesRepresentativeMargins=Περιθώρια αντιπρόσωπου πωλήσεων -ContactOfInvoice=Επικοινωνία με το τιμολόγιο +ContactOfInvoice=Επαφή τιμολογίου UserMargins=Περιθώρια χρήστη ProductService=Προϊόν ή Υπηρεσία AllProducts=Όλα τα προϊόντα και οι υπηρεσίες @@ -32,14 +32,14 @@ MARGIN_TYPE=Τιμή αγοράς/κόστους που προτείνεται MargeType1=Περιθώριο για την καλύτερη τιμή προμηθευτή MargeType2=Περιθώριο στη μέση σταθμισμένη τιμή (WAP) MargeType3=Περιθώριο στην τιμή κόστους -MarginTypeDesc=* Περιθώριο με την καλύτερη τιμή αγοράς = Τιμή πώλησης - Καλύτερη τιμή πωλητή που ορίζεται στην κάρτα προϊόντος
* Περιθώριο σταθμισμένης μέσης τιμής (WAP) = Τιμή πώλησης - Σταθμισμένη μέση τιμή προϊόντος (WAP) ή καλύτερη τιμή προμηθευτή εάν το WAP δεν έχει καθοριστεί ακόμη
* Περιθώριο στην τιμή κόστους = τιμή πώλησης - τιμή κόστους οριζόμενη στην κάρτα προϊόντος ή WAP, εάν η τιμή κόστους δεν έχει καθοριστεί ή η καλύτερη τιμή πωλητή αν το WAP δεν έχει οριστεί ακόμη +MarginTypeDesc=* Περιθώριο στην καλύτερη τιμή αγοράς = Τιμή πώλησης - Η καλύτερη τιμή πωλητή που ορίζεται στην κάρτα προϊόντος
* Περιθώριο στη σταθμισμένη μέση τιμή (WAP) = Τιμή πώλησης - Μέση σταθμισμένη τιμή προϊόντος (WAP) ή καλύτερη τιμή πωλητή εάν το WAP δεν έχει οριστεί ακόμη
* Περιθώριο σε Τιμή κόστους = Τιμή πώλησης - τιμή κόστους που καθορίζεται στην κάρτα προϊόντος ή στο WAP εάν η τιμή κόστους δεν έχει καθοριστεί ή η καλύτερη τιμή πωλητή εάν το WAP δεν έχει ακόμη καθοριστεί CostPrice=Τιμή κόστους -UnitCharges=Χρεώσεων -Charges=Επιβαρύνσεις +UnitCharges=Χρεώσεις μονάδων +Charges=Χρεώσεις AgentContactType=τύπος επαφής εμπορικός αντιπρόσωπου -AgentContactTypeDetails=Ορίστε ποιος τύπος επαφής (συνδεδεμένος στα τιμολόγια) θα χρησιμοποιηθεί για την αναφορά περιθωρίου ανά επαφή / διεύθυνση. Σημειώστε ότι η ανάγνωση των στατιστικών στοιχείων μιας επαφής δεν είναι αξιόπιστη, διότι στις περισσότερες περιπτώσεις η επαφή μπορεί να μην ορίζεται σαφώς στα τιμολόγια. -rateMustBeNumeric=Βαθμολογήστε πρέπει να είναι μια αριθμητική τιμή -markRateShouldBeLesserThan100=Το ποσοστό πρέπει να είναι χαμηλότερη από 100 +AgentContactTypeDetails=Καθορίστε ποιος τύπος επαφής (συνδεδεμένος στα τιμολόγια) θα χρησιμοποιηθεί για την αναφορά περιθωρίου ανά επαφή/διεύθυνση. Σημειώστε ότι η ανάγνωση στατιστικών στοιχείων σε μια επαφή δεν είναι αξιόπιστη, καθώς στις περισσότερες περιπτώσεις η επαφή μπορεί να μην ορίζεται ρητά στα τιμολόγια. +rateMustBeNumeric=Το ποσοστό πρέπει να είναι μια αριθμητική τιμή +markRateShouldBeLesserThan100=Το ποσοστό κέρδους πρέπει να είναι χαμηλότερο από 100 ShowMarginInfos=Δείτε πληροφορίες για τα περιθώρια CheckMargins=Λεπτομέρεια περιθωρίων MarginPerSaleRepresentativeWarning=Η αναφορά περιθωρίου ανά χρήστη χρησιμοποιεί τη σχέση μεταξύ τρίτων μερών και αντιπροσώπων πωλήσεων για να υπολογίσει το περιθώριο κάθε αντιπροσώπου πωλήσεων. Επειδή ορισμένα τρίτα μέρη ενδέχεται να μην έχουν εξειδικευμένο αντιπρόσωπο πώλησης και ορισμένα τρίτα μέρη ενδέχεται να συνδέονται με πολλούς αντιπρόσωπους, ορισμένα ποσά ενδέχεται να μην περιλαμβάνονται στην έκθεση (εάν δεν υπάρχει αντιπρόσωπος πώλησης) και μερικά ενδέχεται να εμφανίζονται σε διαφορετικές γραμμές (για κάθε αντιπρόσωπο πώλησης) . diff --git a/htdocs/langs/el_GR/members.lang b/htdocs/langs/el_GR/members.lang index 64f8f69d16c..1884393ae06 100644 --- a/htdocs/langs/el_GR/members.lang +++ b/htdocs/langs/el_GR/members.lang @@ -7,7 +7,7 @@ Members=Μέλη ShowMember=Εμφάνιση καρτέλας μέλους UserNotLinkedToMember=Ο χρήστης δεν συνδέετε με κάποιο μέλος ThirdpartyNotLinkedToMember=Το τρίτο μέρος δεν συνδέεται με κάποιο μέλος -MembersTickets=Φύλλο διεύθυνσης μέλους +MembersTickets=Κατάσταση(Φύλλο) διευθύνσεων μελών FundationMembers=Μέλη οργανισμού ListOfValidatedPublicMembers=Λίστα πιστοποιημένων φανερών μελών ErrorThisMemberIsNotPublic=Αυτό το μέλος δεν είναι δημόσιο @@ -15,6 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Ένα άλλο μέλος (όνομ ErrorUserPermissionAllowsToLinksToItselfOnly=Για λόγους ασφαλείας, πρέπει να σας παραχωρηθούν δικαιώματα επεξεργασίας όλων των χρηστών για να μπορείτε να συνδέσετε ένα μέλος με έναν χρήστη που δεν είναι δικός σας. SetLinkToUser=Σύνδεσμος σε χρήστη του Dolibarr SetLinkToThirdParty=Σύνδεσμος με τρίτο μέρος του Dolibarr +MemberCountersArePublic=Οι μετρητές έγκυρων μελών είναι δημόσιοι MembersCards=Δημιουργία καρτών για μέλη MembersList=Κατάλογος μελών MembersListToValid=Λίστα μελών (προς επικύρωση) @@ -35,6 +36,7 @@ DateEndSubscription=Ημερομηνία λήξης συνδρομής μέλο EndSubscription=Τέλος ιδιότητας συνδρομής μέλους SubscriptionId=Αναγνωριστικό συνδρομής WithoutSubscription=Χωρίς συνδρομή +WaitingSubscription=Σε αναμονή συνδρομής MemberId=Αναγνωριστικό μέλους MemberRef= Αναφ. Μέλους NewMember=Νέο μέλος @@ -72,6 +74,12 @@ MemberTypeCanNotBeDeleted=Αυτός ο τύπος Μέλους δεν μπορ NewSubscription=Νέα συνδρομή NewSubscriptionDesc=Αυτή η φόρμα σας επιτρέπει να καταγράψετε την συνδρομή σας ως νέο μέλος του ιδρύματος. Αν θέλετε να ανανεώσετε τη συνδρομή σας (αν είστε ήδη μέλος), επικοινωνήστε με το συμβούλιο του ιδρύματος μέσω e-mail %s. Subscription=Συνδρομή +AnyAmountWithAdvisedAmount=Οποιοδήποτε ποσό της επιλογής σας, συνιστάται %s +AnyAmountWithoutAdvisedAmount=Οποιοδήποτε ποσό της επιλογής σας +CanEditAmountShort=Οποιοδήποτε ποσό +CanEditAmountShortForValues=συνιστάται, οποιοδήποτε ποσό +MembershipDuration=Διάρκεια +GetMembershipButtonLabel=Εγγραφή Subscriptions=Συνδρομές SubscriptionLate=Καθυστερημένη πληρωμή συνδρομής SubscriptionNotReceived=Η πληρωμή της συνδρομής δεν ελήφθη ποτέ @@ -96,10 +104,10 @@ ConfirmResiliateMember=Είστε σίγουροι ότι θέλετε να κα DeleteMember=Διαγραφή ενός μέλους ConfirmDeleteMember=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το μέλος (Η διαγραφή ενός μέλους θα διαγράψει όλες τις συνδρομές του); DeleteSubscription=Διαγραφή συνδρομής -ConfirmDeleteSubscription=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη συνδρομή; +ConfirmDeleteSubscription=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη συνδρομή; Filehtpasswd=htpasswd file ValidateMember=Επικύρωση ενός μέλους -ConfirmValidateMember=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτό το μέλος; +ConfirmValidateMember=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτό το μέλος; FollowingLinksArePublic=Οι παρακάτω σύνδεσμοι είναι ανοιχτές σελίδες που δεν προστατεύονται από οποιαδήποτε άδεια του Dolibarr. Δεν είναι μορφοποιημένες σελίδες, παρέχονται ως παράδειγμα για να παρουσιάσουν τον τρόπο ταξινόμησης της βάσης δεδομένων των μελών. PublicMemberList=Δημόσια λίστα μελών BlankSubscriptionForm=Δημόσια φόρμα εγγραφής @@ -128,47 +136,47 @@ SendingEmailOnCancelation=Αποστολή email κατάργησης μελου SendingReminderActionComm=Αποστολή υπενθύμισης για συμβάν ατζέντας # Topic of email templates YourMembershipRequestWasReceived=Η συνδρομή σας ελήφθη. -YourMembershipWasValidated=Η ιδιότητα μέλους σας επικυρώθηκε -YourSubscriptionWasRecorded=Η τελευταία σας συνδρομή καταγράφηκε +YourMembershipWasValidated=Η συνδρομή σας επικυρώθηκε +YourSubscriptionWasRecorded=Η νέα σας συνδρομή καταγράφηκε SubscriptionReminderEmail=υπενθύμιση συνδρομής -YourMembershipWasCanceled=Η εγγραφή σας ακυρώθηκε -CardContent=Περιεχόμενα καρτέλας +YourMembershipWasCanceled=Η συνδρομή σας ακυρώθηκε +CardContent=Το περιεχόμενο της κάρτας μέλους σας # Text of email templates -ThisIsContentOfYourMembershipRequestWasReceived=Θα θέλαμε να σας ενημερώσουμε ότι το αίτημά σας για συμμετοχή έγινε δεκτό.

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

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

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

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

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

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

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

DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Αντικείμενο του μηνύματος ηλεκτρονικού ταχυδρομείου ειδοποίησης που λαμβάνεται σε περίπτωση αυτόματης εγγραφής επισκέπτη DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Περιεχόμενο του μηνύματος ηλεκτρονικού ταχυδρομείου ειδοποίησης που λαμβάνεται σε περίπτωση αυτόματης εγγραφής επισκέπτη DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος κατά την αυτόματη εγγραφή μέλους -DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Πρότυπο ηλεκτρονικού ταχυδρομείου που θα χρησιμοποιηθεί για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου σε μέλος σχετικά με την επικύρωση μέλους +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος κατά την επικύρωση της ιδιότητας του ως μέλος DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος σε νέα καταχώρηση συνδρομής DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή υπενθύμισης email όταν η συνδρομή πρόκειται να λήξει -DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Πρότυπο ηλεκτρονικού ταχυδρομείου που θα χρησιμοποιηθεί για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου σε μέλος σχετικά με την ακύρωση μέλους -DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Πρότυπο ηλεκτρονικού ταχυδρομείου που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος σε περίπτωση αποκλεισμού μέλους +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος κατά την ακύρωση της συνδρομής του +DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος σε περίπτωση αποκλεισμού του DescADHERENT_MAIL_FROM=Email αποστολέα για αυτόματα μηνύματα ηλεκτρονικού ταχυδρομείου -DescADHERENT_ETIQUETTE_TYPE=Format of labels page -DescADHERENT_ETIQUETTE_TEXT=Text printed on member address sheets -DescADHERENT_CARD_TYPE=Format of cards page -DescADHERENT_CARD_HEADER_TEXT=Text printed on top of member cards -DescADHERENT_CARD_TEXT=Text printed on member cards (align on left) -DescADHERENT_CARD_TEXT_RIGHT=Text printed on member cards (align on right) +DescADHERENT_ETIQUETTE_TYPE=Μορφή σελίδας ετικετών +DescADHERENT_ETIQUETTE_TEXT=Κείμενο τυπωμένο σε καταστάσεις διευθύνσεων μέλους +DescADHERENT_CARD_TYPE=Σελίδα της μορφής των καρτών μέλους +DescADHERENT_CARD_HEADER_TEXT=Κείμενο τυπωμένο στο πάνω μέρος των καρτών μελών +DescADHERENT_CARD_TEXT=Κείμενο τυπωμένο σε κάρτες μελών (στοίχιση αριστερά) +DescADHERENT_CARD_TEXT_RIGHT=Κείμενο τυπωμένο σε κάρτες μελών (στοίχιση δεξιά) DescADHERENT_CARD_FOOTER_TEXT=Κείμενο που θα εκτυπωθεί στο κάτω μέρος της κάρτας μέλους ShowTypeCard=Εμφάνιση τύπου '%s' HTPasswordExport=δημιουργία αρχείου htpassword NoThirdPartyAssociatedToMember=Κανένα τρίτο μέρος δεν σχετίζεται με αυτό το μέλος MembersAndSubscriptions=Μέλη και Συνδρομές -MoreActions=Complementary action on recording +MoreActions=Συμπληρωματική ενέργεια κατά την καταγραφή MoreActionsOnSubscription=Συμπληρωματική ενέργεια που προτείνεται από προεπιλογή κατά την καταγραφή μιας συνδρομής, η οποία πραγματοποιείται επίσης αυτόματα με την ηλεκτρονική πληρωμή μιας συνδρομής MoreActionBankDirect=Δημιουργήστε μια απευθείας εγγραφή σε τραπεζικό λογαριασμό MoreActionBankViaInvoice=Δημιουργήστε ένα τιμολόγιο και μια πληρωμή σε τραπεζικό λογαριασμό -MoreActionInvoiceOnly=Create an invoice with no payment +MoreActionInvoiceOnly=Δημιουργήστε ένα τιμολόγιο χωρίς πληρωμή LinkToGeneratedPages=Δημιουργία επαγγελματικών καρτών ή καταστάσεων διευθύνσεων LinkToGeneratedPagesDesc=Αυτή η οθόνη σάς επιτρέπει να δημιουργείτε αρχεία PDF με επαγγελματικές κάρτες για όλα τα μέλη σας. DocForAllMembersCards=Δημιουργία επαγγελματικών καρτών για όλα τα μέλη DocForOneMemberCards=Δημιουργία επαγγελματικών καρτών για ένα συγκεκριμένο μέλος -DocForLabels=Generate address sheets (Format for output actually setup: %s) +DocForLabels=Δημιουργια Καταστάσεων(Φύλλων) διευθύνσεων SubscriptionPayment=Πληρωμή συνδρομής LastSubscriptionDate=Ημερομηνία τελευταίας πληρωμής συνδρομής LastSubscriptionAmount=Ποσό τελευταίας συνδρομής @@ -199,25 +207,28 @@ NbOfSubscriptions=Αριθμός συνδρομών AmountOfSubscriptions=Ποσό που εισπράχθηκε από συνδρομές TurnoverOrBudget=Κύκλος εργασιών (για εταιρεία) ή προϋπολογισμός (για ίδρυμα) DefaultAmount=Προκαθορισμένο ποσό συνδρομών -CanEditAmount=Ο επισκέπτης μπορεί να επιλέξει/επεξεργαστεί το ποσό της συνεισφοράς του -MEMBER_NEWFORM_PAYONLINE=Μετάβαση στη σελίδα ηλεκτρονικής πληρωμής -ByProperties=Εκ ΦΥΣΕΩΣ +CanEditAmount=Το ποσό της συνδρομής είναι της δίκης σας επιλογής +CanEditAmountDetail=Ο επισκέπτης μπορεί να επιλέξει/επεξεργαστεί το ποσό της συνεισφοράς του ανεξάρτητα από τον τύπο μέλους +AmountIsLowerToMinimumNotice=Επί συνολικού οφειλόμενου των %s +MEMBER_NEWFORM_PAYONLINE=Μετά την ηλεκτρονική εγγραφή, μεταβείτε αυτόματα στη σελίδα ηλεκτρονικής πληρωμής +ByProperties=Ανά φύση MembersStatisticsByProperties=Στατιστικά στοιχεία μελών κατά φύση VATToUseForSubscriptions=Συντελεστής ΦΠΑ που χρησιμοποιείται για εισφορές NoVatOnSubscription=Χωρίς ΦΠΑ για εισφορές -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Προϊόν που χρησιμοποιείται για τη γραμμή συνεισφοράς στο τιμολόγιο: %s +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Προϊόν που χρησιμοποιείται για τη γραμμή συνδρομής στο τιμολόγιο: %s NameOrCompany=Όνομα ή Εταιρία -SubscriptionRecorded=Καταγράφηκε η συνεισφορά +SubscriptionRecorded=Η συνδρομή καταγράφηκε NoEmailSentToMember=Δεν εστάλη email στο μέλος EmailSentToMember=Το email στάλθηκε στο μέλος την %s SendReminderForExpiredSubscriptionTitle=Αποστολή υπενθύμισης μέσω email για συνδρομές που έχουν λήξει SendReminderForExpiredSubscription=Αποστολή υπενθύμισης μέσω email στα μέλη όταν η συνδρομή πρόκειται να λήξει (η παράμετρος είναι ο αριθμός ημερών πριν από το τέλος της ιδιότητας μέλους για την αποστολή της υπενθύμισης. Μπορεί να είναι μια λίστα ημερών που χωρίζονται με ερωτηματικό, για παράδειγμα '10;5;0;-5 ') MembershipPaid=Η συνδρομή καταβλήθηκε για την τρέχουσα περίοδο (έως %s) -YouMayFindYourInvoiceInThisEmail=Μπορείτε να βρείτε το τιμολόγιο που επισυνάπτεται σε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου -XMembersClosed=%s μέλος (τα) έκλεισε +YouMayFindYourInvoiceInThisEmail=Σε αυτό το email θα βρείτε συνημμένο το τιμολόγιο σας +XMembersClosed=%s μέλη έκλεισαν XExternalUserCreated=Δημιουργήθηκαν %s εξωτερικοί χρήστες ForceMemberNature=Επιβολή φύσης μέλους(Άτομο ή Εταιρεία) CreateDolibarrLoginDesc=Η δημιουργία σύνδεσης χρήστη για τα μέλη τους επιτρέπει να συνδεθούν με την εφαρμογή. Ανάλογα με τις εξουσιοδοτήσεις που χορηγούνται, θα μπορούν, για παράδειγμα, να συμβουλεύονται ή να τροποποιούν οι ίδιοι τα αρχεία τους. CreateDolibarrThirdPartyDesc=Ένα τρίτο μέρος είναι η νομική οντότητα που θα χρησιμοποιηθεί στο τιμολόγιο εάν αποφασίσετε να δημιουργήσετε τιμολόγιο για κάθε συνδρομή. Θα μπορείτε να το δημιουργήσετε αργότερα κατά τη διαδικασία καταγραφής της συνδρομής. MemberFirstname=Όνομα μέλους MemberLastname=Επώνυμο μέλους +MemberCodeDesc=Κωδικός μέλους, μοναδικός για όλα τα μέλη diff --git a/htdocs/langs/el_GR/mrp.lang b/htdocs/langs/el_GR/mrp.lang index ef1ec64f668..0359b01be9c 100644 --- a/htdocs/langs/el_GR/mrp.lang +++ b/htdocs/langs/el_GR/mrp.lang @@ -11,8 +11,8 @@ Bom=Κατάλογοι Υλικών BillOfMaterials=Κατάλογος Υλικών BillOfMaterialsLines=Γραμμές Κατάλογου Υλικών BOMsSetup=Ρύθμιση της ενότητας BOM -ListOfBOMs=Λίστα Καταλογών Υλικών - BOM -ListOfManufacturingOrders=Κατάλογος Εντολών Παραγωγής +ListOfBOMs=Κατάλογοι Υλικών - BOM +ListOfManufacturingOrders=Εντολές Παραγωγής NewBOM=Νέος κατάλογος υλικών ProductBOMHelp=Προϊόν για δημιουργία (ή αποσυναρμολόγηση) με αυτό το BOM.
Σημείωση: Τα προϊόντα με την ιδιότητα «Φύση προϊόντος» = «Πρώτη ύλη» δεν είναι ορατά σε αυτήν τη λίστα. BOMsNumberingModules=Πρότυπα αρίθμησης BOM @@ -24,10 +24,11 @@ WatermarkOnDraftBOMs=Υδατογράφημα σε προσχέδιο BOM FreeLegalTextOnMOs=Ελεύθερο κείμενο σε έγγραφο της MO WatermarkOnDraftMOs=Υδατογράφημα σε προσχέδιο της ΜΟ ConfirmCloneBillOfMaterials=Είστε σίγουροι ότι θέλετε να κλωνοποιήσετε τον κατάλογο υλικών %s; -ConfirmCloneMo=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε την Εντολή Παραγωγής %s; +ConfirmCloneMo=Είστε σίγουροι ότι θέλετε να αντιγράψετε την Εντολή Παραγωγής %s; ManufacturingEfficiency=Αποτελεσματικότητα παραγωγής ConsumptionEfficiency=Αποτελεσματικότητα κατανάλωσης -ValueOfMeansLoss=Η τιμή 0,95 σημαίνει μέση απώλεια 5%% κατά την κατασκευή ή την αποσυναρμολόγηση +Consumption=Κατανάλωση +ValueOfMeansLoss=Η τιμή 0,95 σημαίνει μέση απώλεια 5%% κατά την παραγωγής ή την αποσυναρμολόγηση ValueOfMeansLossForProductProduced=Η τιμή 0,95 σημαίνει μέση απώλεια 5%% του παραγόμενου προϊόντος DeleteBillOfMaterials=Διαγραφή κατάλογου υλικών DeleteMo=Διαγραφή Εντολής Παραγωγής @@ -43,7 +44,7 @@ EstimatedDuration=Εκτιμώμενη Διάρκεια EstimatedDurationDesc=Εκτιμώμενη διάρκεια για την κατασκευή (ή την αποσυναρμολόγηση) αυτού του προϊόντος χρησιμοποιώντας αυτό το BOM ConfirmValidateBom=Είστε σίγουροι ότι θέλετε να επικυρώσετε το BOM με την αναφορά %s ;(θα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) ConfirmCloseBom=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτό το BOM; (δεν θα μπορείτε πλέον να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) -ConfirmReopenBom=Είστε βέβαιοι ότι θέλετε να ανοίξετε ξανά αυτό το BOM; (θα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) +ConfirmReopenBom=Είστε σίγουροι ότι θέλετε να ανοίξετε ξανά αυτό το BOM; (θα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) StatusMOProduced=Παράχθηκε QtyFrozen=Κατεψυγμένη ποσότητα QuantityFrozen=Κατεψυγμένη ποσότητα @@ -59,7 +60,7 @@ ToProduce=Προς παραγωγή ToObtain=Προς απόκτηση QtyAlreadyConsumed=Η ποσότητα καταναλώθηκε ήδη QtyAlreadyProduced=Η ποσότητα έχει ήδη παραχθεί -QtyRequiredIfNoLoss=Ποσότητα που απαιτείται εάν δεν υπάρχει απώλεια (η απόδοση κατασκευής είναι 100%%) +QtyRequiredIfNoLoss=Ποσότητα που απαιτείται εάν δεν υπάρχει απώλεια (η απόδοση παραγωγής είναι 100%%) ConsumeOrProduce=Καταναλώστε ή Παράγετε ConsumeAndProduceAll=Καταναλώστε και παράξτε τα όλα Manufactured=Κατασκευάστηκε @@ -82,6 +83,7 @@ ProductsToProduce=Προϊόντα για παραγωγή UnitCost=Κόστος μονάδας TotalCost=Συνολικό κόστος BOMTotalCost=Το κόστος για την παραγωγή αυτού του BOM με βάση το κόστος κάθε ποσότητας και προϊόντος προς κατανάλωση (χρησιμοποιήστε την τιμή κόστους εάν έχει οριστεί, διαφορετικά τη μέση σταθμισμένη τιμή εάν έχει οριστεί, διαφορετικά την καλύτερη τιμή αγοράς) +BOMTotalCostService=Εάν η ενότητα "Workstation" είναι ενεργοποιημένη και ένας σταθμός εργασίας ορίζεται από προεπιλογή στη γραμμή, τότε ο υπολογισμός είναι "ποσότητα (μετατροπή σε ώρες) x σταθμός εργασίας ahr", διαφορετικά "ποσότητα (μετατροπή σε ώρες) x τιμή κόστους της υπηρεσίας" GoOnTabProductionToProduceFirst=Πρέπει πρώτα να έχετε ξεκινήσει την παραγωγή για να κλείσετε μια Εντολή Παραγωγής (Ανατρέξτε στην καρτέλα '%s'). Αλλά μπορείτε να την ακυρώσετε. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Ένα κιτ δεν μπορεί να χρησιμοποιηθεί σε BOM ή MO Workstation=Σταθμός εργασίας @@ -100,6 +102,7 @@ NbOperatorsRequired=Αριθμός απαιτούμενων χειριστών THMOperatorEstimated=Εκτιμώμενος χειριστής THM THMMachineEstimated=Εκτιμώμενο μηχάνημα THM WorkstationType=Τύπος σταθμού εργασίας +DefaultWorkstation=Προεπιλεγμένος σταθμός εργασίας Human=Άνθρωπος Machine=Μηχανή HumanMachine=Άνθρωπος / Μηχανή @@ -111,4 +114,8 @@ CollapseBOMHelp=Μπορείτε να ορίσετε την προεπιλεγμ MOAndLines=Εντολές και γραμμές παραγωγής MoChildGenerate=Δημιουργία θυγατρικού Mo ParentMo=Γονικό MO -MOChild=MO Παιδί +MOChild=Θυγατρικό MO +BomCantAddChildBom=Η ονοματολογία %s υπάρχει ήδη στο δέντρο που οδηγεί στην ονοματολογία %s +BOMNetNeeds = Καθαρές ανάγκες BOM +BOMProductsList=Προϊόντα BOM +BOMServicesList=Υπηρεσίες BOM diff --git a/htdocs/langs/el_GR/orders.lang b/htdocs/langs/el_GR/orders.lang index ee15f50fb2f..6039f128126 100644 --- a/htdocs/langs/el_GR/orders.lang +++ b/htdocs/langs/el_GR/orders.lang @@ -96,6 +96,10 @@ OrdersStatisticsSuppliers=Στατιστικά παραγγελίας αγορά NumberOfOrdersByMonth=Αριθμός παραγγελιών ανά μήνα AmountOfOrdersByMonthHT=Ποσό παραγγελιών ανά μήνα (εκτός φόρου) ListOfOrders=Λίστα παραγγελιών +ListOrderLigne=Γραμμές παραγγελιών +productobuy=Προϊόντα για αγορά μόνο +productonly=Μόνο προϊόντα +disablelinefree=Χωρίς ελεύθερες γραμμές CloseOrder=Κλείσιμο Παραγγελίας ConfirmCloseOrder=Είστε σίγουροι ότι θέλετε να ορίσετε αυτήν την παραγγελία ως παραδομένη; Μόλις παραδοθεί μια παραγγελία, μπορεί να οριστεί ως τιμολογημένη. ConfirmDeleteOrder=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την παραγγελία; @@ -106,7 +110,7 @@ ConfirmMakeOrder=Είστε σίγουροι ότι θέλετε να επιβε GenerateBill=Δημιουργία τιμολογίου ClassifyShipped=Ταξινόμηση ως παραδομένη PassedInShippedStatus=Ταξινόμηση ως παραδομένη -YouCantShipThis=Δεν μπορώ να το ταξινομήσω αυτό. Ελέγξτε τα δικαιώματα χρήστη +YouCantShipThis=Δεν ειναι δυνατή η ταξινόμηση. Ελέγξτε τα δικαιώματα χρήστη DraftOrders=Προσχέδια παραγγελιών DraftSuppliersOrders=Προσχέδια παραγγελιών αγοράς OnProcessOrders=Παραγγελίες σε εξέλιξη @@ -131,6 +135,7 @@ SupplierOrderClassifiedBilled=Η παραγγελία αγοράς %s έχει OtherOrders=Άλλες παραγγελίες SupplierOrderValidatedAndApproved=Η παραγγελία του προμηθευτή έχει επικυρωθεί και εγκριθεί: %s SupplierOrderValidated=Η παραγγελία του προμηθευτή είναι επικυρωμένη: %s +OrderShowDetail=Εμφάνιση λεπτομερειών παραγγελίας ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Εκπρόσωπος εξέλιξης εντολής πώλησης TypeContact_commande_internal_SHIPPING=Εκπρόσωπος εξέλιξης αποστολής @@ -152,8 +157,8 @@ OrderByEMail=Email OrderByWWW=Online OrderByPhone=Τηλέφωνο # Documents models -PDFEinsteinDescription=Ένα πλήρες μοντέλο παραγγελιών (παλιά εφαρμογή του προτύπου Eratosthene) -PDFEratostheneDescription=Ένα πλήρες μοντέλο παραγγελιών +PDFEinsteinDescription=Ένα πλήρες πρότυπο παραγγελιών (παλιά εφαρμογή του προτύπου Eratosthene) +PDFEratostheneDescription=Ένα πλήρες υπόδειγμα παραγγελιών PDFEdisonDescription=Ένα απλό πρότυπο παραγγελιών PDFProformaDescription=Ένα πλήρες πρότυπο προτιμολογίου (Proforma) CreateInvoiceForThisCustomer=Τιμολόγηση παραγγελιών @@ -199,3 +204,5 @@ StatusSupplierOrderApproved=Εγκρίθηκε StatusSupplierOrderRefused=Απορρίφθηκε StatusSupplierOrderReceivedPartially=Εν μέρει παραλήφθηκε StatusSupplierOrderReceivedAll=Όλα τα προϊόντα παραλήφθηκαν +NeedAtLeastOneInvoice = Πρέπει να υπάρχει τουλάχιστον ένα Τιμολόγιο +LineAlreadyDispatched = Η γραμμή παραγγελίας έχει ήδη παραληφθεί. diff --git a/htdocs/langs/el_GR/other.lang b/htdocs/langs/el_GR/other.lang index fe2005d7daa..29fbaf8116c 100644 --- a/htdocs/langs/el_GR/other.lang +++ b/htdocs/langs/el_GR/other.lang @@ -46,7 +46,9 @@ Notify_ORDER_SUPPLIER_APPROVE=Η εντολή αγοράς εγκρίθηκε Notify_ORDER_SUPPLIER_REFUSE=Η εντολή αγοράς απορρίφθηκε Notify_PROPAL_VALIDATE=Η πρόσφορα πελάτη επικυρώθηκε Notify_PROPAL_CLOSE_SIGNED=Η πρόσφορα πελάτη έκλεισε υπογεγραμμένη +Notify_PROPAL_CLOSE_SIGNED_WEB=Η προσφορά πελάτη έκλεισε υπογεγραμμένη στη σελίδα του portal Notify_PROPAL_CLOSE_REFUSED=Η πρόσφορα πελάτη έκλεισε, απορρίφθηκε +Notify_PROPAL_CLOSE_REFUSED_WEB=Η προσφορά πελάτη έκλεισε απορρίφθηκε στη σελίδα του portal Notify_PROPAL_SENTBYMAIL=Η Εμπορική προσφορά απεστάλη ταχυδρομικώς Notify_WITHDRAW_TRANSMIT=Μετάδοση ανάληψης Notify_WITHDRAW_CREDIT=Πίστωση ανάληψης @@ -82,7 +84,7 @@ Notify_EXPENSE_REPORT_APPROVE=Η αναφορά εξόδων εγκρίθηκε Notify_HOLIDAY_VALIDATE=Το αίτημα άδειας επικυρώθηκε (απαιτείται έγκριση) Notify_HOLIDAY_APPROVE=Το αίτημα άδειας εγκρίθηκε Notify_ACTION_CREATE=Προστέθηκε ενέργεια στην Ατζέντα -SeeModuleSetup=Δείτε την ρύθμιση του module %s +SeeModuleSetup=Δείτε τη ρύθμιση της ενότητας %s NbOfAttachedFiles=Αριθμός συνημμένων αρχείων/εγγράφων TotalSizeOfAttachedFiles=Συνολικό μέγεθος συνημμένων αρχείων/εγγράφων MaxSize=Μέγιστο μέγεθος @@ -96,13 +98,13 @@ PredefinedMailContentSendInvoice=__(Hello)__\n\nΠαρακαλώ δείτε το 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__ -PredefinedMailContentSendShipping=__ (Γεια σας) __ Παρακαλούμε βρείτε την αποστολή __REF__ συνημμένο __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendFichInter=__ (Γεια σας) __ Βρείτε την παρέμβαση __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentLink=Μπορείτε να κάνετε κλικ στον παρακάτω σύνδεσμο για να πραγματοποιήσετε την πληρωμή σας, αν δεν έχει γίνει ήδη. %s -PredefinedMailContentGeneric=__ (Γεια σας) __ __ (ειλικρινά) __ __USER_SIGNATURE__ +PredefinedMailContentSendOrder=__(Hello)__\n\nΠαρακαλώ δείτε την συνημμένη εντολή __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nΠαρακαλώ δείτε την συνημμένη παραγγελία μας __REF__ \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nΠαρακαλώ δείτε το συνημμένο τιμολόγιο __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendShipping=__(Hello)__\n\nΠαρακαλώ δείτε την συνημμένη αποστολή __REF__ \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendFichInter=__(Hello)__\n\nΠαρακαλώ δείτε την συνημμένη παρέμβαση __REF__ \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentLink=Μπορείτε να κάνετε κλικ στον παρακάτω σύνδεσμο για να πραγματοποιήσετε την πληρωμή σας, αν δεν έχει γίνει ήδη. \n\n%s\n\n +PredefinedMailContentGeneric=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ PredefinedMailContentSendActionComm=Υπενθύμιση συμβάντος "__EVENT_LABEL__" στην __EVENT_DATE__ στις __EVENT_TIME__

Αυτό είναι ένα αυτόματο μήνυμα, μην απαντήσετε. DemoDesc=Το Dolibarr είναι ένα συμπαγές ERP/CRM που υποστηρίζει πολλές επιχειρηματικές ενότητες. Μια επίδειξη που παρουσιάζει όλες τις ενότητες δεν έχει νόημα, καθώς αυτό το σενάριο δεν συμβαίνει ποτέ (πολλές εκατοντάδες διαθέσιμες). Έτσι, πολλά προφίλ επίδειξης είναι διαθέσιμα. ChooseYourDemoProfil=Επιλέξτε το προφίλ επίδειξης που ταιριάζει καλύτερα στις ανάγκες σας ... @@ -111,8 +113,8 @@ DemoFundation=Διαχείριση μελών ενός ιδρύματος DemoFundation2=Διαχείριση μελών και τραπεζικού λογαριασμού ενός ιδρύματος DemoCompanyServiceOnly=Εταιρική ή ανεξάρτητη υπηρεσία πώλησης μόνο DemoCompanyShopWithCashDesk=Διαχειριστείτε ένα κατάστημα με ταμείο -DemoCompanyProductAndStocks=Κατάστημα πώλησης προϊόντων με σημείο πώλησης -DemoCompanyManufacturing=Εταιρεία κατασκευής προϊόντων +DemoCompanyProductAndStocks=Κατάστημα πώλησης προϊόντων με σημείο πώλησης POS +DemoCompanyManufacturing=Εταιρεία παραγωγής προϊόντων DemoCompanyAll=Εταιρεία με πολλαπλές δραστηριότητες (όλες οι κύριες ενότητες) CreatedBy=Δημιουργήθηκε από %s ModifiedBy=Τροποποιήθηκε από %s @@ -124,8 +126,8 @@ ModifiedById=Αναγνωριστικό χρήστη που έκανε την τ ValidatedById=Ταυτότητα χρήστη που επικύρωσε CanceledById=Ταυτότητα χρήστη που ακύρωσε ClosedById=Ταυτότητα χρήστη που έκλεισε -CreatedByLogin=Χρήστης σύνδεσης που δημιούργησε -ModifiedByLogin=Εγγραφή χρήστη που έκανε την τελευταία αλλαγή +CreatedByLogin=Είσοδος χρήστη που δημιούργησε +ModifiedByLogin=Χρήστης σύνδεσης που έκανε την τελευταία αλλαγή ValidatedByLogin=Χρήστης σύνδεσης που επικύρωσε CanceledByLogin=Χρήστης σύνδεσης που ακύρωσε ClosedByLogin=Χρήστης σύνδεσης που έκλεισε @@ -181,35 +183,39 @@ SizeUnitfoot=πόδι SizeUnitpoint=σημείο BugTracker=Παρακολούθηση σφαλμάτων SendNewPasswordDesc=Αυτή η φόρμα σάς επιτρέπει να ζητήσετε νέο κωδικό πρόσβασης. Θα σταλεί στη διεύθυνση email σας.
Η αλλαγή θα τεθεί σε ισχύ μόλις κάνετε κλικ στον σύνδεσμο επιβεβαίωσης στο email.
Ελέγξτε τα εισερχόμενά σας. +EnterNewPasswordHere=Εισάγετε τον νέο σας κωδικό πρόσβασης εδώ BackToLoginPage=Επιστροφή στην σελίδα εισόδου -AuthenticationDoesNotAllowSendNewPassword=Λειτουργία ελέγχου ταυτότητας είναι %s.
Σε αυτή τη λειτουργία, Dolibarr δεν μπορεί να γνωρίζει ούτε αλλαγή του κωδικού πρόσβασής σας.
Επικοινωνήστε με το διαχειριστή του συστήματός σας, εάν θέλετε να αλλάξετε τον κωδικό πρόσβασής σας. +AuthenticationDoesNotAllowSendNewPassword=Η λειτουργία ελέγχου ταυτότητας είναι %s .
Σε αυτήν τη λειτουργία, το Dolibarr δεν μπορεί να γνωρίζει ούτε να αλλάξει τον κωδικό πρόσβασης σας.
Επικοινωνήστε με τον διαχειριστή του συστήματός σας εάν θέλετε να αλλάξετε τον κωδικό πρόσβασης σας. EnableGDLibraryDesc=Εγκαταστήστε ή ενεργοποιήστε τη βιβλιοθήκη GD στην εγκατάσταση της PHP για να χρησιμοποιήσετε αυτήν την επιλογή. -ProfIdShortDesc=Καθ %s ταυτότητα είναι μια ενημερωτική ανάλογα με τρίτη χώρα μέρος.
Για παράδειγμα, για %s χώρα, είναι %s κώδικα. +ProfIdShortDesc= Prof Id %s είναι μια πληροφορία ανάλογα με τη χώρα τρίτου μέρους.
Για παράδειγμα, για τη χώρα %s , είναι ο κωδικός %s. DolibarrDemo=Dolibarr ERP / CRM demo StatsByNumberOfUnits=Στατιστικά στοιχεία για το σύνολο των ποσοτήτων προϊόντων / υπηρεσιών StatsByNumberOfEntities=Στατιστικά στοιχεία για τον αριθμό των παραπομπών οντοτήτων (αριθμός τιμολογίων ή παραγγελιών...) -NumberOfProposals=Αριθμός προτάσεων -NumberOfCustomerOrders=Αριθμός παραγγελιών πωλήσεων +NumberOfProposals=Αριθμός προσφορών +NumberOfCustomerOrders=Αριθμός εντολών πωλήσεων NumberOfCustomerInvoices=Αριθμός τιμολογίων πελατών -NumberOfSupplierProposals=Αριθμός προτάσεων πωλητών -NumberOfSupplierOrders=Αριθμός εντολών αγοράς +NumberOfSupplierProposals=Αριθμός προσφορών προμηθευτών +NumberOfSupplierOrders=Αριθμός παραγγελιών αγοράς NumberOfSupplierInvoices=Αριθμός τιμολογίων προμηθευτή NumberOfContracts=Αριθμός συμβάσεων -NumberOfMos=Αριθμός παραγγελιών κατασκευής -NumberOfUnitsProposals=Αριθμός μονάδων στις προτάσεις +NumberOfMos=Αριθμός παραγγελιών παραγωγής +NumberOfUnitsProposals=Αριθμός μονάδων στις προσφορές NumberOfUnitsCustomerOrders=Αριθμός μονάδων σε παραγγελίες πώλησης NumberOfUnitsCustomerInvoices=Αριθμός μονάδων σε τιμολόγια πελατών -NumberOfUnitsSupplierProposals=Αριθμός μονάδων σε προτάσεις πωλητών -NumberOfUnitsSupplierOrders=Αριθμός μονάδων στις εντολές αγοράς -NumberOfUnitsSupplierInvoices=Αριθμός μονάδων σε τιμολόγια πωλητών +NumberOfUnitsSupplierProposals=Αριθμός μονάδων σε προσφορές προμηθευτών +NumberOfUnitsSupplierOrders=Αριθμός μονάδων στις παραγγελίες αγορών +NumberOfUnitsSupplierInvoices=Αριθμός μονάδων σε τιμολόγια προμηθευτών NumberOfUnitsContracts=Αριθμός μονάδων στις συμβάσεις -NumberOfUnitsMos=Αριθμός μονάδων προς παραγωγή σε παραγγελίες κατασκευής +NumberOfUnitsMos=Αριθμός μονάδων προς παραγωγή σε παραγγελίες παραγωγής EMailTextInterventionAddedContact=Μια νέα παρέμβαση %s σας έχει εκχωρηθεί. EMailTextInterventionValidated=Η παρέμβαση %s έχει επικυρωθεί. EMailTextInvoiceValidated=Το τιμολόγιο %s έχει επικυρωθεί. EMailTextInvoicePayed=Το τιμολόγιο %s έχει καταβληθεί. -EMailTextProposalValidated=Η πρόταση %s έχει επικυρωθεί. -EMailTextProposalClosedSigned=Η πρόταση %s έχει κλείσει υπογεγραμμένη. +EMailTextProposalValidated=Η προσφορά %s έχει επικυρωθεί. +EMailTextProposalClosedSigned=Η προσφορά %s έχει κλείσει υπογεγραμμένη. +EMailTextProposalClosedSignedWeb=Η προσφορά %s έχει κλείσει υπογράφηκε στη σελίδα του portal. +EMailTextProposalClosedRefused=Η προσφορά %s απορρίφθηκε και έκλεισε. +EMailTextProposalClosedRefusedWeb=Η προσφορά %s έχει κλείσει απορρίφθηκε στη σελίδα του portal. EMailTextOrderValidated=Η παραγγελία %s έχει επικυρωθεί. EMailTextOrderApproved=Η παραγγελία %s έχει εγκριθεί. EMailTextOrderValidatedBy=Η παραγγελία %s έχει καταγραφεί από τον %s. @@ -222,7 +228,7 @@ EMailTextExpenseReportApproved=Η αναφορά εξόδων %s έχει εγκ EMailTextHolidayValidated=Το αίτημα άδειας %s έχει επικυρωθεί. EMailTextHolidayApproved=Το αίτημα άδειας %s έχει εγκριθεί. EMailTextActionAdded=Η ενέργεια %s προστέθηκε στην Ατζέντα. -ImportedWithSet=Η εισαγωγή των δεδομένων που +ImportedWithSet=Δεδομένα εισαγωγής DolibarrNotification=Αυτόματη ειδοποίηση ResizeDesc=Εισαγάγετε νέο πλάτος Ή νέο ύψος. Η αναλογία θα διατηρηθεί κατά την αλλαγή μεγέθους... NewLength=Νέο πλάτος @@ -232,8 +238,8 @@ DefineNewAreaToPick=Ορίστε νέα περιοχή στην εικόνα γ CurrentInformationOnImage=Αυτό το εργαλείο σχεδιάστηκε για να σας βοηθήσει να αλλάξετε το μέγεθος ή να περικόψετε μια εικόνα. Αυτές είναι οι πληροφορίες για την τρέχουσα επεξεργασμένη εικόνα ImageEditor=Επεξεργαστής εικόνας YouReceiveMailBecauseOfNotification=Λαμβάνετε αυτό το μήνυμα επειδή το email σας έχει προστεθεί στη λίστα επαφών που πρέπει να ενημερώνεται για συγκεκριμένα συμβάντα στο λογισμικό %s της %s. -YouReceiveMailBecauseOfNotification2=Η εκδήλωση αυτή είναι η εξής: -ThisIsListOfModules=Αυτή είναι μια λίστα των modules που έχουν επιλέξει αυτό το προφίλ demo (μόνο οι περισσότερες κοινές ενότητες είναι ορατά σε αυτό το demo). Επεξεργασία αυτό να έχει μια πιο εξατομικευμένη επίδειξη και κάντε κλικ στο "Start". +YouReceiveMailBecauseOfNotification2=Αυτό ειναι το ακόλουθο συμβάν: +ThisIsListOfModules=Αυτή είναι μια λίστα των ενοτήτων που έχουν προεπιλεγεί για αυτό το προφίλ demo (μόνο οι βασικές ενότητες είναι ενεργές σε αυτό το demo). Επεξεργαστείτε αυτό για να έχετε μια πιο εξατομικευμένη επίδειξη και κάντε κλικ στο "Έναρξη" UseAdvancedPerms=Χρησιμοποιήστε τα προηγμένα δικαιώματα ορισμένων ενοτήτων FileFormat=Μορφή αρχείου SelectAColor=Επιλέξτε ένα χρώμα @@ -248,7 +254,7 @@ RequestToResetPasswordReceived=Έχει ληφθεί ένα αίτημα για NewKeyIs=Αυτό είναι το νέο σας κλειδί για να συνδεθείτε NewKeyWillBe=Το νέο σας κλειδί για να συνδεθείτε με το λογισμικό είναι ClickHereToGoTo=Κάντε κλικ εδώ για να μεταβείτε στο %s -YouMustClickToChange=Θα πρέπει πρώτα να κάνετε κλικ στον παρακάτω σύνδεσμο για να επικυρώσει την αλλαγή του κωδικού πρόσβασης +YouMustClickToChange=Θα πρέπει πρώτα να κάνετε κλικ στον παρακάτω σύνδεσμο για να επικυρώσετε την αλλαγή του κωδικού πρόσβασης ConfirmPasswordChange=Επιβεβαιώστε την αλλαγή κωδικού πρόσβασης ForgetIfNothing=Αν δεν ζητήσατε αυτή την αλλαγή, απλά ξεχάστε αυτό το email. Τα διαπιστευτήριά σας παραμένουν ασφαλή. IfAmountHigherThan=Εάν το ποσό υπερβαίνει %s @@ -265,36 +271,36 @@ PasswordNeedNoXConsecutiveChars=Ο κωδικός πρόσβασης δεν πρ YourPasswordHasBeenReset=Ο κωδικός πρόσβασης σας επαναφέρθηκε με επιτυχία ApplicantIpAddress=Διεύθυνση IP του αιτούντος SMSSentTo=Το SMS εστάλη στο %s -MissingIds=Λείπει IDs -ThirdPartyCreatedByEmailCollector=Το τρίτο μέρος δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το MSGID e-mail %s -ContactCreatedByEmailCollector=Επαφή / διεύθυνση που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s -ProjectCreatedByEmailCollector=Έργο που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s -TicketCreatedByEmailCollector=Εισιτήριο που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s +MissingIds=Χαμένα αναγνωριστικά +ThirdPartyCreatedByEmailCollector=Τρίτο μέρος που δημιουργήθηκε από συλλέκτη email από email MSGID %s +ContactCreatedByEmailCollector=Επαφή/διεύθυνση που δημιουργήθηκε από συλλέκτη email από email MSGID %s +ProjectCreatedByEmailCollector=Έργο που δημιουργήθηκε από συλλέκτη email από email MSGID %s +TicketCreatedByEmailCollector=Ticket που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s OpeningHoursFormatDesc=Χρησιμοποιήστε το "-" για να διαχωρίσετε τις ώρες ανοίγματος και κλεισίματος.
Χρησιμοποιήστε "κενό" για να εισάγετε διαφορετικές περιοχές.
Παράδειγμα: 8-12 14-18 SuffixSessionName=Κατάληξη για το όνομα της συνεδρίας LoginWith=Συνδεθείτε με %s ##### Export ##### -ExportsArea=Exports area +ExportsArea=Τομέας εξαγωγών AvailableFormats=Διαθέσιμες μορφές -LibraryUsed=Library used +LibraryUsed=Library που χρησιμοποιήθηκε LibraryVersion=Έκδοση βιβλιοθήκης ExportableDatas=Εξαγώγιμα δεδομένα -NoExportableData=No exportable data (no modules with exportable data loaded, or missing permissions) +NoExportableData=Δεν υπάρχουν εξαγώγιμα δεδομένα (δεν υπάρχουν ενότητες με φορτωμένα εξαγώγιμα δεδομένα ή χωρίς δικαιώματα) ##### External sites ##### -WebsiteSetup=Εγκατάσταση δικτυακού τόπου ενότητας +WebsiteSetup=Ρύθμιση της ενότητας Ιστοσελίδων WEBSITE_PAGEURL=Σύνδεσμος URL της σελίδας WEBSITE_TITLE=Τίτλος WEBSITE_DESCRIPTION=Περιγραφή WEBSITE_IMAGE=Εικόνα -WEBSITE_IMAGEDesc=Σχετική διαδρομή του μέσου εικόνας. Μπορείτε να το κρατήσετε κενό καθώς σπάνια χρησιμοποιείται (μπορεί να χρησιμοποιηθεί από δυναμικό περιεχόμενο για να εμφανιστεί μια μικρογραφία σε μια λίστα αναρτήσεων ιστολογίου). Χρησιμοποιήστε το __WEBSITE_KEY__ στη διαδρομή εάν η διαδρομή εξαρτάται από το όνομα του ιστότοπου (για παράδειγμα: image / __ WEBSITE_KEY __ / stories / myimage.png). +WEBSITE_IMAGEDesc=Σχετική διαδρομή του μέσου εικόνας. Μπορείτε να το αφήσετε άδειο καθώς σπάνια χρησιμοποιείται (μπορεί να χρησιμοποιηθεί από δυναμικό περιεχόμενο για να εμφανιστεί μια μικρογραφία σε μια λίστα αναρτήσεων ιστολογίου). Χρησιμοποιήστε __WEBSITE_KEY__ στη διαδρομή εάν η διαδρομή εξαρτάται από το όνομα ιστότοπου (για παράδειγμα: image/__WEBSITE_KEY__/stories/myimage.png). WEBSITE_KEYWORDS=Λέξεις κλειδιά LinesToImport=Γραμμές για εισαγωγή MemoryUsage=Χρήση μνήμης RequestDuration=Διάρκεια αίτησης ProductsPerPopularity=Προϊόντα/Υπηρεσίες κατά δημοτικότητα -PopuProp=Προϊόντα / Υπηρεσίες κατά δημοτικότητα στις Προτάσεις +PopuProp=Προϊόντα/Υπηρεσίες κατά δημοτικότητα στις Προσφορές PopuCom=Προϊόντα / Υπηρεσίες κατά δημοτικότητα στις παραγγελίες ProductStatistics=Στατιστικά Προϊόντων / Υπηρεσιών NbOfQtyInOrders=Ποσότητα σε παραγγελίες @@ -311,17 +317,23 @@ ExternalSiteURL=Διεύθυνση URL εξωτερικού ιστότοπου ExternalSiteModuleNotComplete=Η ενότητα Εξωτερικός Ιστότοπος δεν έχει ρυθμιστεί σωστά. ExampleMyMenuEntry=Το μενού μου -# FTP -FTPClientSetup=Ρύθμιση μονάδας FTP ή SFTP Client -NewFTPClient=Ρύθμιση νέας σύνδεσης FTP/FTPS -FTPArea=Περιοχή FTP/FTPS +# ftp +FTPClientSetup=Ρύθμιση ενότητας FTP ή SFTP Client +NewFTPClient=Ρύθμιση νέας σύνδεσης FTP/SFTP +FTPArea=Τομεας FTP/SFTP FTPAreaDesc=Αυτή η οθόνη εμφανίζει μια προβολή ενός διακομιστή FTP ή SFTP. -SetupOfFTPClientModuleNotComplete=Η εγκατάσταση της μονάδας πελάτη FTP ή SFTP φαίνεται να είναι ελλιπής +SetupOfFTPClientModuleNotComplete=Η εγκατάσταση της ενότητας πελάτη FTP ή SFTP φαίνεται να είναι ελλιπής FTPFeatureNotSupportedByYourPHP=Η PHP σας δεν υποστηρίζει λειτουργίες FTP ή SFTP FailedToConnectToFTPServer=Απέτυχε η σύνδεση με τον διακομιστή (διακομιστής %s, θύρα %s) -FailedToConnectToFTPServerWithCredentials=Απέτυχε η σύνδεση στο διακομιστή με καθορισμένη σύνδεση/κωδικό πρόσβασης +FailedToConnectToFTPServerWithCredentials=Απέτυχε η σύνδεση στο διακομιστή με καθορισμένο όνομα χρήστη/κωδικό πρόσβασης FTPFailedToRemoveFile=Αποτυχία διαγραφής αρχείου%s. FTPFailedToRemoveDir=Αποτυχία κατάργησης του καταλόγου %s : ελέγξτε τα δικαιώματα και ότι ο κατάλογος είναι κενός. -FTPPassiveMode=Passive mode +FTPPassiveMode=Παθητική λειτουργία ChooseAFTPEntryIntoMenu=Επιλέξτε μια τοποθεσία FTP/SFTP από το μενού... FailedToGetFile=Αποτυχία λήψης αρχείων %s +ErrorFTPNodisconnect=Σφάλμα αποσύνδεσης διακομιστή FTP/SFTP +FileWasUpload=Το αρχείο %s μεταφορτώθηκε +FTPFailedToUploadFile=Απέτυχε η μεταφόρτωση του αρχείου %s . +AddFolder=Δημιουργια φακέλου +FileWasCreateFolder=Ο φάκελος %s έχει δημιουργηθεί +FTPFailedToCreateFolder=Απέτυχε η δημιουργία του φακέλου %s . diff --git a/htdocs/langs/el_GR/paybox.lang b/htdocs/langs/el_GR/paybox.lang index 526e6f8aa95..3d34ad1474e 100644 --- a/htdocs/langs/el_GR/paybox.lang +++ b/htdocs/langs/el_GR/paybox.lang @@ -1,28 +1,28 @@ # Dolibarr language file - Source file is en_US - paybox -PayBoxSetup=Paybox μονάδα ρύθμισης -PayBoxDesc=Αυτή η ενότητα προσφέρει σελίδες που επιτρέπουν την πληρωμή στο Paybox από πελάτες. Αυτό μπορεί να χρησιμοποιηθεί για ελεύθερη πληρωμή ή για πληρωμή σε συγκεκριμένο αντικείμενο Dolibarr (τιμολόγιο, παραγγελία, ...) -FollowingUrlAreAvailableToMakePayments=Μετά από τις διευθύνσεις URL είναι διαθέσιμοι να προσφέρουν μια σελίδα σε έναν πελάτη να προβεί σε πληρωμή σε Dolibarr αντικείμενα -PaymentForm=Έντυπο πληρωμής -WelcomeOnPaymentPage=Καλώς ήλθατε στην ηλεκτρονική υπηρεσία πληρωμών μας -ThisScreenAllowsYouToPay=Αυτή η οθόνη σας επιτρέπει να κάνετε μια online πληρωμή %s. -ThisIsInformationOnPayment=Πρόκειται για πληροφορίες σχετικά με την πληρωμή να γίνει -ToComplete=Για να ολοκληρώσετε +PayBoxSetup=Ρύθμιση ενότητας PayBox +PayBoxDesc=Αυτή η ενότητα προσφέρει σελίδες που επιτρέπουν την πληρωμή στο Paybox από πελάτες. Αυτό μπορεί να χρησιμοποιηθεί για ελεύθερη πληρωμή ή για πληρωμή σε συγκεκριμένο αντικείμενο του Dolibarr (τιμολόγιο, παραγγελία, ...) +FollowingUrlAreAvailableToMakePayments=Οι ακόλουθες διευθύνσεις URL είναι διαθέσιμες για να προσφέρουν μια σελίδα σε έναν πελάτη για να πραγματοποιήσει μια πληρωμή σε αντικείμενα του Dolibarr +PaymentForm=Φόρμα πληρωμής +WelcomeOnPaymentPage= Καλώς ήλθατε στην υπηρεσία διαδικτυακών πληρωμών +ThisScreenAllowsYouToPay=Σε αυτή την οθόνη μπορείτε να κάνετε μια ηλεκτρονική πληρωμή στο %s. +ThisIsInformationOnPayment=Πληροφορίες σχετικά με την πληρωμή σας +ToComplete=Προς ολοκλήρωση YourEMail=E-mail για να λάβετε επιβεβαίωση της πληρωμής Creditor=Πιστωτής PaymentCode=Κωδικός Πληρωμής -PayBoxDoPayment=Πληρώστε με το Paybox -YouWillBeRedirectedOnPayBox=Θα μεταφερθείτε σε προστατευμένη σελίδα Paybox να εισάγετε τα στοιχεία της πιστωτικής σας κάρτας -Continue=Επόμενη -SetupPayBoxToHavePaymentCreatedAutomatically=Ρυθμίστε το Paybox με τη διεύθυνση url %s για να δημιουργήσετε αυτόματα πληρωμή όταν επικυρωθεί από το Paybox. -YourPaymentHasBeenRecorded=Η σελίδα αυτή επιβεβαιώνει ότι η πληρωμή σας έχει καταγραφεί. Σας ευχαριστώ. -YourPaymentHasNotBeenRecorded=Η πληρωμή σας ΔΕΝ έχει εγγραφεί και η συναλλαγή έχει ακυρωθεί. Σας ευχαριστώ. +PayBoxDoPayment=Πληρώστε με Paybox +YouWillBeRedirectedOnPayBox=Θα ανακατευθυνθείτε σε ασφαλή σελίδα του Paybox για να εισαγάγετε τα στοιχεία της πιστωτικής σας κάρτας +Continue=Επόμενο +SetupPayBoxToHavePaymentCreatedAutomatically=Ρυθμίστε το Paybox σας με τη διεύθυνση url %s για την αυτόματη δημιουργία πληρωμής όταν γίνεται επικύρωση από το Paybox. +YourPaymentHasBeenRecorded=Σελίδα επιβεβαίωσης καταγραφής της πληρωμής σας. Ευχαριστούμε. +YourPaymentHasNotBeenRecorded=Η πληρωμή σας ΔΕΝ έχει καταγραφεί και η συναλλαγή έχει ακυρωθεί. Ευχαριστούμε. AccountParameter=Παράμετροι λογαριασμού UsageParameter=Παράμετροι χρήσης InformationToFindParameters=Βοήθεια για να βρείτε %s τα στοιχεία του λογαριασμού σας -PAYBOX_CGI_URL_V2=Url της ενότητας Paybox CGI για την πληρωμή -CSSUrlForPaymentForm=Url CSS φύλλο στυλ για το έντυπο πληρωμής -NewPayboxPaymentReceived=Νέα πληρωμή Paybox που λήφθηκε -NewPayboxPaymentFailed=Νέα πληρωμή Paybox προσπάθησαν αλλά απέτυχαν +PAYBOX_CGI_URL_V2=Διεύθυνση Url της ενότητας Paybox CGI για την πληρωμή +CSSUrlForPaymentForm=URL CSS style sheet για φόρμα πληρωμής +NewPayboxPaymentReceived=Νέα πληρωμή Paybox ελήφθη +NewPayboxPaymentFailed=Η πληρωμή Paybox απέτυχε PAYBOX_PAYONLINE_SENDEMAIL=Ειδοποίηση ηλεκτρονικού ταχυδρομείου μετά από προσπάθεια πληρωμής (επιτυχία ή αποτυχία) PAYBOX_PBX_SITE=Τιμή για PBX SITE PAYBOX_PBX_RANG=Τιμή για PBX Rang diff --git a/htdocs/langs/el_GR/printing.lang b/htdocs/langs/el_GR/printing.lang index b9cc758e331..038c9679a2d 100644 --- a/htdocs/langs/el_GR/printing.lang +++ b/htdocs/langs/el_GR/printing.lang @@ -2,23 +2,23 @@ Module64000Name=Εκτύπωση με ένα κλικ Module64000Desc=Ενεργοποιήστε το Σύστημα Εκτύπωσης με ένα κλικ PrintingSetup=Ρύθμιση του Συστήματος Εκτύπωσης με ένα κλικ -PrintingDesc=Αυτή η μονάδα προσθέτει ένα κουμπί Εκτύπωσης σε διάφορες ενότητες για να επιτρέπει την απευθείας εκτύπωση εγγράφων σε έναν εκτυπωτή χωρίς να χρειάζεται να ανοίξετε το έγγραφο σε άλλη εφαρμογή. +PrintingDesc=Αυτή η ενότητα προσθέτει ένα κουμπί Εκτύπωσης σε διάφορες ενότητες για να επιτρέπει την απευθείας εκτύπωση εγγράφων σε έναν εκτυπωτή χωρίς να χρειάζεται να ανοίξετε το έγγραφο σε άλλη εφαρμογή. MenuDirectPrinting=Εργασίες Εκτύπωσης με ένα κλικ DirectPrint=Εκτύπωση με ένα κλικ PrintingDriverDesc=Διαμόρφωση μεταβλητών για τον οδηγό εκτύπωσης. ListDrivers=Λίστα οδηγών PrintTestDesc=Λίστα Εκτυπωτών. FileWasSentToPrinter=Το αρχείο %s στάλθηκε στον εκτυπωτή -ViaModule=μέσω της μονάδας -NoActivePrintingModuleFound=Δεν υπάρχει ενεργό πρόγραμμα οδήγησης για την εκτύπωση εγγράφου. Ελέγξτε τη ρύθμιση της μονάδας %s. +ViaModule=μέσω της ενότητας +NoActivePrintingModuleFound=Δεν υπάρχει ενεργός driver για την εκτύπωση εγγράφου. Ελέγξτε τη ρύθμιση της ενότητας %s. PleaseSelectaDriverfromList=Παρακαλώ επιλέξτε ένα πρόγραμμα οδήγησης από τη λίστα. -PleaseConfigureDriverfromList=Προσαρμόστε το επιλεγμένο πρόγραμμα οδήγησης από τη λίστα. +PleaseConfigureDriverfromList=Διαμορφώστε το επιλεγμένο πρόγραμμα οδήγησης από τη λίστα. SetupDriver=Ρυθμίσεις του προγράμματος οδήγησης TargetedPrinter=Στοχευμένη εκτύπωση UserConf=Ρύθμιση ανά χρήστη PRINTGCP_INFO=Ρύθμιση API Google OAuth PRINTGCP_AUTHLINK=Επικύρωση -PRINTGCP_TOKEN_ACCESS=Το Token OAuth του Google Cloud Print +PRINTGCP_TOKEN_ACCESS=Το token OAuth του Google Cloud Print PrintGCPDesc=Αυτό το πρόγραμμα οδήγησης επιτρέπει την απευθείας αποστολή εγγράφων σε εκτυπωτή χρησιμοποιώντας το Google Cloud Print. GCP_Name=Όνομα GCP_displayName=Εμφανιζόμενο όνομα @@ -46,8 +46,8 @@ IPP_Device=Συσκευή IPP_Media=Μέσα εκτύπωσης IPP_Supported=Τύπος των μέσων DirectPrintingJobsDesc=Αυτή η σελίδα παραθέτει τις εργασίες εκτύπωσης που βρέθηκαν για τους διαθέσιμους εκτυπωτές. -GoogleAuthNotConfigured=Το Google OAuth δεν έχει ρυθμιστεί. Ενεργοποιήστε την ενότητα OAuth και ορίστε ένα αναγνωριστικό / μυστικό Google. -GoogleAuthConfigured=Τα διαπιστευτήρια του Google OAuth βρέθηκαν στη ρύθμιση του module OAuth. +GoogleAuthNotConfigured=Το Google OAuth δεν έχει ρυθμιστεί. Ενεργοποιήστε την ενότητα OAuth και ορίστε ένα Google ID/Secret. +GoogleAuthConfigured=Τα διαπιστευτήρια του Google OAuth βρέθηκαν στη ρύθμιση της ενότητας OAuth. PrintingDriverDescprintgcp=Διαμόρφωση μεταβλητών οδηγών εκτύπωσης του Google Cloud Print. PrintingDriverDescprintipp=Διαμόρφωση μεταβλητών οδηγών εκτύπωσης Cups. PrintTestDescprintgcp=Λίστα εκτυπωτών με δυνατότητα Google Cloud Print. diff --git a/htdocs/langs/el_GR/productbatch.lang b/htdocs/langs/el_GR/productbatch.lang index 12e3ec0401b..4f6858b46d6 100644 --- a/htdocs/langs/el_GR/productbatch.lang +++ b/htdocs/langs/el_GR/productbatch.lang @@ -17,8 +17,9 @@ printBatch=Παρτίδα/Σειριακός αριθμός: %s printEatby=Λήξη ανάλωσης: %s printSellby=Πώληση έως: %s printQty=Ποσότητα: %d +printPlannedWarehouse=Αποθήκη: %s AddDispatchBatchLine=Προσθέστε μια γραμμή για την αποστολή παρτίδας -WhenProductBatchModuleOnOptionAreForced=Όταν η επιλογή παρτίδας / σειριακού αριθμού είναι ενεργοποιημένη, στην αυτόματη μείωση των αποθεμάτων είναι αναγκαστικά επιλεγμένη η «Μείωση πραγματικών αποθεμάτων κατά την επικύρωση αποστολής» και στην αυτόματη λειτουργία αύξησης είναι αναγκαστικά επιλεγμένη η «Αύξηση των πραγματικών αποθεμάτων κατά τη χειροκίνητη αποστολή σε αποθήκες» και δεν μπορεί να γίνει επεξεργασία. Οι άλλες επιλογές μπορούν να οριστούν όπως θέλετε. +WhenProductBatchModuleOnOptionAreForced=Όταν η ενότητα παρτίδας / σειριακού αριθμού είναι ενεργοποιημένη, στην αυτόματη μείωση των αποθεμάτων είναι αναγκαστικά επιλεγμένη η «Μείωση πραγματικών αποθεμάτων κατά την επικύρωση αποστολής» και στην αυτόματη λειτουργία αύξησης είναι αναγκαστικά επιλεγμένη η «Αύξηση των πραγματικών αποθεμάτων κατά τη χειροκίνητη αποστολή σε αποθήκες» και δεν μπορεί να γίνει επεξεργασία. Οι άλλες επιλογές μπορούν να οριστούν όπως θέλετε. ProductDoesNotUseBatchSerial=Το προιόν δεν χρησιμοποιεί παρτίδα/σειριακό αριθμό ProductLotSetup=Ρύθμιση της ενότητας παρτίδα/σειριακός αριθμός ShowCurrentStockOfLot=Εμφάνιση παρόντος αποθέματος για ζεύγος προϊόν/παρτίδα @@ -33,7 +34,7 @@ BatchSerialNumberingModules=Κανόνας αρίθμησης για αυτόμ QtyToAddAfterBarcodeScan=Ποσότητα έως %s για κάθε σκαναρισμένο barcode/παρτίδα/σειριακό αριθμό LifeTime=Διάρκεια ζωής (σε ημέρες) EndOfLife=Τέλος κύκλου ζωής -ManufacturingDate=Ημερομηνία κατασκευής +ManufacturingDate=Ημερομηνία παραγωγής DestructionDate=Ημερομηνία καταστροφής FirstUseDate=Ημερομηνία πρώτης χρήσης QCFrequency=Συχνότητα ποιοτικού ελέγχου (σε ημέρες) diff --git a/htdocs/langs/el_GR/products.lang b/htdocs/langs/el_GR/products.lang index ac8eac8a0da..0fd7581f1b9 100644 --- a/htdocs/langs/el_GR/products.lang +++ b/htdocs/langs/el_GR/products.lang @@ -20,7 +20,7 @@ NewService=Νέα Υπηρεσία ProductVatMassChange=Καθολική ενημέρωση ΦΠΑ ProductVatMassChangeDesc=Αυτό το εργαλείο ενημερώνει τον συντελεστή ΦΠΑ που ορίζεται σε ΟΛΑ προϊόντα και υπηρεσίες! MassBarcodeInit=Μαζική ενεργοποίηση barcode -MassBarcodeInitDesc=Αυτή η σελίδα μπορεί να χρησιμοποιηθεί για την ενεργοποίηση ενός barcode σε αντικείμενα που δεν έχουν καθορισμένο barcode. Ελέγξτε νωρίτερα ότι έχει ολοκληρωθεί η ρύθμιση της μονάδας barcode . +MassBarcodeInitDesc=Αυτή η σελίδα μπορεί να χρησιμοποιηθεί για την ενεργοποίηση ενός barcode σε αντικείμενα που δεν έχουν καθορισμένο barcode. Ελέγξτε νωρίτερα ότι έχει ολοκληρωθεί η ρύθμιση της ενότητας barcode . ProductAccountancyBuyCode=Λογιστικός Κωδικός (Αγορά) ProductAccountancyBuyIntraCode=Λογιστικός κωδικός (ενδοκοινοτική αγορά) ProductAccountancyBuyExportCode=Λογιστικός κωδικός (εισαγωγή αγοράς) @@ -75,7 +75,7 @@ SellingPriceTTC=Τιμή Πώλησης (με Φ.Π.Α) SellingMinPriceTTC=Ελάχιστη τιμή πώλησης (με Φ.Π.Α) CostPriceDescription=Αυτό το πεδίο τιμών (εκτός Φ.Π.Α) μπορεί να χρησιμοποιηθεί για την αποθήκευση του μέσου ποσού που το προϊόν αυτό κοστίζει στην εταιρεία σας. Μπορεί να είναι οποιαδήποτε τιμή εσείς υπολογίζετε, για παράδειγμα, από τη μέση τιμή αγοράς συν το μέσο κόστος παραγωγής και διανομής. CostPriceUsage=Αυτή η τιμή θα μπορούσε να χρησιμοποιηθεί για υπολογισμό περιθωρίου. -ManufacturingPrice=Τιμή κατασκευής +ManufacturingPrice=Τιμή παραγωγής SoldAmount=Ποσό που πουλήθηκε PurchasedAmount=Ποσό που αγοράστηκε NewPrice=Νέα Τιμή @@ -103,18 +103,18 @@ BarCode=Barcode BarcodeType=Τύπος Barcode SetDefaultBarcodeType=Ορισμός τύπου barcode BarcodeValue=Τιμή Barcode -NoteNotVisibleOnBill=Σημείωση (μη ορατή σε τιμολόγια, προτάσεις...) +NoteNotVisibleOnBill=Σημείωση (μη ορατή σε τιμολόγια, προσφορές...) ServiceLimitedDuration=Εάν το προϊόν είναι μια υπηρεσία με περιορισμένη διάρκεια: -FillWithLastServiceDates=Συμπληρώστε με ημερομηνίες τελευταίας γραμμής σέρβις +FillWithLastServiceDates=Συμπληρώστε με ημερομηνίες τελευταίας γραμμής υπηρεσίας MultiPricesAbility=Πολλαπλά τμήματα τιμών ανά προϊόν / υπηρεσία (κάθε πελάτης βρίσκεται σε ένα τμήμα τιμών) MultiPricesNumPrices=Αριθμός διαφορετικής τιμής -DefaultPriceType=Προκαθορισμένη βάση τιμών (συμπεριλαμβανομένου φόρου) κατά την προσθήκη νέων τιμών πώλησης +DefaultPriceType=Προκαθορισμένη βάση τιμών (με ή χωρίς Φ.Π.Α.) κατά την προσθήκη νέων τιμών πώλησης AssociatedProductsAbility=Ενεργοποίηση κιτ (σετ διαφόρων προϊόντων) VariantsAbility=Ενεργοποίηση παραλλαγών (παραλλαγές προϊόντων, για παράδειγμα χρώμα, μέγεθος) AssociatedProducts=Κιτ AssociatedProductsNumber=Αριθμός προϊόντων που συνθέτουν αυτό το κιτ ParentProductsNumber=Αριθμός γονικής συσκευασίας προϊόντος -ParentProducts=Μητρικά προϊόντα +ParentProducts=Γονικά προϊόντα IfZeroItIsNotAVirtualProduct=Αν 0, αυτό το προϊόν δεν είναι κιτ IfZeroItIsNotUsedByVirtualProduct= \nΑν 0, αυτό το προϊόν δεν είναι μέρος κάποιου κιτ KeywordFilter=Φίλτρο λέξης-κλειδιού @@ -124,7 +124,7 @@ NoMatchFound=Δεν βρέθηκε κατάλληλη εγγραφή ListOfProductsServices=Κατάλογος προϊόντων / υπηρεσιών ProductAssociationList=Κατάλογος προϊόντων/υπηρεσιών που αποτελούν μέρος(η) αυτού του κιτ ProductParentList=Λίστα των κιτ με αυτό το προϊόν ως παρελκόμενο -ErrorAssociationIsFatherOfThis=Ένα από τα προϊόντα που θα επιλεγούν είναι γονέας με την τρέχουσα προϊόν +ErrorAssociationIsFatherOfThis=Ένα από τα επιλεγμένα προϊόντα είναι γονικό του τρέχοντος προϊόντος DeleteProduct=Διαγραφή προϊόντος/υπηρεσίας ConfirmDeleteProduct=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το προϊόν / υπηρεσία; ProductDeleted=Προϊόν / Υπηρεσία "%s"; διαγράφηκε από τη βάση δεδομένων. @@ -162,7 +162,7 @@ ConfirmCloneProduct=Είστε σίγουροι ότι θέλετε να κλω CloneContentProduct=Επαναχρησιμοποιήστε όλες τις κύριες πληροφορίες του προϊόντος/υπηρεσίας ClonePricesProduct=Επαναχρησιμοποιήστε τις τιμες CloneCategoriesProduct=Επαναχρησιμοποιήστε συνδεδεμένες ετικέτες/κατηγορίες -CloneCompositionProduct=Επαναχρησιμοποιήστε εικονικα προϊόντα/υπηρεσιες +CloneCompositionProduct=Αντιγραφή εικονικών προϊόντων/υπηρεσιών CloneCombinationsProduct=Επαναχρησιμοποιήστε τις παραλλαγές προϊόντων ProductIsUsed=Μεταχειρισμένο NewRefForClone=Αναφ. νέου προϊόντος/υπηρεσίας @@ -201,7 +201,7 @@ m3=m³ liter=Λίτρο l=Λίτρο unitP=Κομμάτι -unitSET=Σειρά +unitSET=Set unitS=Δευτερόλεπτο unitH=Ώρα unitD=Ημέρα @@ -246,8 +246,8 @@ PriceByQuantity=Διαφορετικές τιμές ανά ποσότητα DisablePriceByQty=Απενεργοποιήστε τις τιμές ανά ποσότητα PriceByQuantityRange=Εύρος ποσότητας MultipriceRules=Αυτόματες τιμές για το τμήμα -UseMultipriceRules=Χρησιμοποιήστε κανόνες για το τμήμα των τιμών (που ορίζονται στην εγκατάσταση μονάδας προϊόντος) για να υπολογίσετε αυτόματα τις τιμές όλων των άλλων τμημάτων σύμφωνα με τον πρώτο τομέα -PercentVariationOver=Παραλλαγή %% μέσω %s +UseMultipriceRules=Χρησιμοποιήστε κανόνες για το τμήμα των τιμών (που ορίζονται στην εγκατάσταση ενότητας προϊόντος) για να υπολογίσετε αυτόματα τις τιμές όλων των άλλων τμημάτων σύμφωνα με το πρώτο τμήμα +PercentVariationOver=%%Παραλλαγή μέσω %s PercentDiscountOver=%% έκπτωση πάνω από %s KeepEmptyForAutoCalculation=Κρατήστε κενό για να το υπολογίσετε αυτομάτως από το βάρος ή τον όγκο των προϊόντων VariantRefExample=Παραδείγματα: ΧΡΩΜΑ, ΜΕΓΕΘΟΣ @@ -256,8 +256,8 @@ VariantLabelExample=Παραδείγματα: Χρώμα, Μέγεθος Build=Παράγω ProductsMultiPrice=Προϊόντα και τιμές για κάθε τμήμα τιμών ProductsOrServiceMultiPrice=Τιμές πελατών (προϊόντων ή υπηρεσιών, πολλαπλές τιμές) -ProductSellByQuarterHT=Κύκλος εργασιών τριμηνιαία πριν από τη φορολογία -ServiceSellByQuarterHT=Κύκλος εργασιών ανά τρίμηνο προ φόρων +ProductSellByQuarterHT=Κύκλος εργασιών προϊόντων ανά τρίμηνο προ φόρων +ServiceSellByQuarterHT=Κύκλος εργασιών υπηρεσιών ανά τρίμηνο προ φόρων Quarter1=1ο. Τέταρτο Quarter2=2ο. Τέταρτο Quarter3=3η. Τέταρτο @@ -271,7 +271,7 @@ FillBarCodeTypeAndValueManually=Συμπληρώστε τον τύπο barcode FillBarCodeTypeAndValueFromProduct=Συμπληρώστε τον τύπο barcode και αξία από το barcode του προϊόντος. FillBarCodeTypeAndValueFromThirdParty=Συμπληρώστε τον τύπο και την τιμή του γραμμικού κώδικα από τον γραμμωτό κώδικα ενός τρίτου μέρους. DefinitionOfBarCodeForProductNotComplete=Ο ορισμός του τύπου ή της αξίας του γραμμικού κώδικα δεν έχει ολοκληρωθεί για το προϊόν %s. -DefinitionOfBarCodeForThirdpartyNotComplete=Ορισμός του τύπου ή της αξίας του μη ολοκληρωμένου γραμμικού κώδικα για το τρίτο μέρος %s. +DefinitionOfBarCodeForThirdpartyNotComplete=Ο ορισμός του τύπου ή της αξίας του γραμμικού κώδικα δεν έχει ολοκληρωθεί για το τρίτο μέρος %s. BarCodeDataForProduct=Πληροφορίες γραμμικού κώδικα του προϊόντος %s: BarCodeDataForThirdparty=Πληροφορίες γραμμικού κώδικα τρίτου μέρους %s: ResetBarcodeForAllRecords=Ορίστε την τιμή του γραμμικού κώδικα για όλες τις εγγραφές (αυτό επίσης θα επαναφέρει την τιμή του γραμμικού κώδικα που έχει ήδη καθοριστεί με νέες τιμές) @@ -280,38 +280,38 @@ PriceCatalogue=Μια ενιαία τιμή πώλησης ανά προϊόν / PricingRule=Κανόνες για τις τιμές πώλησης AddCustomerPrice=Προσθήκη τιμής ανά πελάτη ForceUpdateChildPriceSoc=Ορίστε την ίδια τιμή στις θυγατρικές του πελάτη -PriceByCustomerLog=Καταγραφή προηγούμενων τιμών πελατών +PriceByCustomerLog=Αρχείο καταγραφής προηγούμενων τιμών πελατών MinimumPriceLimit=Η ελάχιστη τιμή δεν μπορεί να είναι χαμηλότερη από %s MinimumRecommendedPrice=Η ελάχιστη προτεινόμενη τιμή είναι: %s PriceExpressionEditor=Επεξεργαστής συνάρτησης τιμών PriceExpressionSelected=Επιλεγμένη έκφραση τιμής PriceExpressionEditorHelp1="τιμή = 2 + 2" ή "2 + 2" για τον καθορισμό της τιμής. Χρησιμοποιήστε ; για να διαχωρίσετε τις εκφράσεις -PriceExpressionEditorHelp2=Μπορείτε να έχετε πρόσβαση σε ExtraFields με μεταβλητές όπως # extrafield_myextrafieldkey # και παγκόσμιες μεταβλητές με # global_mycode # -PriceExpressionEditorHelp3=Και στις δύο τιμές προϊόντων / υπηρεσιών και πωλητών υπάρχουν οι παρακάτω μεταβλητές:
# tva_tx # # localtax1_tx # # localtax2_tx # # βάρος # # μήκος # # επιφάνεια # # price_min # -PriceExpressionEditorHelp4=Μόνο στην τιμή προϊόντος / υπηρεσίας: # provider_min_price #
Μόνο στις τιμές πωλητών: # # προμηθευτής και # προμηθευτής_tva_tx # -PriceExpressionEditorHelp5=Διαθέσιμες συνολικές τιμές: +PriceExpressionEditorHelp2=Μπορείτε να αποκτήσετε πρόσβαση στα Επιπλέον πεδία με μεταβλητές όπως #extrafield_myextrafieldkey# και καθολικές μεταβλητές με #global_mycode# +PriceExpressionEditorHelp3=Στις τιμές προϊόντων / υπηρεσιών και πωλητών υπάρχουν οι παρακάτω μεταβλητές:
# tva_tx # # localtax1_tx # # localtax2_tx # # βάρος # # μήκος # # επιφάνεια # # price_min # +PriceExpressionEditorHelp4=Μόνο σε τιμή προϊόντος/υπηρεσίας: #supplier_min_price#
Μόνο σε τιμές προμηθευτή: #supplier_quantity# και #supplier_tva_tx# +PriceExpressionEditorHelp5=Διαθέσιμες καθολικές τιμές: PriceMode=Λειτουργία Τιμής PriceNumeric=Αριθμός DefaultPrice=Προεπιλεγμένη τιμή DefaultPriceLog=Αρχείο προηγούμενων προεπιλεγμένων τιμών -ComposedProductIncDecStock=Αύξηση/Μείωση αποθεμάτων στην μητρική -ComposedProduct=Child products +ComposedProductIncDecStock=Αύξηση/Μείωση αποθέματος κατά την αλλαγή του αρχικού προϊόντος +ComposedProduct=Υποπροϊόντα MinSupplierPrice=Ελάχιστη τιμή αγοράς MinCustomerPrice=Ελάχιστη τιμή πώλησης NoDynamicPrice=Χωρίς δυναμική τιμή DynamicPriceConfiguration=Διαμόρφωση δυναμικών τιμών DynamicPriceDesc=Μπορείτε να ορίσετε μαθηματικούς τύπους για τον υπολογισμό των τιμών των πελατών ή των προμηθευτών. Τέτοιοι τύποι μπορούν να χρησιμοποιήσουν όλους τους μαθηματικούς χειριστές, κάποιες σταθερές και μεταβλητές. Μπορείτε να ορίσετε εδώ τις μεταβλητές που θέλετε να χρησιμοποιήσετε. Αν η μεταβλητή χρειάζεται αυτόματη ενημέρωση, μπορείτε να ορίσετε την εξωτερική διεύθυνση URL ώστε να επιτρέψει στο Dolibarr να ενημερώσει αυτόματα την τιμή. AddVariable=Προσθήκη μεταβλητής -AddUpdater=Προσθήκη του Updater +AddUpdater=Προσθήκη URL ενημέρωσης GlobalVariables=Καθολικές μεταβλητές VariableToUpdate=Μεταβλητή για ενημέρωση GlobalVariableUpdaters=Εξωτερικές ενημερώσεις για μεταβλητές GlobalVariableUpdaterType0=Δεδομένα JSON GlobalVariableUpdaterHelp0=Αναλύει τα δεδομένα JSON από συγκεκριμένη διεύθυνση URL, το VALUE καθορίζει τη θέση της αντίστοιχης τιμής, -GlobalVariableUpdaterHelpFormat0=Μορφή αίτησης {"URL": "http://example.com/urlofjson", "VALUE": "array1, array2, targetvalue"} +GlobalVariableUpdaterHelpFormat0=Μορφή για αίτημα {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} GlobalVariableUpdaterType1=Δεδομένα WebService -GlobalVariableUpdaterHelp1=Parses δεδομένα WebService από συγκεκριμένη διεύθυνση URL, NS προσδιορίζει το χώρο ονομάτων, VALUE καθορίζει τη θέση της σχετικής τιμής, τα δεδομένα πρέπει να περιέχουν τα δεδομένα για αποστολή και METHOD είναι η μέθοδος κλήσης WS -GlobalVariableUpdaterHelpFormat1=Η φόρμα για το αίτημα είναι {"URL": "http://example.com/urlofws", "VALUE": "array, targetvalue", "NS": "http://example.com/urlofns" : "myWSMethod", "DATA": {"your": "δεδομένα", "to": "αποστολή"}} +GlobalVariableUpdaterHelp1=Αναλύει δεδομένα WebService από καθορισμένο URL, το NS καθορίζει το namespace, το 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"}} UpdateInterval=Διάρκεια ενημέρωσης (λεπτά) LastUpdated=Τελευταία ενημέρωση CorrectlyUpdated=Ενημερώθηκε σωστά @@ -331,21 +331,21 @@ ProductWeight=Βάρος για 1 προϊόν ProductVolume=Όγκος για 1 προϊόν WeightUnits=Μονάδα βάρους VolumeUnits=Μονάδα όγκου -WidthUnits=Πλάτος -LengthUnits=Μήκος -HeightUnits=Ύψος +WidthUnits=Μονάδα πλάτους +LengthUnits=Μονάδα μήκους +HeightUnits=Μονάδα ύψους SurfaceUnits=Μονάδα επιφάνειας SizeUnits=Μονάδα μεγέθους DeleteProductBuyPrice=Διαγραφή τιμής αγοράς -ConfirmDeleteProductBuyPrice=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την τιμή αγοράς; +ConfirmDeleteProductBuyPrice=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την τιμή αγοράς; SubProduct=Υποπροϊόν -ProductSheet=Φύλλο προϊόντος -ServiceSheet=Φύλλο εξυπηρέτησης +ProductSheet=Κατάσταση(Φύλλο) προϊόντων +ServiceSheet=Κατάσταση(Φύλλο) υπηρεσιών PossibleValues=Πιθανές τιμές -GoOnMenuToCreateVairants=Πηγαίνετε στο μενού %s - %s για να προετοιμάσετε παραλλαγές χαρακτηριστικών (όπως χρώματα, μέγεθος, ...) +GoOnMenuToCreateVairants=Μεταβείτε στο μενού %s - %s για να προετοιμάσετε παραλλαγές χαρακτηριστικών (όπως χρώματα, μέγεθος, ...) UseProductFournDesc=Προσθέστε μια δυνατότητα για να ορίσετε την περιγραφή του προϊόντος που ορίστηκε από τους προμηθευτές (για κάθε αναφορά προμηθευτή) επιπρόσθετα της περιγραφής για τους πελάτες ProductSupplierDescription=Περιγραφή προμηθευτή για το προϊόν -UseProductSupplierPackaging=Χρησιμοποιήστε τη συσκευασία στις τιμές προμηθευτή (επανυπολογίστε τις ποσότητες σύμφωνα με τη συσκευασία που καθορίζεται στην τιμή προμηθευτή κατά την προσθήκη / ενημέρωση της γραμμής στα έγγραφα προμηθευτών) +UseProductSupplierPackaging=Χρησιμοποιήστε την συσκευασία για τιμές στρογγυλοποιημένες σε πολλαπλές για τιμές αγοράς (υπολογίστε εκ νέου τις ποσότητες σύμφωνα με τα πολλαπλάσια που ορίζονται στις τιμές αγοράς κατά την προσθήκη/ενημέρωση γραμμής σε έγγραφα προμηθευτή) PackagingForThisProduct=Συσκευασία PackagingForThisProductDesc=Θα αγοράσετε αυτόματα ένα πολλαπλάσιο αυτής της ποσότητας. QtyRecalculatedWithPackaging=Η ποσότητα της γραμμής υπολογίστηκε εκ νέου σύμφωνα με τη συσκευασία του προμηθευτή @@ -355,12 +355,12 @@ VariantAttributes=Χαρακτηριστικά παραλλαγής ProductAttributes=Χαρακτηριστικά παραλλαγών για προϊόντα ProductAttributeName=Χαρακτηριστικό παραλλαγής %s ProductAttribute=Χαρακτηριστικό παραλλαγής -ProductAttributeDeleteDialog=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το χαρακτηριστικό; Όλες οι τιμές θα διαγραφούν -ProductAttributeValueDeleteDialog=Είστε βέβαιοι ότι θέλετε να διαγράψετε την τιμή "%s" με αναφορά "%s" αυτού του χαρακτηριστικού; -ProductCombinationDeleteDialog=Είστε βέβαιοι ότι θέλετε να διαγράψετε την παραλλαγή του προϊόντος " %s "; +ProductAttributeDeleteDialog=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το χαρακτηριστικό; Όλες οι τιμές θα διαγραφούν +ProductAttributeValueDeleteDialog=Είστε σίγουροι ότι θέλετε να διαγράψετε την τιμή "%s" με αναφορά "%s" αυτού του χαρακτηριστικού; +ProductCombinationDeleteDialog=Είστε σίγουροι ότι θέλετε να διαγράψετε την παραλλαγή του προϊόντος "%s "; ProductCombinationAlreadyUsed=Παρουσιάστηκε σφάλμα κατά τη διαγραφή της παραλλαγής. Ελέγξτε ότι δεν χρησιμοποιείται σε οποιοδήποτε αντικείμενο ProductCombinations=Παραλλαγές -PropagateVariant=Διαφορετικές παραλλαγές +PropagateVariant=Παραγωγή παραλλαγών HideProductCombinations=Απόκρυψη παραλλαγών προϊόντων στον επιλογέα προϊόντων ProductCombination=Παραλλαγή NewProductCombination=Νέα παραλλαγή @@ -370,36 +370,36 @@ EditProductCombinations=Επεξεργασία παραλλαγών SelectCombination=Επιλέξτε συνδυασμό ProductCombinationGenerator=Γεννήτρια παραλλαγών Features=Χαρακτηριστικά -PriceImpact=Επιπτώσεις στις τιμές +PriceImpact=Επίπτωση στην τιμή ImpactOnPriceLevel=Αντίκτυπος στο επίπεδο τιμών %s ApplyToAllPriceImpactLevel= Εφαρμογή σε όλα τα επίπεδα ApplyToAllPriceImpactLevelHelp=Κάνοντας κλικ εδώ, ορίζετε τον ίδιο αντίκτυπο στην τιμή σε όλα τα επίπεδα -WeightImpact=Επιπτώσεις στο βάρος +WeightImpact=Επίπτωση στο βάρος NewProductAttribute=Νέο χαρακτηριστικό NewProductAttributeValue=Νέα τιμή χαρακτηριστικού ErrorCreatingProductAttributeValue=Παρουσιάστηκε σφάλμα κατά τη δημιουργία της τιμής του χαρακτηριστικού. Θα μπορούσε να είναι επειδή υπάρχει ήδη μια υπάρχουσα τιμή με αυτή την αναφορά ProductCombinationGeneratorWarning=Εάν συνεχίσετε, πριν δημιουργήσετε νέες παραλλαγές, όλες οι προηγούμενες θα ΔΙΑΓΡΑΦΟΥΝ. Οι ήδη υπάρχουσες θα ενημερωθούν με τις νέες τιμές TooMuchCombinationsWarning=Η δημιουργία πολλών παραλλαγών μπορεί να έχει ως αποτέλεσμα υψηλή χρήση CPU και μνήμης με συνέπεια το Dolibarr να μην μπορεί να τις δημιουργήσει. Η ενεργοποίηση της επιλογής "%s" μπορεί να βοηθήσει στη μείωση της χρήσης μνήμης. DoNotRemovePreviousCombinations=Μην αφαιρείτε προηγούμενες παραλλαγές -UsePercentageVariations=Χρησιμοποιήστε ποσοστιαίες παραλλαγές -PercentageVariation=Ποσοστιαία μεταβολή +UsePercentageVariations=Ποσοστό χρήσης παραλλαγών +PercentageVariation=Ποσοστό παραλλαγής ErrorDeletingGeneratedProducts=Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής των υπαρχουσών παραλλαγών προϊόντων NbOfDifferentValues=Αριθ. Διαφορετικών τιμών NbProducts=Αριθμός προϊόντων -ParentProduct=Το γονικό προϊόν +ParentProduct=Αρχικό προϊόν HideChildProducts=Απόκρυψη παραλλαγών προϊόντων ShowChildProducts=Εμφάνιση παραλλαγών προϊόντων -NoEditVariants=Μεταβείτε στην καρτέλα γονικής κάρτας προϊόντος και επεξεργαστείτε τις επιπτώσεις των τιμών των παραλλαγών στην καρτέλα παραλλαγών -ConfirmCloneProductCombinations=Θέλετε να αντιγράψετε όλες τις παραλλαγές προϊόντων στο άλλο γονικό προϊόν με τη δεδομένη αναφορά; -CloneDestinationReference=Παραπομπή προϊόντος προορισμού +NoEditVariants=Μεταβείτε στην καρτέλα του αρχικού προϊόντος και επεξεργαστείτε τις επιπτώσεις των τιμών των παραλλαγών στην καρτέλα παραλλαγών +ConfirmCloneProductCombinations=Θέλετε να αντιγράψετε όλες τις παραλλαγές προϊόντων στο άλλο αρχικό προϊόν με τη συγκεκριμένη αναφορά; +CloneDestinationReference=Αναφορά προϊόντος προορισμού ErrorCopyProductCombinations=Παρουσιάστηκε σφάλμα κατά την αντιγραφή των παραλλαγών του προϊόντος ErrorDestinationProductNotFound=Το προϊόν προορισμού δεν βρέθηκε ErrorProductCombinationNotFound=Η παραλλαγή προϊόντος δεν βρέθηκε ActionAvailableOnVariantProductOnly=Η ενέργεια είναι διαθέσιμη μόνο για την παραλλαγή του προϊόντος ProductsPricePerCustomer=Τιμές προϊόντων ανά πελάτη ProductSupplierExtraFields=Πρόσθετα χαρακτηριστικά (τιμές προμηθευτή) -DeleteLinkedProduct=Διαγράψτε το θυγατρικό προϊόν που συνδέεται με τον συνδυασμό -AmountUsedToUpdateWAP=Ποσό που θα χρησιμοποιηθεί για την ενημέρωση της σταθμισμένης μέσης τιμής +DeleteLinkedProduct=Διαγράψτε το υποπροϊόν που συνδέεται με τον συνδυασμό +AmountUsedToUpdateWAP=Ποσό μονάδας που θα χρησιμοποιηθεί για την ενημέρωση της σταθμισμένης μέσης τιμής PMPValue=Σταθμισμένη μέση τιμή PMPValueShort=WAP mandatoryperiod=Υποχρεωτικές περίοδοι @@ -407,7 +407,7 @@ mandatoryPeriodNeedTobeSet=Σημείωση: Πρέπει να καθοριστ mandatoryPeriodNeedTobeSetMsgValidate=Μια υπηρεσία απαιτεί περίοδο έναρξης και λήξης mandatoryHelper=Επιλέξτε αυτό εάν θέλετε ένα μήνυμα στον χρήστη κατά τη δημιουργία/επικύρωση τιμολογίου, εμπορικής πρότασης, παραγγελίας πώλησης χωρίς να εισάγετε ημερομηνία έναρξης και λήξης στις γραμμές αυτής της υπηρεσίας.
Σημειώστε ότι το μήνυμα είναι μια προειδοποίηση και όχι ένα σφάλμα αποκλεισμού. DefaultBOM=Προεπιλεγμένο BOM -DefaultBOMDesc=Το προεπιλεγμένο BOM συνιστάται να χρησιμοποιείται για την κατασκευή αυτού του προϊόντος. Αυτό το πεδίο μπορεί να οριστεί μόνο εάν η φύση του προϊόντος είναι "%s". +DefaultBOMDesc=Το προεπιλεγμένο BOM που συνιστάται να χρησιμοποιείται για την κατασκευή αυτού του προϊόντος. Αυτό το πεδίο μπορεί να οριστεί μόνο εάν η φύση του προϊόντος είναι "%s". Rank=Κατάταξη MergeOriginProduct=Διπλότυπο προϊόν (προϊόν που θέλετε να διαγράψετε) MergeProducts=Συγχώνευση προϊόντων @@ -416,10 +416,11 @@ ProductsMergeSuccess=Τα προϊόντα έχουν συγχωνευθεί ErrorsProductsMerge=Σφάλματα κατά τη συγχώνευση προϊόντων SwitchOnSaleStatus=Ενεργοποίηση κατάστασης πώλησης SwitchOnPurchaseStatus=Ενεργοποίηση κατάσταση αγοράς -StockMouvementExtraFields= Extra Fields (κίνηση μετοχών) -InventoryExtraFields= Επιπλέον πεδία (απόθεμα) +UpdatePrice=Αύξηση/μείωση τιμής πελάτη +StockMouvementExtraFields= Επιπλέον πεδία (κίνηση αποθεμάτων) +InventoryExtraFields= Επιπλέον πεδία (απογραφή) ScanOrTypeOrCopyPasteYourBarCodes=Σαρώστε ή πληκτρολογήστε ή αντιγράψτε/επικολλήστε τους γραμμωτούς κώδικες σας -PuttingPricesUpToDate=Ενημερώστε τις τιμές με τις τρέχουσες γνωστές τιμές +PuttingPricesUpToDate=Ενημέρωση τιμών με τις τρέχουσες γνωστές τιμές PMPExpected=Αναμενόμενο PMP ExpectedValuation=Αναμενόμενη Αποτίμηση PMPReal=Πραγματικό PMP @@ -427,3 +428,4 @@ RealValuation=Πραγματική Αποτίμηση ConfirmEditExtrafield = Επιλέξτε το επιπλέον πεδίο που θέλετε να τροποποιήσετε ConfirmEditExtrafieldQuestion = Είστε σιγουροι ότι θέλετε να τροποποιήσετε αυτό το επιπλέον πεδίο; ModifyValueExtrafields = Τροποποίηση της τιμής ενός επιπλέον πεδίου +OrProductsWithCategories=Ή προϊόντα με ετικέτες/κατηγορίες diff --git a/htdocs/langs/el_GR/projects.lang b/htdocs/langs/el_GR/projects.lang index b9af08448d1..4e12b625d84 100644 --- a/htdocs/langs/el_GR/projects.lang +++ b/htdocs/langs/el_GR/projects.lang @@ -23,6 +23,7 @@ TasksPublicDesc=Αυτή η προβολή παρουσιάζει όλα τα έ TasksDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα και τις εργασίες (τα δικαιώματα χρήστη σας δίνουν την άδεια να βλέπετε τα πάντα). AllTaskVisibleButEditIfYouAreAssigned=Όλες οι εργασίες για πιστοποιημένα έργα είναι ορατές, αλλά μπορείτε να εισάγετε χρόνο μόνο για εργασία που έχει εκχωρηθεί σε επιλεγμένο χρήστη. Εκχωρήστε εργασία αν χρειαστεί να εισάγετε χρόνο σε αυτήν. OnlyYourTaskAreVisible=Μόνο εργασίες που σας έχουν ανατεθεί είναι ορατές. Αν χρειάζεται να εισάγετε χρόνο στην εργασία και η εργασία δεν είναι ορατή, πρέπει να αναθέσετε την εργασία στον εαυτό σας. +ImportDatasetProjects=Έργα ή ευκαιρίες ImportDatasetTasks=Καθήκοντα έργων ProjectCategories=Ετικέτες/κατηγορίες έργου NewProject=Νέο Έργο @@ -37,7 +38,9 @@ OpportunitiesStatusForOpenedProjects=Ποσό προοπτικών ανοιχτ OpportunitiesStatusForProjects=Ποσό προοπτικών έργων ανά κατάσταση ShowProject=Εμφάνιση έργου ShowTask=Εμφάνιση Εργασίας +SetThirdParty=Ορισμός τρίτου μέρους SetProject=Ορισμός έργου +OutOfProject=Εκτός έργου NoProject=Κανένα έργο δεν έχει οριστεί ή εκχωρηθεί NbOfProjects=Αριθμός έργων NbOfTasks=Αριθμός εργασιών @@ -55,11 +58,11 @@ TaskTimeDate=Ημερομηνία TasksOnOpenedProject=Εργασίες σε ανοιχτά έργα WorkloadNotDefined=Ο φόρτος εργασίας δεν έχει καθοριστεί NewTimeSpent=Χρόνος που ξοδεύτηκε -MyTimeSpent=Ο χρόνος μου πέρασε -BillTime=Ο χρόνος που πέρασε -BillTimeShort=Χρόνος λογαριασμού -TimeToBill=Χρόνος που δεν χρεώνεται -TimeBilled=Χρόνος χρέωσης +MyTimeSpent=Ο χρόνος που δαπάνησα +BillTime=Χρέωση του χρόνου που δαπανήθηκε +BillTimeShort=Χρέωση χρόνου +TimeToBill=Χρόνος που δεν χρεώθηκε +TimeBilled=Χρόνος που χρεώθηκε Tasks=Εργασίες Task=Εργασία TaskDateStart=Ημερομηνία έναρξης εργασιών @@ -67,8 +70,8 @@ TaskDateEnd=Ημερομηνία λήξης εργασιών TaskDescription=Περιγραφή των εργασιών NewTask=Νέα Εργασία AddTask=Δημιουργία εργασίας -AddTimeSpent=Δημιουργήστε χρόνο που δαπανάται -AddHereTimeSpentForDay=Προσθέστε εδώ χρόνο που δαπανάται για αυτήν την ημέρα / εργασία +AddTimeSpent=Δημιουργήστε χρόνο που δαπανήθηκε +AddHereTimeSpentForDay=Προσθέστε εδώ χρόνο που δαπανήθηκε για αυτήν την ημέρα / εργασία AddHereTimeSpentForWeek=Προσθέστε εδώ χρόνο που δαπανάται για αυτήν την εβδομάδα / εργασία Activity=Δραστηριότητα Activities=Εργασίες/Δραστηριότητες @@ -104,7 +107,7 @@ ListDonationsAssociatedProject=Λίστα δωρεών που σχετίζοντ ListVariousPaymentsAssociatedProject=Λίστα διαφόρων πληρωμών που σχετίζονται με το έργο ListSalariesAssociatedProject=Λίστα πληρωμών μισθών που σχετίζονται με το σχέδιο ListActionsAssociatedProject=Λίστα ενεργειών που σχετίζονται με το έργο -ListMOAssociatedProject=Λίστα παραγγελιών κατασκευής που σχετίζονται με το έργο +ListMOAssociatedProject=Λίστα παραγγελιών παραγωγής που σχετίζονται με το έργο ListTaskTimeUserProject=Λίστα χρόνου που καταναλώθηκε σε καθήκοντα του έργου ListTaskTimeForTask=Λίστα χρόνου που καταναλώθηκε στην εργασία ActivityOnProjectToday=Δραστηριότητα στο έργο σήμερα @@ -112,17 +115,18 @@ ActivityOnProjectYesterday=Δραστηριότητα στο έργο χθες ActivityOnProjectThisWeek=Δραστηριότητα στο έργο αυτή την εβδομάδα ActivityOnProjectThisMonth=Δραστηριότητα στο έργο αυτό το μήνα ActivityOnProjectThisYear=Δραστηριότητα στο έργο φέτος -ChildOfProjectTask=Παιδί του έργου / εργασίας -ChildOfTask=Παιδί της αποστολής -TaskHasChild=Η εργασία έχει παιδί +ChildOfProjectTask=Θυγατρικό έργο/εργασία +ChildOfTask=δευτερεύουσα εργασία +TaskHasChild=Η εργασία έχει υποεργασία NotOwnerOfProject=Δεν είστε υπεύθυνος αυτού του ιδιωτικού έργου -AffectedTo=Κατανέμονται σε +AffectedTo=Κατανεμήθηκε σε CantRemoveProject=Το έργο δεν μπορεί να διαγραφεί καθώς συνδέεται με κάποιο άλλο αντικείμενο (τιμολόγιο, εντολές ή αλλο). Δείτε την καρτέλα '%s'. ValidateProject=Επικύρωση έργου ConfirmValidateProject=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτό το έργο; CloseAProject=Κλείσιμο έργου ConfirmCloseAProject=Είστε σίγουροι ότι θέλετε να κλείσετε αυτό το έργο; -AlsoCloseAProject=Επίσης κλείστε το έργο (διατηρήστε το ανοιχτό εάν εξακολουθείτε να χρειάζεστε να ακολουθείτε εργασίες παραγωγής σε αυτό) +AlsoCloseAProject=Επίσης κλείσε το έργο +AlsoCloseAProjectTooltip=Αφήστε το ανοιχτό εάν χρειάζεται να παρακολουθήσετε τις εργασίες παραγωγής σε αυτό ReOpenAProject=Άνοιγμα έργου ConfirmReOpenAProject=Είστε σίγουροι ότι θέλετε να ανοίξετε ξανά αυτό το έργο; ProjectContact=Επαφές έργου @@ -130,26 +134,26 @@ TaskContact=Επαφές εργασιών ActionsOnProject=Ενέργειες για το έργο YouAreNotContactOfProject=Δεν είστε επαφή αυτού του ιδιωτικού έργου UserIsNotContactOfProject=Ο χρήστης δεν είναι επαφή αυτού του ιδιωτικού έργου -DeleteATimeSpent=Διαγράψτε το χρόνο που δαπανάται -ConfirmDeleteATimeSpent=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον χρόνο; -DoNotShowMyTasksOnly=Δείτε επίσης τα καθήκοντα που δεν ανατέθηκαν σε μένα +DeleteATimeSpent=Διαγραφή χρόνου που δαπανήθηκε +ConfirmDeleteATimeSpent=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον χρόνο που δαπανήθηκε; +DoNotShowMyTasksOnly=Δείτε επίσης καθήκοντα που δεν ανατέθηκαν σε μένα ShowMyTasksOnly=Δείτε τα καθήκοντα που σας έχουν ανατεθεί TaskRessourceLinks=Επαφές της εργασίας ProjectsDedicatedToThisThirdParty=Έργα που αφορούν αυτό το τρίτο μέρος NoTasks=Δεν υπάρχουν εργασίες για αυτό το έργο LinkedToAnotherCompany=Συνδέεται με άλλο τρίτο μέρος TaskIsNotAssignedToUser=Η εργασία δεν έχει ανατεθεί στον χρήστη. Χρησιμοποιήστε το κουμπί ' %s ' για να αναθέσετε την εργασία τώρα. -ErrorTimeSpentIsEmpty=Χρόνος που δαπανάται είναι άδειο +ErrorTimeSpentIsEmpty=Ο χρόνος που δαπανήθηκε είναι κενός TimeRecordingRestrictedToNMonthsBack=Η καταγραφή χρόνου περιορίζεται σε %s μήνες πίσω -ThisWillAlsoRemoveTasks=Αυτή η ενέργεια θα διαγράψει επίσης όλα τα καθήκοντα του έργου (%s καθηκόντων προς το παρόν) και όλες οι είσοδοι του χρόνου. -IfNeedToUseOtherObjectKeepEmpty=Εάν ορισμένα αντικείμενα (τιμολόγιο, προκειμένου, ...), που ανήκουν σε άλλο τρίτο μέρος, πρέπει να συνδέεται με το έργο να δημιουργήσει, διατηρήσει αυτό το κενό να έχει το έργο να είναι πολλαπλών τρίτους. -CloneTasks=Clone tasks -CloneContacts=Clone contacts -CloneNotes=Clone notes -CloneProjectFiles=Κλώνος έργου εντάχθηκαν αρχεία -CloneTaskFiles=Ο κλώνος εργασία (ες) εντάχθηκαν αρχεία (εάν εργασία (ες) που κλωνοποιήθηκε) -CloneMoveDate=Ενημέρωση έργου / εργασιών που χρονολογούνται από τώρα; -ConfirmCloneProject=Είστε σίγουροι ότι θα κλωνοποιήσετε αυτό το έργο; +ThisWillAlsoRemoveTasks=Αυτή η ενέργεια θα διαγράψει επίσης όλες τις εργασίες του έργου ( %s εργασίες αυτή τη στιγμή) και όλες τις εισροές του χρόνου που δαπανήθηκε. +IfNeedToUseOtherObjectKeepEmpty=Εάν ορισμένα αντικείμενα (τιμολόγιο, προκειμένου, ...), που ανήκουν σε άλλο τρίτο μέρος, πρέπει να συνδεθούν με το έργο προς δημιουργία, διατηρήστε αυτό κενό ώστε το έργο να είναι πολλαπλών τρίτων μερών. +CloneTasks=Αντιγραφή εργασιών +CloneContacts=Αντιγραφή επαφών +CloneNotes=Αντιγραφή σημειώσεων +CloneProjectFiles=Αντιγραφή αρχείων έργου +CloneTaskFiles=Αντιγραφή κοινών αρχείων εργασιών (εάν έχουν αντιγραφεί οι εργασίες) +CloneMoveDate=Ενημέρωση του έργου/των εργασιών από τώρα; +ConfirmCloneProject=Είστε σίγουροι ότι θέλετε να αντιγράψετε αυτό το έργο; ProjectReportDate=Αλλάξτε τις ημερομηνίες των εργασιών σύμφωνα με την ημερομηνία έναρξης του νέου έργου ErrorShiftTaskDate=Αδύνατη η αλλαγή της ημερομηνίας εργασίας σύμφωνα με την ημερομηνία έναρξης του νέου έργου ProjectsAndTasksLines=Έργα και εργασίες @@ -165,8 +169,8 @@ OpportunityProbability=Πιθανότητα προοπτικής OpportunityProbabilityShort=Πιθαν. προοπτικής OpportunityAmount=Ποσό προοπτικής OpportunityAmountShort=Ποσό προοπτικής -OpportunityWeightedAmount=Σταθμισμένο ποσό ευκαιρίας -OpportunityWeightedAmountShort=Σταθμ. ποσό ευκαιρίας +OpportunityWeightedAmount=Ποσό ευκαιρίας, σταθμισμένο με πιθανότητα +OpportunityWeightedAmountShort=Σταθμισμένο ποσό ευκαιρίας OpportunityAmountAverageShort=Μέσο ποσό προοπτικής OpportunityAmountWeigthedShort=Σταθμισμένο ποσό προοπτικής WonLostExcluded=Κερδισμένες/χαμένες εξαιρούνται @@ -175,8 +179,8 @@ TypeContact_project_internal_PROJECTLEADER=Επικεφαλής του έργο TypeContact_project_external_PROJECTLEADER=Επικεφαλής του έργου TypeContact_project_internal_PROJECTCONTRIBUTOR=Συνεισφέρων TypeContact_project_external_PROJECTCONTRIBUTOR=Συνεισφέρων -TypeContact_project_task_internal_TASKEXECUTIVE=Εκτελεστική ομάδα -TypeContact_project_task_external_TASKEXECUTIVE=Εκτελεστική ομάδα +TypeContact_project_task_internal_TASKEXECUTIVE=Υπεύθυνος εργασίας +TypeContact_project_task_external_TASKEXECUTIVE=Υπεύθυνος εργασίας TypeContact_project_task_internal_TASKCONTRIBUTOR=Συνεισφέρων TypeContact_project_task_external_TASKCONTRIBUTOR=Συνεισφέρων SelectElement=Επιλέξτε το στοιχείο @@ -194,35 +198,35 @@ MustBeValidatedToBeSigned=Το %s πρέπει πρώτα να επικυρωθ FirstAddRessourceToAllocateTime=Ορίστε έναν πόρο χρήστη ως επαφή του έργου για να διαθέσετε χρόνο InputPerDay=Εισαγωγή ανά ημέρα InputPerWeek=Εισαγωγή ανά εβδομάδα -InputPerMonth=Είσοδος / εισαγωγή ανά μήνα -InputDetail=Λεπτομέρειες εισόδου -TimeAlreadyRecorded=Αυτός είναι ο χρόνος που έχει ήδη εγγραφεί για αυτήν την εργασία / ημέρα και ο χρήστης %s +InputPerMonth=Εισαγωγή ανά μήνα +InputDetail=Λεπτομέρειες εισαγωγής +TimeAlreadyRecorded=Αυτός είναι ο χρόνος που δαπανήθηκε και ήδη καταγράφηκε για αυτήν την εργασία/ημέρα και χρήστη %s ProjectsWithThisUserAsContact=Έργα με αυτόν τον χρήστη ως επαφή ProjectsWithThisContact=Έργα με αυτήν την επαφή TasksWithThisUserAsContact=Εργασίες που έχουν ανατεθεί σε αυτόν τον χρήστη ResourceNotAssignedToProject=Δεν έχει ανατεθεί σε έργο ResourceNotAssignedToTheTask=Δεν έχει ανατεθεί στην εργασία NoUserAssignedToTheProject=Δεν έχουν εκχωρηθεί χρήστες σε αυτό το έργο -TimeSpentBy=Χρόνος που πέρασε +TimeSpentBy=Χρόνος που δαπανήθηκε από TasksAssignedTo=Οι εργασίες που έχουν ανατεθεί στο AssignTaskToMe=Ανάθεση εργασίας στον εαυτό μου AssignTaskToUser=Ανάθεση εργασία στο %s SelectTaskToAssign=Επιλέξτε εργασία για ανάθεση... AssignTask=Ανάθεση ProjectOverview=Επισκόπηση -ManageTasks=Χρησιμοποιήστε έργα για να παρακολουθήσετε εργασίες και / ή να αναφέρετε το χρόνο που ξοδεύετε (φύλλα εργασίας) +ManageTasks=Χρησιμοποιήστε έργα για να παρακολουθήσετε εργασίες και / ή να αναφέρετε το χρόνο που δαπανάται (φύλλα εργασίας) ManageOpportunitiesStatus=Χρησιμοποιήστε τα έργα για να παρακολουθήσετε τις προοπτικές/ευκαιρίες ProjectNbProjectByMonth=Αριθμός δημιουργηθέντων έργων ανά μήνα ProjectNbTaskByMonth=Αριθμός δημιουργημένων εργασιών ανά μήνα ProjectOppAmountOfProjectsByMonth=Ποσό προοπτικών ανά μήνα ProjectWeightedOppAmountOfProjectsByMonth=Σταθμισμένο ποσό προοπτικών ανά μήνα -ProjectOpenedProjectByOppStatus=Ανοιχτές προοπτικές έργων ανά κατάσταση προοπτικής +ProjectOpenedProjectByOppStatus=Άνοιγμα προοπτικής/έργου ανά κατάσταση προοπτικής ProjectsStatistics=Στατιστικά έργων ή προοπτικών TasksStatistics=Στατιστικά εργασιών των έργων ή των προοπτικών TaskAssignedToEnterTime=Η εργασία έχει εκχωρηθεί. Πρέπει να είναι δυνατή η εισαγωγή του χρόνου αυτού του έργου. IdTaskTime=Αναγνωριστικό χρόνου εργασίας YouCanCompleteRef=Εάν θέλετε να συμπληρώσετε την αναφορά με κάποιο επίθημα, συνιστάται να προσθέσετε έναν χαρακτήρα - για να το διαχωρίσετε, έτσι η αυτόματη αρίθμηση θα εξακολουθεί να λειτουργεί σωστά για τα επόμενα έργα. Για παράδειγμα %s-MYSUFFIX -OpenedProjectsByThirdparties=Ανοίξτε έργα από τρίτους +OpenedProjectsByThirdparties=Ανοιχτά έργα ανά τρίτο μέρος OnlyOpportunitiesShort=Μόνο προοπτικές OpenedOpportunitiesShort=Ανοιχτές προοπτικές NotOpenedOpportunitiesShort=Δεν είναι ανοιχτή προοπτική @@ -238,7 +242,7 @@ OppStatusPENDING=Εκκρεμεί OppStatusWON=Έκλεισε OppStatusLOST=Χάθηκε Budget=Προϋπολογισμός -AllowToLinkFromOtherCompany=Επιτρέψτε τη σύνδεση του έργου με άλλη εταιρεία

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

Υποστηριζόμενες τιμές:
- Κενό: Σύνδεση στοιχείων με οποιοδήποτε έργο της ίδιας εταιρείας (προεπιλογή)
-"all": Σύνδεση στοιχείων με οποιοδήποτε έργο οποιασδήποτε εταιρείας
- Μια λίστα αναγνωριστικών τρίτων μερών που χωρίζονται με κόμμα: Σύνδεση στοιχείων με οποιοδήποτε έργο των συγκεκριμένων τρίτων μερών (Παράδειγμα: 123,4795,53) LatestProjects=Τελευταία %s έργα LatestModifiedProjects=Τελευταία %s τροποποιημένα έργα OtherFilteredTasks=Άλλες φιλτραρισμένες εργασίες @@ -255,11 +259,12 @@ RecordsClosed=%s κλειστά έργα SendProjectRef=Πληροφορίες έργου %s ModuleSalaryToDefineHourlyRateMustBeEnabled=Η ενότητα "Μισθοί" πρέπει να είναι ενεργοποιημένη για να καθορίζει την ωριαία τιμή του εργαζόμενου ώστε να έχει αξιοποιηθεί ο χρόνος που δαπανάται NewTaskRefSuggested=Η αναφορά εργασίας χρησιμοποιείται ήδη, απαιτείται νέα αναφορά εργασίας -TimeSpentInvoiced=Χρόνος που δαπανήθηκε χρεώνεται -TimeSpentForIntervention=Ο χρόνος που δαπανάται -TimeSpentForInvoice=Ο χρόνος που δαπανάται +NumberOfTasksCloned=%s κλωνοποιημένες εργασίες +TimeSpentInvoiced=Τιμολογήθηκε ο χρόνος που δαπανήθηκε +TimeSpentForIntervention=Χρόνος που δαπανήθηκε +TimeSpentForInvoice=Ο χρόνος που δαπανήθηκε OneLinePerUser=Μια γραμμή ανά χρήστη -ServiceToUseOnLines=Service to use on lines +ServiceToUseOnLines=Υπηρεσία για χρήση σε γραμμές από προεπιλογή InvoiceGeneratedFromTimeSpent=Το τιμολόγιο %s δημιουργήθηκε από το χρόνο που αφιερώσατε στο έργο InterventionGeneratedFromTimeSpent=Η παρέμβαση %s έχει δημιουργηθεί από τον χρόνο που δαπανήθηκε στο έργο ProjectBillTimeDescription=Επιλέξτε στην περίπτωση που εισάγετε φύλλο κατανομής χρόνου για τα καθήκοντα του έργου και σχεδιάζετε να δημιουργήσετε τιμολόγιο(α) από το δελτίο χρόνου για να χρεώσετε τον πελάτη του έργου (μην το επιλέξετε αν σκοπεύετε να δημιουργήσετε τιμολόγιο που δεν βασίζεται σε καταγεγραμμένα φύλλα χρόνου). Σημείωση: Για να δημιουργήσετε τιμολόγιο, μεταβείτε στην καρτέλα 'Χρόνος που δαπανήθηκε' του έργου και επιλέξτε τις γραμμές που θα συμπεριληφθούν. @@ -268,29 +273,30 @@ ProjectFollowTasks=Ακολουθήστε τις εργασίες ή τον χρ Usage=Χρήση UsageOpportunity=Χρήση: Ευκαιρία UsageTasks=Χρήση: Εργασίες -UsageBillTimeShort=Χρήση: Χρόνος λογαριασμού +UsageBillTimeShort=Χρήση: τιμολόγηση χρόνου InvoiceToUse=Προσχέδιο τιμολογίου προς χρήση -InterToUse=Σχέδιο παρέμβασης προς χρήση +InterToUse=Προσχέδιο παρέμβασης προς χρήση NewInvoice=Νέο τιμολόγιο NewInter=Νέα παρέμβαση OneLinePerTask=Μια γραμμή ανά εργασία OneLinePerPeriod=Μία γραμμή ανά περίοδο OneLinePerTimeSpentLine=Ορισμός μίας γραμμής για κάθε χρονικό διάστημα που δαπανήθηκε AddDetailDateAndDuration=Με ημερομηνία και διάρκεια στην περιγραφή της γραμμής -RefTaskParent=Αναφ. Γονική εργασία +RefTaskParent=Αναφ. Γονικής εργασίας ProfitIsCalculatedWith=Το κέρδος υπολογίζεται χρησιμοποιώντας AddPersonToTask=Προσθήκη και στις εργασίες UsageOrganizeEvent=Χρήση: Οργάνωση εκδήλωσης -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Καταχώρηση του έργου ως ολοκληρωμένου όταν όλες οι εργασίες έχουν ολοκληρωθεί (100 %% πρόοδος) -PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Σημείωση: τα υπάρχοντα έργα με όλες τις εργασίες τους σε 100 %% πρόοδο δεν θα επηρεαστούν: θα χρειαστεί να τα κλείσετε χειροκίνητα. Η επιλογή αυτή επηρεάζει μόνο τα ανοιχτά έργα. +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Ταξινόμηση έργου ως κλειστό όταν όλες οι εργασίες έχουν ολοκληρωθεί (100 %% πρόοδος) +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Σημείωση: Αυτή η επιλογή επηρεάζει μόνο ανοιχτά έργα. Τα υπάρχοντα έργα με όλες τις εργασίες να έχουν ήδη οριστεί σε πρόοδο 100%% δεν θα επηρεαστούν: θα πρέπει να τα κλείσετε χειροκίνητα. SelectLinesOfTimeSpentToInvoice=Επιλέξτε τις γραμμές κατανάλωσης χρόνου που δεν έχουν τιμολογηθεί και έπειτα την μαζική εντολή "Δημιουργία τιμολογίου" για να τα τιμολογήσετε. ProjectTasksWithoutTimeSpent=Εργασίες έργου χωρίς χρόνο που έχει δαπανηθεί FormForNewLeadDesc=Σας ευχαριστούμε που συμπληρώσατε την ακόλουθη φόρμα επικοινωνίας. Μπορείτε επίσης να μας στείλετε απευθείας email στο %s. ProjectsHavingThisContact=Έργα που έχουν αυτή την επαφή StartDateCannotBeAfterEndDate=Η ημερομηνία λήξης δεν μπορεί να είναι πριν από την ημερομηνία έναρξης -ErrorPROJECTLEADERRoleMissingRestoreIt=Ο ρόλος "PROJECTLEADER" λείπει ή έχει απενεργοποιηθεί, επαναφέρετε στο λεξικό τύπων επαφών +ErrorPROJECTLEADERRoleMissingRestoreIt=Ο ρόλος "PROJECTLEADER" λείπει ή έχει απενεργοποιηθεί, επαναφέρετε το στο λεξικό τύπων επαφών LeadPublicFormDesc=Μπορείτε να ενεργοποιήσετε εδώ μια δημόσια σελίδα για να επιτρέψετε στους υποψήφιους πελάτες σας να κάνουν μια πρώτη επαφή μαζί σας από μια δημόσια ηλεκτρονική φόρμα EnablePublicLeadForm=Ενεργοποιήστε τη δημόσια φόρμα για επικοινωνία NewLeadbyWeb=Το μήνυμα ή το αίτημά σας έχει καταγραφεί. Θα απαντήσουμε ή θα επικοινωνήσουμε μαζί σας σύντομα. -NewLeadForm=Φόρμα νέας επικοινωνίας +NewLeadForm=Νέα φόρμα επικοινωνίας LeadFromPublicForm=Δυνητικός πελάτης από ηλεκτρονική δημόσια φόρμα +ExportAccountingReportButtonLabel=Λήψη αναφοράς diff --git a/htdocs/langs/el_GR/propal.lang b/htdocs/langs/el_GR/propal.lang index ea99998a3bc..0f438a2e7fb 100644 --- a/htdocs/langs/el_GR/propal.lang +++ b/htdocs/langs/el_GR/propal.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - propal -Proposals=Προσφορές -Proposal=Προσφορά +Proposals=Εμπορικές προσφορές +Proposal=Εμπορική προσφορά ProposalShort=Προσφορά -ProposalsDraft=Σχέδιο Προσφοράς -ProposalsOpened=Ανοικτές εμπορικές προτάσεις +ProposalsDraft=Προσχέδιο προσφοράς +ProposalsOpened=Ανοιχτές προσφορές CommercialProposal=Προσφορά -PdfCommercialProposalTitle=Πρόταση +PdfCommercialProposalTitle=Προσφορά ProposalCard=Καρτέλα Προσφοράς NewProp=Νέα Προσφορά NewPropal=Νέα Προσφορά @@ -13,101 +13,106 @@ Prospect=Προοπτική DeleteProp=Διαγραφή Προσφοράς ValidateProp=Επικύρωση Προσφοράς AddProp=Δημιουργία προσφοράς -ConfirmDeleteProp=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την εμπορική πρόταση; -ConfirmValidateProp=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτήν την εμπορική πρόταση με το όνομα %s ; -LastPropals=Τελευταίες προτάσεις %s -LastModifiedProposals=Τελευταίες τροποποιημένες προτάσεις %s +ConfirmDeleteProp=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την προσφορά; +ConfirmValidateProp=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν την προσφορά με το όνομα %s ; +LastPropals=Τελευταίες %s προσφορές +LastModifiedProposals=Τελευταίες %s τροποποιημένες προσφορές AllPropals=Όλες οι Προσφορές SearchAProposal=Εύρεση Προσφοράς -NoProposal=Δεν υπάρχει πρόταση -ProposalsStatistics=Στατιστικά Προσφοράς +NoProposal=Δεν υπάρχει προσφορά +ProposalsStatistics=Στατιστικά Προσφορών NumberOfProposalsByMonth=Αριθμός ανά μήνα -AmountOfProposalsByMonthHT=Ποσό ανά μήνα (εκτός φόρου) +AmountOfProposalsByMonthHT=Ποσό ανά μήνα (χωρίς Φ.Π.Α.) NbOfProposals=Αριθμός Προσφορών ShowPropal=Εμφάνιση Προσφοράς -PropalsDraft=Σχέδιο -PropalsOpened=Άνοιγμα +PropalsDraft=Προσχέδια +PropalsOpened=Ανοιχτές PropalStatusDraft=Προσχέδιο (χρειάζεται επικύρωση) PropalStatusValidated=Επικυρωμένη (η Προσφορά είναι ανοιχτή) -PropalStatusSigned=Υπογραφή (ανάγκες χρέωσης) -PropalStatusNotSigned=Δεν έχει υπογραφεί (κλειστό) -PropalStatusBilled=Χρεώνεται +PropalStatusSigned=Υπογεγραμμένη (χρειάζεται χρέωση) +PropalStatusNotSigned=Δεν έχει υπογραφεί (κλειστή) +PropalStatusBilled=Τιμολογήθηκε PropalStatusDraftShort=Προσχέδιο -PropalStatusValidatedShort=Επικυρωμένο (ανοιχτό) -PropalStatusClosedShort=Κλειστό -PropalStatusSignedShort=Υπογραφή +PropalStatusValidatedShort=Επικυρωμένη (ανοιχτή) +PropalStatusClosedShort=Κλειστή +PropalStatusSignedShort=Υπογεγραμμένη PropalStatusNotSignedShort=Δεν έχει υπογραφεί -PropalStatusBilledShort=Χρεωμένη +PropalStatusBilledShort=Τιμολογήθηκε PropalsToClose=Προσφορές προς κλείσιμο -PropalsToBill=Υπογεγραμμένες Προσφορές προς χρέωση -ListOfProposals=Κατάλογος Προσφορών -ActionsOnPropal=Εκδηλώσεις σχετικά με την Προσφορά -RefProposal=Εμπορική Προσφορά ref +PropalsToBill=Υπογεγραμμένες προσφορές προς τιμολόγηση +ListOfProposals=Λίστα Προσφορών +ActionsOnPropal=Ενέργειες στην Προσφορά +RefProposal=Αναφ. προσφοράς SendPropalByMail=Αποστολή Προσφοράς με e-mail DatePropal=Ημερομηνία της Προσφοράς -DateEndPropal=Ισχύς ημερομηνία λήξης +DateEndPropal=Ημερομηνία λήξης ισχύος ValidityDuration=Διάρκεια ισχύος -SetAcceptedRefused=Ορισμός αποδοχής/άρνησης +SetAcceptedRefused=Ορισμός αποδοχής/απόρριψης ErrorPropalNotFound=Η Προσφορά %s δεν βρέθηκε -AddToDraftProposals=Προσθήκη στο σχέδιο Προσφοράς -NoDraftProposals=Δεν υπάρχουν σχέδια Προσφορών +AddToDraftProposals=Προσθήκη στο προσχέδιο προσφοράς +NoDraftProposals=Δεν υπάρχουν προσχέδια προσφορών CopyPropalFrom=Δημιουργία Προσφοράς με την αντιγραφή υφιστάμενης Προσφοράς -CreateEmptyPropal=Δημιουργήστε άδεια εμπορική πρόταση ή από λίστα προϊόντων / υπηρεσιών -DefaultProposalDurationValidity=Προεπιλογή διάρκεια Προσφοράς ισχύος (σε ημέρες) -DefaultPuttingPricesUpToDate=Από προεπιλογή, ενημερώστε τις τιμές με τις τρέχουσες γνωστές τιμές κατά την κλωνοποίηση μιας πρότασης -UseCustomerContactAsPropalRecipientIfExist=Χρησιμοποιήστε τη διεύθυνση επαφής / διεύθυνσης με τον τύπο "Πρόταση επικοινωνίας μετά την επικοινωνία", αν ορίζεται αντί της διεύθυνσης τρίτων ως διεύθυνση παραλήπτη της πρότασης -ConfirmClonePropal=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε την εμπορική πρόταση %s ? -ConfirmReOpenProp=Είστε βέβαιοι ότι θέλετε να ανοίξετε την εμπορική πρόταση %s ? +CreateEmptyPropal=Δημιουργία κενής εμπορικής προσφοράς ή από λίστα προϊόντων / υπηρεσιών +DefaultProposalDurationValidity=Προεπιλεγμένη διάρκεια ισχύος της εμπορικής προσφοράς (σε ημέρες) +DefaultPuttingPricesUpToDate=Από προεπιλογή, ενημέρωση των τιμων με τις τρέχουσες γνωστές τιμές κατά την αντιγραφή μιας προσφορας +UseCustomerContactAsPropalRecipientIfExist=Χρησιμοποιήστε επαφή/διεύθυνση του τύπου «Επαφή προσφοράς» εάν ορίζεται αντί για τη διεύθυνση τρίτου μέρους ως διεύθυνση παραλήπτη προσφοράς +ConfirmClonePropal=Είστε σίγουροι ότι θέλετε να αντιγράψετε την εμπορική προσφορά %s ? +ConfirmReOpenProp=Είστε σίγουροι ότι θέλετε να ανοίξετε ξανά την εμπορική προσφορά %s ? ProposalsAndProposalsLines=Προσφορές και γραμμές ProposalLine=Γραμμή Προσφοράς ProposalLines=Γραμμές προσφοράς -AvailabilityPeriod=Καθυστέρηση Διαθεσιμότητα -SetAvailability=Ορισμός καθυστέρησης διαθεσιμότητα +AvailabilityPeriod=Καθυστέρηση διαθεσιμότητας +SetAvailability=Ορισμός καθυστέρησης διαθεσιμότητας AfterOrder=μετά την παραγγελία OtherProposals=Άλλες Προσφορές + ##### Availability ##### AvailabilityTypeAV_NOW=Άμεση AvailabilityTypeAV_1W=1 εβδομάδα AvailabilityTypeAV_2W=2 εβδομάδες AvailabilityTypeAV_3W=3 εβδομάδες -AvailabilityTypeAV_1M=1 μήνα -##### Types de contacts ##### -TypeContact_propal_internal_SALESREPFOLL=Εκπρόσωπος που παρακολουθεί την Προσφορά -TypeContact_propal_external_BILLING=Πελάτης επαφή τιμολόγιο -TypeContact_propal_external_CUSTOMER=Πελάτης επαφή που παρακολουθεί την Προσφορά -TypeContact_propal_external_SHIPPING=Επικοινωνία με τον πελάτη για παράδοση +AvailabilityTypeAV_1M=1 μήνας + +##### Types ofe contacts ##### +TypeContact_propal_internal_SALESREPFOLL=Εκπρόσωπος επικοινωνίας μετά την προσφορά +TypeContact_propal_external_BILLING=Επαφή λογιστηρίου πελάτη +TypeContact_propal_external_CUSTOMER=Επαφή επικοινωνίας πελάτη μετά την προσφορά +TypeContact_propal_external_SHIPPING=Επαφή επικοινωνίας πελάτη για παράδοση + # Document models -DocModelAzurDescription=Ένα πλήρες πρότυπο πρότυπο (παλιά εφαρμογή του Cyan πρότυπο) -DocModelCyanDescription=Ένα πλήρες μοντέλο προτάσεων -DefaultModelPropalCreate=Δημιουργία προεπιλεγμένων μοντέλων -DefaultModelPropalToBill=Προεπιλεγμένο πρότυπο όταν κλείνει μια Προσφορά (να τιμολογηθεί) -DefaultModelPropalClosed=Προεπιλεγμένο πρότυπο όταν κλείνει μια Προσφορά (ατιμολόγητη) -ProposalCustomerSignature=Γραπτή αποδοχή, σφραγίδα εταιρείας, ημερομηνία και υπογραφή -ProposalsStatisticsSuppliers=Στατιστικά στοιχεία για τις προτάσεις προμηθευτών -CaseFollowedBy=Περίπτωση που ακολουθείται -SignedOnly=Μόνο υπογεγραμμένη -NoSign=Ορισμός ως μη υπογεγραμμένη -NoSigned=ορισμός ως μη υπογεγραμμένη CantBeNoSign=δεν μπορεί να οριστεί ως μη υπογεγραμμένη +CaseFollowedBy=Περίπτωση που ακολουθείται από ConfirmMassNoSignature=Επιβεβαίωση μαζικού ορισμού ως Μη υπογεγραμμένη ConfirmMassNoSignatureQuestion=Είστε σίγουροι ότι θέλετε να ορίσετε ως μη υπογεγραμμένες τις επιλεγμένες εγγραφές; -IsNotADraft=δεν είναι προσχέδιο -PassedInOpenStatus=έχει επικυρωθεί -Sign=Υπογραφή -Signed=υπογεγραμμένη -ConfirmMassValidation=Επιβεβαίωση μαζικής επικύρωσης ConfirmMassSignature=Επιβεβαίωση μαζικής υπογραφής +ConfirmMassSignatureQuestion=Είστε σίγουροι ότι θέλετε να υπογράψετε τις επιλεγμένες εγγραφές; +ConfirmMassValidation=Επιβεβαίωση μαζικής επικύρωσης ConfirmMassValidationQuestion=Είστε σίγουροι ότι θέλετε να επικυρώσετε τις επιλεγμένες εγγραφές; -ConfirmMassSignatureQuestion=Είστε βέβαιοι ότι θέλετε να υπογράψετε τις επιλεγμένες εγγραφές; -IdProposal=Αναγνωριστικό προσφοράς +ConfirmRefusePropal=Είστε σίγουροι ότι θέλετε να απορρίψετε αυτήν την εμπορική προσφορά; +ContractSigned=Υπογεγραμμένη σύμβαση +DefaultModelPropalClosed=Προεπιλεγμένο πρότυπο κατά το κλείσιμο μιας προσφοράς (χωρίς τιμολόγηση) +DefaultModelPropalCreate=Δημιουργία προεπιλεγμένου προτύπου +DefaultModelPropalToBill=Προεπιλεγμένο πρότυπο κατά το κλείσιμο μιας προσφοράς (προς τιμολόγηση) +DocModelAzurDescription=Ένα πλήρες πρότυπο προσφορών (παλιά υλοποίηση του προτύπου Cyan) +DocModelCyanDescription=Ένα πλήρες υπόδειγμα προσφορών +FichinterSigned=Η παρέμβαση υπεγράφη IdProduct=Αναγνωριστικό προϊόντος -LineBuyPriceHT=Αγορά Τιμή Ποσό χωρίς φόρο για γραμμή -SignPropal=Αποδοχή προσφοράς +IdProposal=Αναγνωριστικό προσφοράς +IsNotADraft=δεν είναι προσχέδιο +LineBuyPriceHT=Ποσό Αγοράς χωρίς Φ.Π.Α. για γραμμή +NoSign=Απορρίφθηκε +NoSigned=ορισμός ως μη υπογεγραμμένη +PassedInOpenStatus=έχει επικυρωθεί +PropalAlreadyRefused=Η προσφορά έχει ήδη απορριφθεί +PropalAlreadySigned=Η πρόσφορα ειναι ήδη αποδεκτή +PropalRefused=Η προσφορά απορρίφθηκε +PropalSigned=Πρόσφορα αποδεκτή +ProposalCustomerSignature=Για αποδοχή: σφραγίδα εταιρείας, ημερομηνία και υπογραφή +ProposalsStatisticsSuppliers=Στατιστικά στοιχεία προσφορών προμηθευτών RefusePropal=Απόρριψη προσφοράς Sign=Υπογραφή -NoSign=Ορισμός ως μη υπογεγραμμένη -PropalAlreadySigned=Η πρόσφορα ειναι ήδη αποδεκτή -PropalAlreadyRefused=Η προσφορά έχει ήδη απορριφθεί -PropalSigned=Πρόσφορα αποδεκτή -PropalRefused=Η προσφορά απορρίφθηκε -ConfirmRefusePropal=Είστε βέβαιοι ότι θέλετε να αρνηθείτε αυτήν την εμπορική πρόταση; +SignContract=Υπογραφή σύμβασης +SignFichinter=Υπογραφή παρέμβασης +SignPropal=Αποδοχή προσφοράς +Signed=υπογεγραμμένη +SignedOnly=Μόνο υπογεγραμμένη diff --git a/htdocs/langs/el_GR/receiptprinter.lang b/htdocs/langs/el_GR/receiptprinter.lang index 298e9384da5..b1853399ae1 100644 --- a/htdocs/langs/el_GR/receiptprinter.lang +++ b/htdocs/langs/el_GR/receiptprinter.lang @@ -1,60 +1,60 @@ # Dolibarr language file - Source file is en_US - receiptprinter -ReceiptPrinterSetup=Ρύθμιση της μονάδας ReceiptPrinter +ReceiptPrinterSetup=Ρύθμιση της ενότητας ΕκτυπωτήςΑποδείξεων PrinterAdded=Ο εκτυπωτής %s προστέθηκε PrinterUpdated=Ο εκτυπωτής %s ενημερώθηκε -PrinterDeleted=Ο εκτυπωτής %s διαγράφτηκε -TestSentToPrinter=Δοκιμή αποστολής στον εκτυπωτή %s -ReceiptPrinter=Εκτυπωτές παραλαβής -ReceiptPrinterDesc=Ρύθμιση εκτυπωτών παραλαβής +PrinterDeleted=Ο εκτυπωτής %s διαγράφηκε +TestSentToPrinter=Δοκιμαστική αποστολή στον εκτυπωτή %s +ReceiptPrinter=Εκτυπωτές αποδείξεων +ReceiptPrinterDesc=Ρύθμιση εκτυπωτών αποδείξεων ReceiptPrinterTemplateDesc=Ρύθμιση προτύπων -ReceiptPrinterTypeDesc=Παράδειγμα πιθανών τιμών για το πεδίο "Παράμετροι" ανάλογα με τον τύπο του προγράμματος οδήγησης -ReceiptPrinterProfileDesc=Περιγραφή του προφίλ εκτυπωτή παραλαβής +ReceiptPrinterTypeDesc=Παράδειγμα πιθανών τιμών για το πεδίο "Παράμετροι" ανάλογα με τον τύπο του προγράμματος οδήγησης(driver) +ReceiptPrinterProfileDesc=Περιγραφή του προφίλ του εκτυπωτή αποδείξεων ListPrinters=Λίστα εκτυπωτών. -SetupReceiptTemplate=Εγκατάσταση πρώτυπου -CONNECTOR_DUMMY=Εκτυπωτής Dummy +SetupReceiptTemplate=Ρύθμιση προτύπου +CONNECTOR_DUMMY=Εικονικός εκτυπωτής CONNECTOR_NETWORK_PRINT=Δικτυακός εκτυπωτής CONNECTOR_FILE_PRINT=Τοπικός εκτυπωτής CONNECTOR_WINDOWS_PRINT=Τοπικός εκτυπωτής Windows -CONNECTOR_CUPS_PRINT=Εκτυπωτής ποτηριών +CONNECTOR_CUPS_PRINT=Εκτυπωτής Cups CONNECTOR_DUMMY_HELP=Εικονικός εκτυπωτής για ελέγχους, δεν κάνει τίποτα CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x:9100 CONNECTOR_FILE_PRINT_HELP=/dev/usb/lp0, /dev/usb/lp1 -CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb: // FooUser: μυστικό @ computername / workgroup / Εκτυπωτής παραλαβής +CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:secret@computername/workgroup/Receipt Printer CONNECTOR_CUPS_PRINT_HELP=Όνομα εκτυπωτή CUPS, παράδειγμα: HPRT_TP805L PROFILE_DEFAULT=Προεπιλεγμένο προφίλ PROFILE_SIMPLE=Απλό προφίλ -PROFILE_EPOSTEP=Epos Προφίλ Tep +PROFILE_EPOSTEP=Προφίλ Epos Tep PROFILE_P822D=Προφίλ P822D -PROFILE_STAR=Προφίλ Αστέρων -PROFILE_DEFAULT_HELP=Προεπιλεγμένο προφίλ κατάλληλο για εκτυπωτές της Epson +PROFILE_STAR=Προφίλ Star +PROFILE_DEFAULT_HELP=Προεπιλεγμένο προφίλ κατάλληλο για εκτυπωτές Epson PROFILE_SIMPLE_HELP=Απλό προφίλ χωρίς γραφικά -PROFILE_EPOSTEP_HELP=Epos Προφίλ Tep -PROFILE_P822D_HELP=P822D Προφίλ χωρίς γραφικά -PROFILE_STAR_HELP=Προφίλ Αστέρων +PROFILE_EPOSTEP_HELP=Προφίλ Epos Tep +PROFILE_P822D_HELP=Προφίλ P822D χωρίς γραφικά +PROFILE_STAR_HELP=Προφίλ Star DOL_LINE_FEED=Παράλειψη γραμμής DOL_ALIGN_LEFT=Αριστερή στοίχιση κειμένου DOL_ALIGN_CENTER=Στοίχιση κειμένου στο κέντρο -DOL_ALIGN_RIGHT=Στοίχιση κειμένου δεξιά -DOL_USE_FONT_A=Χρησιμοποίηση γραμματοσειράς Α στον εκτυπωτή -DOL_USE_FONT_B=Χρησιμοποίηση γραμματοσειράς Β στον εκτυπωτή -DOL_USE_FONT_C=Χρησιμοποίηση γραμματοσειράς Γ στον εκτυπωτή +DOL_ALIGN_RIGHT=Δεξιά στοίχιση κειμένου +DOL_USE_FONT_A=Χρήση της γραμματοσειράς Α του εκτυπωτή +DOL_USE_FONT_B=Χρήση της γραμματοσειράς Β του εκτυπωτή +DOL_USE_FONT_C=Χρήση της γραμματοσειράς C του εκτυπωτή DOL_PRINT_BARCODE=Εκτύπωση barcode -DOL_PRINT_BARCODE_CUSTOMER_ID=Εκτυπώστε αναγνωριστικό πελάτη γραμμωτού κώδικα -DOL_CUT_PAPER_FULL=Κόψτε το εισιτήριο εντελώς -DOL_CUT_PAPER_PARTIAL=Κόψτε το εισιτήριο εν μέρει -DOL_OPEN_DRAWER=Ανοίξτε το συρτάρι -DOL_ACTIVATE_BUZZER=Ενεργοποιήστε το βομβητή -DOL_PRINT_QRCODE=Εκτύπωση QR +DOL_PRINT_BARCODE_CUSTOMER_ID=Εκτύπωση barcode αναγνωριστικού πελάτη +DOL_CUT_PAPER_FULL=Κοπή απόδειξης +DOL_CUT_PAPER_PARTIAL=Μερική κοπή απόδειξης +DOL_OPEN_DRAWER=Άνοιγμα συρταριού μετρητών +DOL_ACTIVATE_BUZZER=Ενεργοποίηση βομβητή +DOL_PRINT_QRCODE=Εκτύπωση κωδικού QR DOL_PRINT_LOGO=Εκτύπωση λογότυπου της εταιρείας μου -DOL_PRINT_LOGO_OLD=Εκτύπωση λογότυπο της εταιρείας μου (παλιούς εκτυπωτές) +DOL_PRINT_LOGO_OLD=Εκτύπωση λογότυπου της εταιρείας μου (παλιοί εκτυπωτές) DOL_BOLD=Έντονη γραφή -DOL_BOLD_DISABLED=Απενεργοποιήση της έντονης γραφής -DOL_DOUBLE_HEIGHT=Διπλό ύψος -DOL_DOUBLE_WIDTH=Διπλό μέγεθος πλάτους +DOL_BOLD_DISABLED=Απενεργοποίηση της έντονης γραφής +DOL_DOUBLE_HEIGHT=Μέγεθος διπλού ύψους +DOL_DOUBLE_WIDTH=Μέγεθος διπλού πλάτους DOL_DEFAULT_HEIGHT_WIDTH=Προεπιλεγμένο μέγεθος ύψους και πλάτους DOL_UNDERLINE=Ενεργοποίηση υπογράμμισης -DOL_UNDERLINE_DISABLED=Απενεργοποιήση υπογράμμισης -DOL_BEEP=Ήχος μπιπ +DOL_UNDERLINE_DISABLED=Απενεργοποίηση υπογράμμισης +DOL_BEEP=Ήχος beep DOL_BEEP_ALTERNATIVE=Ήχος beep (εναλλακτική λειτουργία) DOL_PRINT_CURR_DATE=Εκτύπωση τρέχουσας ημερομηνίας/ώρας DOL_PRINT_TEXT=Εκτύπωση κειμένου @@ -70,15 +70,15 @@ InvoiceRef=Κωδ. τιμολογίου DOL_PRINT_OBJECT_LINES=Γραμμές τιμολογίου DOL_VALUE_CUSTOMER_FIRSTNAME=Όνομα πελάτη DOL_VALUE_CUSTOMER_LASTNAME=Επώνυμο πελάτη -DOL_VALUE_CUSTOMER_MAIL=Αλληλογραφία πελάτη +DOL_VALUE_CUSTOMER_MAIL=Email πελάτη DOL_VALUE_CUSTOMER_PHONE=Τηλέφωνο πελάτη -DOL_VALUE_CUSTOMER_MOBILE=Πελάτης κινητό -DOL_VALUE_CUSTOMER_SKYPE=Πελάτης Skype -DOL_VALUE_CUSTOMER_TAX_NUMBER=Αριθμός φόρου πελάτη +DOL_VALUE_CUSTOMER_MOBILE=Κινητό τηλέφωνο πελάτη +DOL_VALUE_CUSTOMER_SKYPE=Skype Πελάτη +DOL_VALUE_CUSTOMER_TAX_NUMBER=Α.Φ.Μ. πελάτη DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Υπόλοιπο λογαριασμού πελάτη -DOL_VALUE_MYSOC_NAME=Το όνομα της εταιρίας σου -VendorLastname=Επώνυμο πωλητή -VendorFirstname=Όνομα πωλητή -VendorEmail=Email πωλητή -DOL_VALUE_CUSTOMER_POINTS=Βαθμοί πελατών -DOL_VALUE_OBJECT_POINTS=Σημεία αντικειμένου +DOL_VALUE_MYSOC_NAME=Το όνομα της εταιρίας σας +VendorLastname=Επώνυμο προμηθευτή +VendorFirstname=Όνομα προμηθευτή +VendorEmail=Email προμηθευτή +DOL_VALUE_CUSTOMER_POINTS=Πόντοι πελατών +DOL_VALUE_OBJECT_POINTS=Πόντοι αντικειμένου diff --git a/htdocs/langs/el_GR/receptions.lang b/htdocs/langs/el_GR/receptions.lang index 62ac251faf0..b844a24afb2 100644 --- a/htdocs/langs/el_GR/receptions.lang +++ b/htdocs/langs/el_GR/receptions.lang @@ -32,6 +32,7 @@ StatusReceptionDraftShort=Προσχέδιο StatusReceptionValidatedShort=Επικυρώθηκε StatusReceptionProcessedShort=Διενεργήθηκε ReceptionSheet=Κατάσταση παραλαβής +ValidateReception=Επικύρωση παραλαβής ConfirmDeleteReception=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την παραλαβή; ConfirmValidateReception=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτή την παραλαβή με αναφορά %s ; ConfirmCancelReception=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτή την παραλαβή; @@ -48,7 +49,6 @@ ReceptionsNumberingModules=Ενότητα αρίθμησης για παραλα ReceptionsReceiptModel=Πρότυπα εγγράφων για παραλαβές NoMorePredefinedProductToDispatch=Δεν υπάρχουν άλλα προκαθορισμένα προϊόντα για αποστολή ReceptionExist=Υπάρχει ήδη μια παραλαβή -ByingPrice=Τιμή αγοράς ReceptionBackToDraftInDolibarr=Επιστροφή σε προσχέδιο της παραλαβής %s ReceptionClassifyClosedInDolibarr=Η παραλαβή %s ταξινομήθηκε ως Κλειστή ReceptionUnClassifyCloseddInDolibarr=Άνοιγμα ξανά της παραλαβής %s diff --git a/htdocs/langs/el_GR/recruitment.lang b/htdocs/langs/el_GR/recruitment.lang index 7beef9ffe88..bdd6b57ced1 100644 --- a/htdocs/langs/el_GR/recruitment.lang +++ b/htdocs/langs/el_GR/recruitment.lang @@ -27,7 +27,7 @@ ModuleRecruitmentDesc = Διαχειριστείτε και παρακολουθ # RecruitmentSetup = Ρύθμιση προσλήψεων Settings = Ρυθμίσεις -RecruitmentSetupPage = Εισαγάγετε εδώ τη ρύθμιση των κύριων επιλογών για τη μονάδα προσλήψεων +RecruitmentSetupPage = Εισαγάγετε εδώ τη ρύθμιση των κύριων επιλογών για την ενότητα προσλήψεων RecruitmentArea=Περιοχή προσλήψεων PublicInterfaceRecruitmentDesc=Οι δημόσιες σελίδες θέσεων εργασίας είναι δημόσιες διευθύνσεις URL για εμφάνιση και απάντηση σε ανοιχτές θέσεις εργασίας. Υπάρχει ένας διαφορετικός σύνδεσμος για κάθε ανοιχτή θέση εργασίας, που βρίσκεται σε κάθε εγγραφή εργασίας. EnablePublicRecruitmentPages=Ενεργοποίηση δημόσιων σελίδων ανοιχτών θέσεων εργασίας @@ -35,7 +35,7 @@ EnablePublicRecruitmentPages=Ενεργοποίηση δημόσιων σελί # # About page # -About = Πληροφορίες +About = Σχετικά με RecruitmentAbout = Σχετικά με τις προσλήψεις RecruitmentAboutPage = Σελίδα σχετικά με τις Προσλήψεις NbOfEmployeesExpected=Προσδοκώμενο νούμερο εργαζομένων @@ -44,7 +44,7 @@ WorkPlace=Χώρος Εργασίας DateExpected=Αναμενόμενη ημερομηνία FutureManager=Μελλοντικός μάνατζερ ResponsibleOfRecruitement=Υπεύθυνος προσλήψεων -IfJobIsLocatedAtAPartner=Εάν η εργασία βρίσκεται σε μερος συνεργάτη +IfJobIsLocatedAtAPartner=Εάν η εργασία βρίσκεται σε χώρο συνεργάτη PositionToBeFilled=Θέση εργασίας PositionsToBeFilled=Θέσεις εργασίας ListOfPositionsToBeFilled=Κατάλογος θέσεων εργασίας @@ -57,15 +57,16 @@ EmailRecruiter=Εmail υπεύθυνου προσλήψεων ToUseAGenericEmail=Για να χρησιμοποιήσετε ένα γενικό email. Εάν δεν έχει οριστεί, θα χρησιμοποιηθεί το email του υπεύθυνου πρόσληψης NewCandidature=Νέα αίτηση ListOfCandidatures=Λίστα αιτήσεων -RequestedRemuneration=Ζητούμενη αμοιβή -ProposedRemuneration=Προτεινόμενη αμοιβή +Remuneration=Μισθός +RequestedRemuneration=Ζητούμενος μισθός +ProposedRemuneration=Προτεινόμενος μισθός ContractProposed=Προτεινόμενη σύμβαση ContractSigned=Υπογεγραμμένη σύμβαση ContractRefused=Η σύμβαση απορρίφθηκε RecruitmentCandidature=Αίτηση JobPositions=Θέσεις εργασίας RecruitmentCandidatures=Αιτήσεις -InterviewToDo=Συνέντευξη για να γίνει +InterviewToDo=Επαφές για παρακολούθηση AnswerCandidature=Απάντηση αίτησης YourCandidature=Η αίτηση σου YourCandidatureAnswerMessage=Σας ευχαριστούμε για την αίτηση σας.
... diff --git a/htdocs/langs/el_GR/salaries.lang b/htdocs/langs/el_GR/salaries.lang index 5e7cc1a9d6c..e01b40477b3 100644 --- a/htdocs/langs/el_GR/salaries.lang +++ b/htdocs/langs/el_GR/salaries.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Λογαριασμός λογιστικής που χρησιμοποιείται για τρίτους χρήστες -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Ο αποκλειστικός λογαριασμός λογιστικής που ορίζεται στην κάρτα χρήστη θα χρησιμοποιηθεί μόνο για τη λογιστική της Subledger. Αυτός θα χρησιμοποιηθεί για το γενικό βιβλίο και ως προεπιλεγμένη τιμή της λογιστικής Subledger εάν δεν έχει καθοριστεί ο λογαριασμός λογιστικής για τον χρήστη. -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Λογαριασμός λογαριασμού από προεπιλογή για πληρωμές μισθών +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Λογαριασμός (από το λογιστικό σχέδιο) που χρησιμοποιείται από προεπιλογή για τρίτους "χρήστες". +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Ο αποκλειστικός λογαριασμός λογιστικής που ορίζεται στην κάρτα χρήστη θα χρησιμοποιηθεί μόνο για τη λογιστική του Βοηθητικού καθολικού. Αυτός θα χρησιμοποιηθεί για το Γενικό Καθολικό και ως προεπιλεγμένη τιμή της λογιστικής του Βοηθητικού καθολικού εάν δεν έχει καθοριστεί ο λογαριασμός λογιστικής για τον χρήστη. +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Προεπιλεγμένος λογαριασμός λογιστικής για πληρωμές μισθών CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Από προεπιλογή, αφήστε κενή την επιλογή "Αυτόματη δημιουργία συνολικής πληρωμής" κατά τη δημιουργία ενός Μισθού Salary=Mισθός Salaries=Μισθοί NewSalary=Νέος μισθός AddSalary=Προσθήκη μισθού -NewSalaryPayment=Νέα καρτέλα μισθού +NewSalaryPayment=Καρτέλα νέου μισθού AddSalaryPayment=Προσθήκη πληρωμής μισθοδοσίας SalaryPayment=Μισθός SalariesPayments=Πληρωμές μισθών @@ -15,13 +15,13 @@ SalariesPaymentsOf=Πληρωμές μισθών του %s ShowSalaryPayment=Εμφάνιση μισθοδοσίας THM=Μέση ωριαία τιμή TJM=Μέση ημερήσια τιμή -CurrentSalary=Τρέχον μισθός -THMDescription=Αυτή η τιμή μπορεί να χρησιμοποιηθεί για τον υπολογισμό του κόστους του χρόνου που καταναλώνεται σε ένα έργο που εισήχθησαν από τους χρήστες, εάν χρησιμοποιείται το project module -TJMDescription=Αυτή η τιμή είναι προς ενημέρωση μόνο και δεν χρησιμοποιείται για υπολογισμό +CurrentSalary= Τρέχων μισθός +THMDescription=Αυτή η τιμή μπορεί να χρησιμοποιηθεί για τον υπολογισμό του κόστους του χρόνου που καταναλώνεται σε ένα έργο που εισήχθη από τους χρήστες, εάν χρησιμοποιείται η ενότητα project +TJMDescription=Αυτή η τιμή είναι προς το παρόν ενημερωτική μόνο και δεν χρησιμοποιείται για κανέναν υπολογισμό LastSalaries=Τελευταίοι %sμισθοί AllSalaries=Όλοι οι μισθοί SalariesStatistics=Στατιστικά στοιχεία μισθών SalariesAndPayments=Μισθοί και πληρωμές ConfirmDeleteSalaryPayment=Θέλετε να διαγράψετε αυτήν την πληρωμή μισθού; -FillFieldFirst=Συμπληρώστε το πεδίο υπαλλήλου πρώτα  +FillFieldFirst=Συμπληρώστε το πεδίο υπαλλήλου πρώτα UpdateAmountWithLastSalary=Καθορίστε το ποσό βάσει του τελευταίου μισθού diff --git a/htdocs/langs/el_GR/sms.lang b/htdocs/langs/el_GR/sms.lang index 21df53febec..d91cdbb6876 100644 --- a/htdocs/langs/el_GR/sms.lang +++ b/htdocs/langs/el_GR/sms.lang @@ -1,51 +1,51 @@ # Dolibarr language file - Source file is en_US - sms Sms=Sms -SmsSetup=Sms ρύθμιση -SmsDesc=Αυτή η σελίδα σας επιτρέπει να ορίσετε γενικές επιλογές σε SMS χαρακτηριστικά +SmsSetup=Ρύθμιση SMS +SmsDesc=Αυτή η σελίδα σάς επιτρέπει να ορίσετε καθολικές επιλογές στις λειτουργίες SMS SmsCard=SMS Κάρτα AllSms=Όλες οι καμπάνιες SMS -SmsTargets=Στόχοι -SmsRecipients=Στόχοι -SmsRecipient=Στόχος +SmsTargets=Παραλήπτες +SmsRecipients=Παραλήπτες +SmsRecipient=Παραλήπτης SmsTitle=Περιγραφή SmsFrom=Αποστολέας -SmsTo=Στόχος +SmsTo=Παραλήπτης SmsTopic=Θέμα του SMS SmsText=Μήνυμα SmsMessage=Μήνυμα SMS -ShowSms=Εμφάνιση Sms -ListOfSms=Λίστα καμπανιών SMS +ShowSms=Εμφάνιση SMS +ListOfSms=Λίστα με καμπάνιες SMS NewSms=Νέα καμπάνια SMS -EditSms=Επεξεργασία Sms +EditSms=Επεξεργασία SMS ResetSms=Νέα αποστολή -DeleteSms=Διαγραφή εκστρατείας Sms -DeleteASms=Αφαιρέστε μια εκστρατεία Sms -PreviewSms=Προεπισκόπηση Sms -PrepareSms=Ετοιμάστε Sms -CreateSms=Δημιουργία Sms -SmsResult=Αποτέλεσμα της αποστολής sms -TestSms=Δοκιμή Sms -ValidSms=Επικύρωση Sms -ApproveSms=Έγκριση Sms -SmsStatusDraft=Σχέδιο -SmsStatusValidated=Επικυρωμένη +DeleteSms=Διαγραφή καμπάνιας SMS +DeleteASms=Καταργήστε μια καμπάνια SMS +PreviewSms=Προεπισκόπηση SMS +PrepareSms=Προετοιμασία SMS +CreateSms=Δημιουργία SMS +SmsResult=Αποτέλεσμα αποστολής SMS +TestSms=Δοκιμή SMS +ValidSms=Επικύρωση SMS +ApproveSms=Έγκριση SMS +SmsStatusDraft=Προσχέδιο +SmsStatusValidated=Επικυρωμένο SmsStatusApproved=Εγκεκριμένο SmsStatusSent=Εστάλη SmsStatusSentPartialy=Μερικώς απεσταλμένα -SmsStatusSentCompletely=Εντελώς απεσταλμένα +SmsStatusSentCompletely=Επιτυχώς απεσταλμένα SmsStatusError=Σφάλμα -SmsStatusNotSent=Δεν αποστέλλεται -SmsSuccessfulySent=Έστειλε σωστά Sms (από %s να %s) -ErrorSmsRecipientIsEmpty=Ο αριθμός στόχου είναι άδειος -WarningNoSmsAdded=Κανένα νέο αριθμό τηλεφώνου για να προσθέσετε στη λίστα στόχων -ConfirmValidSms=Επιβεβαιώνετε την εγκυρότητα αυτής της καμπάνιας; -NbOfUniqueSms=Nb DOF μοναδικούς αριθμούς τηλεφώνου -NbOfSms=Nbre του phon αριθμούς +SmsStatusNotSent=Δεν εστάλη +SmsSuccessfulySent=Το SMS στάλθηκε σωστά (από %s σε %s) +ErrorSmsRecipientIsEmpty=Ο αριθμός στόχου είναι κενός +WarningNoSmsAdded=Κανένας νέος αριθμός τηλεφώνου για να προσθέσετε στη λίστα στόχων +ConfirmValidSms=Επιβεβαιώνετε την επικύρωση αυτής της καμπάνιας; +NbOfUniqueSms=Νούμερο μοναδικών τηλεφωνικών αριθμών +NbOfSms=Νούμερο Αριθμών τηλεφώνου ThisIsATestMessage=Αυτό είναι ένα δοκιμαστικό μήνυμα SendSms=Αποστολή SMS -SmsInfoCharRemain=Αρ. υπόλοιπων χαρακτήρων -SmsInfoNumero= (Μορφή διεθνούς δηλαδή: +308997017610) +SmsInfoCharRemain=Αριθμός χαρακτήρων που υπολείπονται +SmsInfoNumero= (διεθνής μορφή π.χ. .: +33899701761) DelayBeforeSending=Καθυστέρηση πριν από την αποστολή (λεπτά) -SmsNoPossibleSenderFound=Δεν υπάρχει αποστολέας. Ελέξτε τις ρυθμίσεις από τον πάροχο των SMS -SmsNoPossibleRecipientFound=Δεν υπάρχει στόχος. Ελέγξτε την εγκατάσταση του SMS του παροχέα σας. -DisableStopIfSupported=Disable STOP message (if supported) +SmsNoPossibleSenderFound=Δεν υπάρχει αποστολέας. Ελέγξτε τις ρυθμίσεις του παρόχου SMS +SmsNoPossibleRecipientFound=Δεν υπάρχει διαθέσιμος παραλήπτης. Ελέγξτε τις ρυθμίσεις του παρόχου SMS +DisableStopIfSupported=Απενεργοποίηση μηνύματος STOP (αν υποστηρίζεται) diff --git a/htdocs/langs/el_GR/stripe.lang b/htdocs/langs/el_GR/stripe.lang index 8cd53bcd79e..6e926b238b0 100644 --- a/htdocs/langs/el_GR/stripe.lang +++ b/htdocs/langs/el_GR/stripe.lang @@ -41,7 +41,8 @@ STRIPE_LIVE_WEBHOOK_KEY=Webhook live key ONLINE_PAYMENT_WAREHOUSE=Απόθεμα προς χρήση για μείωση αποθεμάτων όταν πραγματοποιείται η ηλεκτρονική πληρωμή
(TODO Όταν η επιλογή μείωσης αποθεμάτων γίνεται σε μια ενέργεια στο τιμολόγιο και η ηλεκτρονική πληρωμή δημιουργεί από μόνη της το τιμολόγιο;) StripeLiveEnabled=Η λειτουργία Stripe live είναι ενεργοποιημένη (διαφορετικά η λειτουργία test / sandbox) StripeImportPayment=Εισαγωγή πληρωμών Stripe -ExampleOfTestCreditCard=Παράδειγμα πιστωτικής κάρτας για δοκιμή: %s => έγκυρο, %s => σφάλμα CVC, %s => έληξε, %s => η χρέωση αποτυγχάνει +ExampleOfTestCreditCard=Παράδειγμα πιστωτικής κάρτας για δοκιμή SEPA: %s => έγκυρο, %s => σφάλμα CVC, %s => έληξε, %s => η χρέωση αποτυγχάνει +ExampleOfTestBankAcountForSEPA=Παράδειγμα BAN τραπεζικού λογαριασμού για δοκιμή πάγιας εντολής: %s StripeGateways=Stripe gateways OAUTH_STRIPE_TEST_ID=Το αναγνωριστικό πελάτη Stripe Connect (ca _...) OAUTH_STRIPE_LIVE_ID=Το αναγνωριστικό πελάτη Stripe Connect (ca _...) @@ -61,6 +62,7 @@ DeleteACard=Διαγραφή κάρτας ConfirmDeleteCard=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την πιστωτική ή χρεωστική κάρτα; CreateCustomerOnStripe=Δημιουργία πελάτη στο Stripe CreateCardOnStripe=Δημιουργία κάρτας στο Stripe +CreateBANOnStripe=Δημιουργία τράπεζας στο Stripe ShowInStripe=Εμφάνιση στο Stripe StripeUserAccountForActions=Λογαριασμός χρήστη που θα χρησιμοποιηθεί για την ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου ορισμένων ενεργειών Stripe (πληρωμές Stripe) StripePayoutList=Λίστα των πληρωμών Stripe @@ -69,4 +71,8 @@ ToOfferALinkForLiveWebhook=Σύνδεσμος για τη ρύθμιση του PaymentWillBeRecordedForNextPeriod=Η πληρωμή θα καταγραφεί για την επόμενη περίοδο. ClickHereToTryAgain=Κάντε κλικ εδώ για να δοκιμάσετε ξανά ... CreationOfPaymentModeMustBeDoneFromStripeInterface=Λόγω των κανόνων ισχυρού ελέγχου ταυτότητας πελατών, η δημιουργία κάρτας πρέπει να γίνει από την Stripe. Μπορείτε να κάνετε κλικ εδώ για να ενεργοποιήσετε την εγγραφή πελατών Stripe: %s -TERMINAL_LOCATION=Τοποθεσία (διεύθυνση) για τερματικά +STRIPE_CARD_PRESENT=Δώροκάρτα για τερματικά Stripe +TERMINAL_LOCATION=Τοποθεσία (διεύθυνση) για Stripe Terminals +RequestDirectDebitWithStripe=Άμεση Χρέωση με Stripe +STRIPE_SEPA_DIRECT_DEBIT=Ενεργοποιήστε τις πληρωμές άμεσης χρέωσης μέσω Stripe + diff --git a/htdocs/langs/el_GR/ticket.lang b/htdocs/langs/el_GR/ticket.lang index 46cca1c2e7e..399e7de949b 100644 --- a/htdocs/langs/el_GR/ticket.lang +++ b/htdocs/langs/el_GR/ticket.lang @@ -26,7 +26,9 @@ Permission56002=Τροποποίηση tickets Permission56003=Διαγραφή tickets Permission56004=Διαχείριση tickets Permission56005=Δείτε τα tickets όλων των τρίτων (δεν ισχύει για εξωτερικούς χρήστες, πάντα περιορίζονται στο τρίτο μέρος από το οποίο εξαρτώνται) +Permission56006=Εξαγωγή των tickets +Tickets=Tickets TicketDictType=Ticket - Τύποι TicketDictCategory=Ticket - Ομάδες TicketDictSeverity=Ticket - Κρισιμότητα @@ -52,20 +54,22 @@ MenuTicketMyAssign=Τα tickets μου MenuTicketMyAssignNonClosed=Τα ανοιχτά tickets μου MenuListNonClosed=Ανοιχτά tickets -TypeContact_ticket_internal_CONTRIBUTOR=Συνεισφέρων -TypeContact_ticket_internal_SUPPORTTEC=Χρήστης σε ανάθεση +TypeContact_ticket_internal_CONTRIBUTOR=Συνεργάτης +TypeContact_ticket_internal_SUPPORTTEC=Ανατεθειμένος χρήστης TypeContact_ticket_external_SUPPORTCLI=Επαφή πελάτη / παρακολούθηση συμβάντος -TypeContact_ticket_external_CONTRIBUTOR=Εξωτερικός συνεισφέρων +TypeContact_ticket_external_CONTRIBUTOR=Εξωτερικός συνεργάτης -OriginEmail=Αναφερόμενο Email +OriginEmail=Email πελάτη που άνοιξε το ticket Notify_TICKET_SENTBYMAIL=Στείλτε μήνυμα ticket μέσω email +ExportDataset_ticket_1=Tickets + # Status Read=Έχει αναγνωστεί Assigned=Έχει ανατεθεί InProgress=Σε εξέλιξη -NeedMoreInformation=Σε αναμονή feedback από τον δημιουργό -NeedMoreInformationShort=Σε αναμονή feedback +NeedMoreInformation=Σε αναμονή περισσότερων πληροφοριών από τον χρήστη που άνοιξε το ticket +NeedMoreInformationShort=Σε αναμονή περισσότερων πληροφοριών Answered=Απαντήθηκε Waiting=Σε αναμονή SolvedClosed=Επιλύθηκε @@ -83,12 +87,12 @@ MailToSendTicketMessage=Για να στείλετε email από το μήνυ # # Admin page # -TicketSetup=Ρύθμιση μονάδας ticket +TicketSetup=Ρύθμιση ενότητας ticket TicketSettings=Ρυθμίσεις TicketSetupPage= -TicketPublicAccess=Μια δημόσια διεπαφή που δεν απαιτεί αναγνώριση είναι διαθέσιμη στην παρακάτω διεύθυνση URL +TicketPublicAccess=Μια δημόσια διεπαφή χωρίς υποχρέωση σύνδεσης είναι διαθέσιμη στην παρακάτω διεύθυνση URL TicketSetupDictionaries=Ο τύπος του ticket, ο βαθμός σοβαρότητας και οι αναλυτικοί κωδικοί ρυθμίζονται από λεξικά -TicketParamModule=Ρύθμιση μεταβλητής μονάδας +TicketParamModule=Ρύθμιση μεταβλητών ενότητας TicketParamMail=Ρύθμιση email TicketEmailNotificationFrom=E-mail αποστολέα για ειδοποίηση σχετικά με τις απαντήσεις TicketEmailNotificationFromHelp=E-mail αποστολέα που θα χρησιμοποιηθεί για την αποστολή του email ειδοποίησης όταν μια απάντηση παρέχεται από την υποστήριξη. Για παράδειγμα noreply@example.com @@ -97,13 +101,13 @@ TicketEmailNotificationToHelp=Εάν υπάρχει, αυτή η διεύθυν TicketNewEmailBodyLabel=Μήνυμα κειμένου που αποστέλλεται μετά τη δημιουργία ενός ticket TicketNewEmailBodyHelp=Το κείμενο που καθορίζεται εδώ θα εισαχθεί στο μήνυμα ηλεκτρονικού ταχυδρομείου που επιβεβαιώνει τη δημιουργία νέου ticket από το δημόσιο περιβάλλον. Οι πληροφορίες σχετικά με τη διαβούλευση με το ticket προστίθενται αυτόματα. TicketParamPublicInterface=Ρύθμιση δημόσιας διεπαφής -TicketsEmailMustExist=Απαιτείται μια υπάρχουσα διεύθυνση email για να δημιουργήσετε ένα εισιτήριο +TicketsEmailMustExist=Απαιτείται μια υπάρχουσα διεύθυνση email για να δημιουργήσετε ένα ticket TicketsEmailMustExistHelp=Στη δημόσια διεπαφή, η διεύθυνση email θα πρέπει να έχει ήδη συμπληρωθεί στη βάση δεδομένων για να δημιουργηθεί ένα νέο ticket. TicketCreateThirdPartyWithContactIfNotExist=Ζητήστε όνομα και όνομα εταιρείας για άγνωστα email. TicketCreateThirdPartyWithContactIfNotExistHelp=Ελέγξτε εάν υπάρχει τρίτο μέρος ή επαφή για το email που καταχωρίσατε. Εάν όχι, ζητήστε ένα όνομα και ένα όνομα εταιρείας για να δημιουργήσετε ένα τρίτο μέρος με επαφή. PublicInterface=Δημόσια διεπαφή TicketUrlPublicInterfaceLabelAdmin=Εναλλακτική διεύθυνση URL για δημόσια διεπαφή -TicketUrlPublicInterfaceHelpAdmin=Είναι δυνατόν να ορίσετε ένα ψευδώνυμο στον διακομιστή ιστού και έτσι να διαθέσετε τη δημόσια διασύνδεση με μια άλλη διεύθυνση URL (ο διακομιστής πρέπει να ενεργεί ως διακομιστής μεσολάβησης σε αυτήν τη νέα διεύθυνση URL) +TicketUrlPublicInterfaceHelpAdmin=Είναι δυνατόν να ορίσετε ένα ψευδώνυμο(alias) στον διακομιστή ιστού και έτσι να διαθέσετε τη δημόσια διεπαφή με μια άλλη διεύθυνση URL (ο διακομιστής πρέπει να ενεργεί ως διακομιστής μεσολάβησης(proxy) σε αυτήν τη νέα διεύθυνση URL) TicketPublicInterfaceTextHomeLabelAdmin=Κείμενο καλωσορίσματος της δημόσιας διεπαφής TicketPublicInterfaceTextHome=Μπορείτε να δημιουργήσετε ένα ticket υποστήριξης ή να προβάλετε ένα υπάρχον από το αναγνωριστικό παρακολούθησης ticket. TicketPublicInterfaceTextHomeHelpAdmin=Το κείμενο που ορίζεται εδώ θα εμφανιστεί στην αρχική σελίδα της δημόσιας διεπαφής. @@ -112,14 +116,14 @@ TicketPublicInterfaceTopicHelp=Αυτό το κείμενο θα εμφανισ TicketPublicInterfaceTextHelpMessageLabelAdmin=Βοήθεια κειμένου στην καταχώρηση μηνύματος TicketPublicInterfaceTextHelpMessageHelpAdmin=Αυτό το κείμενο θα εμφανιστεί πάνω από την περιοχή εισαγωγής μηνυμάτων του χρήστη. ExtraFieldsTicket=Επιπλέον χαρακτηριστικά -TicketCkEditorEmailNotActivated=Ο επεξεργαστής HTML δεν είναι ενεργοποιημένος. Καταχωρίστε το περιεχόμενο FCKEDITOR_ENABLE_MAIL σε 1 για να το αποκτήσετε. -TicketsDisableEmail=Μην αποστέλλετε μηνύματα ηλεκτρονικού ταχυδρομείου για τη δημιουργία εισιτηρίων ή την εγγραφή μηνυμάτων -TicketsDisableEmailHelp=Από προεπιλογή, αποστέλλονται μηνύματα ηλεκτρονικού ταχυδρομείου όταν δημιουργούνται νέα εισιτήρια ή μηνύματα. Ενεργοποιήστε αυτήν την επιλογή για να απενεργοποιήσετε *όλες τις * ειδοποιήσεις ηλεκτρονικού ταχυδρομείου +TicketCkEditorEmailNotActivated=Ο επεξεργαστής HTML δεν είναι ενεργοποιημένος. Βάλτε το FCKEDITOR_ENABLE_MAIL σε 1 για να τον ενεργοποιήσετε +TicketsDisableEmail=Μην αποστέλλετε μηνύματα ηλεκτρονικού ταχυδρομείου για τη δημιουργία ticket ή την εγγραφή μηνυμάτων +TicketsDisableEmailHelp=Από προεπιλογή, αποστέλλονται μηνύματα ηλεκτρονικού ταχυδρομείου όταν δημιουργούνται νέα tickets ή μηνύματα. Ενεργοποιήστε αυτήν την επιλογή για να απενεργοποιήσετε *όλες τις * ειδοποιήσεις ηλεκτρονικού ταχυδρομείου TicketsLogEnableEmail=Ενεργοποίηση καταγραφής μέσω email TicketsLogEnableEmailHelp=Σε κάθε αλλαγή, θα σταλεί ένα μήνυμα ηλεκτρονικού ταχυδρομείου ** σε κάθε επαφή ** που σχετίζεται με το ticket. TicketParams=Παράμετροι TicketsShowModuleLogo=Εμφανίστε το λογότυπο της ενότητας στη δημόσια διεπαφή -TicketsShowModuleLogoHelp=Ενεργοποιήστε αυτήν την επιλογή για να αποκρύψετε τη λειτουργική μονάδα λογότυπου στις σελίδες της δημόσιας διασύνδεσης +TicketsShowModuleLogoHelp=Ενεργοποιήστε αυτήν την επιλογή για να αποκρύψετε την ενότητα λογότυπου στις σελίδες της δημόσιας διεπαφής TicketsShowCompanyLogo=Εμφανίστε το λογότυπο της εταιρείας στη δημόσια διεπαφή TicketsShowCompanyLogoHelp=Ενεργοποιήστε αυτήν την επιλογή για να αποκρύψετε το λογότυπο της κύριας εταιρείας στις σελίδες της δημόσιας διεπαφής TicketsEmailAlsoSendToMainAddress=Στείλτε επίσης μια ειδοποίηση στην κύρια διεύθυνση email @@ -130,16 +134,16 @@ TicketsActivatePublicInterface=Ενεργοποίηση δημόσιας διε TicketsActivatePublicInterfaceHelp=Η δημόσια διεπαφή επιτρέπει στους επισκέπτες να δημιουργούν tickets. TicketsAutoAssignTicket=Ορίστε αυτόματα τον χρήστη που δημιούργησε το ticket TicketsAutoAssignTicketHelp=Κατά τη δημιουργία ενός ticket, ο χρήστης μπορεί να αντιστοιχιστεί αυτόματα στο ticket. -TicketNumberingModules=Ενότητα αρίθμησης εισιτηρίων +TicketNumberingModules=Ενότητα αρίθμησης ticket TicketsModelModule=Πρότυπα εγγράφων για tickets TicketNotifyTiersAtCreation=Ειδοποιήστε το τρίτο μέρος κατά τη δημιουργία -TicketsDisableCustomerEmail=Πάντα να απενεργοποιείτε τα email όταν δημιουργείται ένα εισιτήριο από δημόσια διεπαφή +TicketsDisableCustomerEmail=Πάντα να απενεργοποιείτε τα email όταν δημιουργείται ένα ticket από δημόσια διεπαφή TicketsPublicNotificationNewMessage=Στείλτε email όταν ένα νέο μήνυμα/σχόλιο προστεθεί σε ένα ticket TicketsPublicNotificationNewMessageHelp=Στείλτε email όταν προστίθεται νέο μήνυμα από τη δημόσια διεπαφή (στον εκχωρημένο χρήστη ή το email ειδοποιήσεων προς (ενημέρωση) ή/και το email ειδοποιήσεων προς) TicketPublicNotificationNewMessageDefaultEmail=email ειδοποιήσεων προς (ενημέρωση) TicketPublicNotificationNewMessageDefaultEmailHelp=Στείλτε ένα μήνυμα email σε αυτήν τη διεύθυνση για ειδοποιήσεις κάθε νέου μηνύματος, εάν στο ticket δεν έχει εκχωρηθεί χρήστης ή εάν ο χρήστης δεν έχει κάποιο γνωστό email. TicketsAutoReadTicket=Αυτόματη επισήμανση του ticket ως αναγνωσμένου (όταν δημιουργείται από την υποστήριξη) -TicketsAutoReadTicketHelp=Αυτόματη επισήμανση του ticket ως αναγνωσμένου όταν έχει δημιουργηθεί από την υποστήριξη. Όταν το εισιτήριο δημιουργείται από τη δημόσια διεπαφή, το εισιτήριο παραμένει στην κατάσταση "Μη αναγνωσμένο". +TicketsAutoReadTicketHelp=Αυτόματη επισήμανση του ticket ως αναγνωσμένου όταν έχει δημιουργηθεί από την υποστήριξη. Όταν το ticket δημιουργείται από τη δημόσια διεπαφή, το ticket παραμένει στην κατάσταση "Μη αναγνωσμένο". TicketsDelayBeforeFirstAnswer=Ένα νέο ticket θα πρέπει να λάβει μια πρώτη απάντηση πριν από (σε ώρες): TicketsDelayBeforeFirstAnswerHelp=Εάν ένα νέο ticket δεν έχει λάβει απάντηση μετά από αυτό το χρονικό διάστημα (σε ώρες), θα εμφανιστεί ένα εικονίδιο ειδοποίησης σημαντικού γεγονότος στην προβολή λίστας. TicketsDelayBetweenAnswers=Ένα ticket που δεν έχει επιλυθεί δεν πρέπει να είναι ανενεργό κατά τη διάρκεια (ώρες): @@ -149,6 +153,8 @@ TicketsAutoNotifyCloseHelp=Κατά το κλείσιμο ενός ticket, θα TicketWrongContact=Η παρεχόμενη επαφή δεν αποτελεί μέρος των επαφών του τρέχοντος ticket. Το email δεν στάλθηκε. TicketChooseProductCategory=Κατηγορία προϊόντος για υποστήριξη ticket TicketChooseProductCategoryHelp=Επιλέξτε την κατηγορία προϊόντων υποστήριξης ticket Αυτό θα χρησιμοποιηθεί για την αυτόματη σύνδεση μιας σύμβασης με ένα ticket +TicketUseCaptchaCode=Χρησιμοποιήστε γραφικό κώδικα (CAPTCHA) όταν δημιουργείτε ένα ticket +TicketUseCaptchaCodeHelp=Προσθέτει επαλήθευση CAPTCHA κατά τη δημιουργία νέου ticket. # # Index & list page @@ -178,7 +184,7 @@ EditTicket=Επεξεργασία ticket TicketsManagement=Διαχείριση tickets CreatedBy=Δημιουργήθηκε από NewTicket=Νέο ticket -SubjectAnswerToTicket=Απάντηση εισιτηρίου +SubjectAnswerToTicket=Απάντηση σε ticket TicketTypeRequest=Τύπος αιτήματος TicketCategory=Κατηγοριοποίηση ticket SeeTicket=Δείτε το ticket @@ -192,8 +198,7 @@ TicketAssigned=Το ticket έχει πλέον εκχωρηθεί TicketChangeType=Αλλαγή τύπου TicketChangeCategory=Αλλαγή αναλυτικού κώδικα TicketChangeSeverity=Αλλαγή κρισιμότητας -TicketAddMessage=Προσθήκη μηνύματος -AddMessage=Προσθήκη μηνύματος +TicketAddMessage=Προσθήκη προσωπικού μηνύματος MessageSuccessfullyAdded=Το ticket προστέθηκε TicketMessageSuccessfullyAdded=Το μήνυμα προστέθηκε με επιτυχία TicketMessagesList=Λίστα μηνυμάτων @@ -204,8 +209,8 @@ TicketSeverity=Κρισιμότητα ShowTicket=Εμφάνιση ticket RelatedTickets=Σχετικά ticket TicketAddIntervention=Δημιουργία παρέμβασης -CloseTicket=Κλείσιμο|Επίλυση ticket -AbandonTicket=Εγκατάλειψη ticket +CloseTicket=Κλείσιμο|Επίλυση +AbandonTicket=Εγκατάλειψη CloseATicket=Κλείσιμο|Επίλυση ticket ConfirmCloseAticket=Επιβεβαίωση κλεισίματος ticket ConfirmAbandonTicket=Επιβεβαιώνετε το κλείσιμο του ticket σε κατάσταση 'Εγκαταλελειμμένο' @@ -213,24 +218,23 @@ ConfirmDeleteTicket=Παρακαλώ επιβεβαιώστε τη διαγρα TicketDeletedSuccess=Το ticket διαγράφηκε με επιτυχία TicketMarkedAsClosed=Το ticket επισημάνθηκε ως κλειστό TicketDurationAuto=Υπολογισμένη διάρκεια -TicketDurationAutoInfos=Διάρκεια υπολογίζεται αυτόματα από την παρέμβαση +TicketDurationAutoInfos=Η διάρκεια υπολογίζεται αυτόματα από τη σχετική παρέμβαση TicketUpdated=Το ticket ενημερώθηκε -SendMessageByEmail=Στείλτε μήνυμα με email +SendMessageByEmail=Αποστόλη μηνύματος μέσω email TicketNewMessage=Νέο μήνυμα -ErrorMailRecipientIsEmptyForSendTicketMessage=Ο παραλήπτης είναι κενός. Δεν στέλνεται μήνυμα ηλεκτρονικού ταχυδρομείου +ErrorMailRecipientIsEmptyForSendTicketMessage=Το πεδίο παραλήπτη είναι κενό. Δεν εστάλη το email TicketGoIntoContactTab=Μεταβείτε στην καρτέλα "Επαφές" για να τις επιλέξετε -TicketMessageMailIntro=Εισαγωγή +TicketMessageMailIntro=Κεφαλίδα μηνύματος TicketMessageMailIntroHelp=Αυτό το κείμενο προστίθεται μόνο στην αρχή του email και δεν θα αποθηκευτεί. -TicketMessageMailIntroLabelAdmin=Εισαγωγικό κείμενο για όλες τις απαντήσεις ticket TicketMessageMailIntroText=Γεια σας,
Μια νέα απάντηση προστέθηκε σε ένα ticket που ακολουθείτε. Εδώ είναι το μήνυμα:
TicketMessageMailIntroHelpAdmin=Αυτό το κείμενο θα εισαχθεί πριν από την απάντηση όταν απαντάτε σε ένα ticket από το Dolibarr -TicketMessageMailSignature=Υπογραφή -TicketMessageMailSignatureHelp=Αυτό το κείμενο προστίθεται μόνο στο τέλος του email και δεν θα αποθηκευτεί. -TicketMessageMailSignatureText=Το μήνυμα στάλθηκε από %s μέσω Dolibarr -TicketMessageMailSignatureLabelAdmin=Υπογραφή email απάντησης -TicketMessageMailSignatureHelpAdmin=Αυτό το κείμενο θα εισαχθεί μετά το μήνυμα απάντησης. +TicketMessageMailFooter=Υποσέλιδο μηνύματος +TicketMessageMailFooterHelp=Αυτό το κείμενο προστίθεται μόνο στο τέλος του μηνύματος που αποστέλλεται με email και δεν θα αποθηκευτεί. +TicketMessageMailFooterText=Το μήνυμα στάλθηκε από %s μέσω Dolibarr +TicketMessageMailFooterHelpAdmin=Αυτό το κείμενο θα εισαχθεί μετά το μήνυμα απάντησης. TicketMessageHelp=Μόνο αυτό το κείμενο θα αποθηκευτεί στη λίστα μηνυμάτων της κάρτας ticket. TicketMessageSubstitutionReplacedByGenericValues=Οι μεταβλητές αντικατάστασης αντικαθίστανται από γενικές τιμές. +ForEmailMessageWillBeCompletedWith=Για μηνύματα email που αποστέλλονται σε εξωτερικούς χρήστες, το μήνυμα θα συμπληρωθεί με TimeElapsedSince=Ο χρόνος πέρασε από TicketTimeToRead=Ο χρόνος που πέρασε πριν από την ανάγνωση TicketTimeElapsedBeforeSince=Χρόνος που πέρασε πριν / από @@ -239,8 +243,9 @@ TicketDocumentsLinked=Έγγραφα που συνδέονται με το ticke ConfirmReOpenTicket=Επιβεβαιώνετε το άνοιγμα εκ νέου αυτού του ticket; TicketMessageMailIntroAutoNewPublicMessage=Ένα νέο μήνυμα αναρτήθηκε στο ticket με το θέμα %s: TicketAssignedToYou=Το ticket σας έχει ανατεθεί -TicketAssignedEmailBody=Σας έχει εκχωρηθεί το ticket #%s από τον %s +TicketAssignedEmailBody=Σας έχει ανατεθεί το ticket #%s από τον %s MarkMessageAsPrivate=Επισήμανση μηνύματος ως απόρρητου +TicketMessageSendEmailHelp=Θα σταλεί ένα email σε όλες τις αντιστοιχισμένες επαφές (εσωτερικές επαφές, αλλά και εξωτερικές επαφές, εκτός και εάν είναι επιλεγμένη η επιλογή "%s") TicketMessagePrivateHelp=Αυτό το μήνυμα δεν θα εμφανίζεται σε εξωτερικούς χρήστες TicketEmailOriginIssuer=Δημιουργός στην αρχή των tickets InitialMessage=Αρχικό μήνυμα @@ -253,7 +258,7 @@ TicketMessageSuccesfullyUpdated=Το μήνυμα ενημερώθηκε με ε TicketChangeStatus=Αλλαγή κατάστασης TicketConfirmChangeStatus=Επιβεβαιώστε την αλλαγή κατάστασης: %s? TicketLogStatusChanged=Η κατάσταση άλλαξε: απο%s σε %s -TicketNotNotifyTiersAtCreate=Μην ειδοποιείτε την εταιρεία στη δημιουργία +TicketNotNotifyTiersAtCreate=Μην ειδοποιείτε την εταιρεία κατά την δημιουργία NotifyThirdpartyOnTicketClosing=Επαφές για ειδοποίηση κατά το κλείσιμο του ticket TicketNotifyAllTiersAtClose=Όλες οι σχετικές επαφές TicketNotNotifyTiersAtClose=Καμία σχετική επαφή @@ -262,7 +267,7 @@ TicketNotCreatedFromPublicInterface=Μη διαθέσιμο. Το ticket δεν ErrorTicketRefRequired=Απαιτείται όνομα αναφοράς ticket TicketsDelayForFirstResponseTooLong=Έχει περάσει πάρα πολύς χρόνος από το άνοιγμα του ticket χωρίς καμία απάντηση. TicketsDelayFromLastResponseTooLong=Έχει περάσει πάρα πολύς χρόνος από την τελευταία απάντηση σε αυτό το ticket. -TicketNoContractFoundToLink=Δεν βρέθηκε σύμβαση που να συνδέεται αυτόματα με αυτό το εισιτήριο. Συνδέστε μια σύμβαση μη αυτόματα. +TicketNoContractFoundToLink=Δεν βρέθηκε σύμβαση που να συνδέεται αυτόματα με αυτό το ticket. Συνδέστε μια σύμβαση μη αυτόματα. TicketManyContractsLinked=Πολλές συμβάσεις έχουν συνδεθεί αυτόματα με αυτό το ticket. Βεβαιωθείτε ότι έχετε επαληθεύσει ποιο πρέπει να επιλεγεί. # @@ -270,7 +275,7 @@ TicketManyContractsLinked=Πολλές συμβάσεις έχουν συνδε # TicketLogMesgReadBy=Το ticket %s διαβάστηκε από %s NoLogForThisTicket=Δεν υπάρχει αρχείο καταγραφής για αυτό το ticket ακόμα -TicketLogAssignedTo=Το ticket %s ανατέθηκε στο %s +TicketLogAssignedTo=Το ticket %s ανατέθηκε σε %s TicketLogPropertyChanged=Το ticket %s τροποποιήθηκε: ταξινόμηση από %s σε %s TicketLogClosedBy=Το ticket %s έκλεισε απο %s TicketLogReopen=Εκ νέου άνοιγμα του ticket %s @@ -279,13 +284,13 @@ TicketLogReopen=Εκ νέου άνοιγμα του ticket %s # Public pages # TicketSystem=Σύστημα ticket -ShowListTicketWithTrackId=Εμφάνιση λίστας ticket με βάση το αναγνωριστικό ID -ShowTicketWithTrackId=Εμφάνιση ticket από το αναγνωριστικό ID +ShowListTicketWithTrackId=Εμφάνιση λίστας ticket με βάση το αναγνωριστικό παρακολούθησης +ShowTicketWithTrackId=Εμφάνιση ticket από το αναγνωριστικό παρακολούθησης TicketPublicDesc=Μπορείτε να δημιουργήσετε ένα ticket υποστήριξης ή να επιλέξετε από ένα αναγνωριστικό ID. YourTicketSuccessfullySaved=Το ticket αποθηκεύτηκε με επιτυχία! MesgInfosPublicTicketCreatedWithTrackId=Ένα νέο ticket δημιουργήθηκε με ID %sκαι αναφ. %s -PleaseRememberThisId=Παρακαλούμε να διατηρήσετε τον αριθμό παρακολούθησης που σας ζητάμε αργότερα. -TicketNewEmailSubject=Δημιουργία ticket- Ref %s (δημόσιο ID %s) +PleaseRememberThisId=Παρακαλώ κρατήστε τον αριθμό παρακολούθησης, μπορεί να σας τον ζητήσουμε αργότερα. +TicketNewEmailSubject=Επιβεβαίωση δημιουργίας εισιτηρίου - Αναφ. %s (δημόσιο αναγνωριστικό εισιτηρίου %s) TicketNewEmailSubjectCustomer=Νέο ticket υποστήριξης TicketNewEmailBody=Αυτό είναι ένα αυτόματο μήνυμα ηλεκτρονικού ταχυδρομείου που επιβεβαιώνει ότι έχετε καταχωρήσει ένα νέο ticket. TicketNewEmailBodyCustomer=Αυτό είναι ένα αυτόματο μήνυμα ηλεκτρονικού ταχυδρομείου που επιβεβαιώνει ότι μόλις δημιουργήθηκε νέο ticket στο λογαριασμό σας. @@ -296,20 +301,20 @@ TicketNewEmailBodyInfosTrackUrlCustomer=Μπορείτε να δείτε την TicketCloseEmailBodyInfosTrackUrlCustomer=Μπορείτε να δείτε το ιστορικό αυτού του ticket κάνοντας κλικ στον παρακάτω σύνδεσμο TicketEmailPleaseDoNotReplyToThisEmail=Παρακαλώ μην απαντήσετε απευθείας σε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου! Χρησιμοποιήστε το σύνδεσμο για να απαντήσετε μέσω της διεπαφής. TicketPublicInfoCreateTicket=Αυτή η φόρμα σάς επιτρέπει να καταγράψετε ένα ticket υποστήριξης στο σύστημα διαχείρισης. -TicketPublicPleaseBeAccuratelyDescribe=Παρακαλούμε περιγράψτε με ακρίβεια το πρόβλημα. Παρέχετε τις περισσότερες πληροφορίες που είναι δυνατόν να μας επιτρέψουν να προσδιορίσουμε σωστά το αίτημά σας. +TicketPublicPleaseBeAccuratelyDescribe=Παρακαλώ διατυπώστε με σαφήνεια την ερώτησή σας. Δώστε τις περισσότερες δυνατές πληροφορίες για να μας επιτρέψετε να αναγνωρίσουμε σωστά το αίτημά σας. TicketPublicMsgViewLogIn=Παρακαλώ εισαγάγετε το αναγνωριστικό παρακολούθησης ticket TicketTrackId=Δημόσιο αναγνωριστικό παρακολούθησης OneOfTicketTrackId=Ένα από τα αναγνωριστικά παρακολούθησης ErrorTicketNotFound=Δεν βρέθηκε ticket με αναγνωριστικό παρακολούθησης %s! Subject=Αντικείμενο ViewTicket=Προβολή ticket -ViewMyTicketList=Δείτε τη λίστα των tickets μου +ViewMyTicketList=Εμφάνιση λίστας των ticket μου ErrorEmailMustExistToCreateTicket=Σφάλμα: η διεύθυνση ηλεκτρονικού ταχυδρομείου δεν βρέθηκε στη βάση δεδομένων μας TicketNewEmailSubjectAdmin=Δημιουργήθηκε νέο ticket - Ref %s (δημόσιο ticket ID %s) TicketNewEmailBodyAdmin=

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

SeeThisTicketIntomanagementInterface=Δείτε το Παρακαλώ εισαγάγετε το αναγνωριστικό παρακολούθησης ticket στη διεπαφή διαχείρισης TicketPublicInterfaceForbidden=Η δημόσια διεπαφή για τα tickets δεν ήταν ενεργοποιημένη -ErrorEmailOrTrackingInvalid=Λάθος τιμή ID παρακολούθηση ή ηλεκτρονικού ταχυδρομείου +ErrorEmailOrTrackingInvalid=Λάθος τιμή αναγνωριστικού παρακολούθησης ή email OldUser=Παλιός χρήστης NewUser=Νέος χρήστης NumberOfTicketsByMonth=Αριθμός tickets ανά μήνα @@ -317,14 +322,14 @@ NbOfTickets=Αριθμός tickets # notifications TicketCloseEmailSubjectCustomer=Το Παρακαλώ εισαγάγετε το αναγνωριστικό παρακολούθησης ticket έκλεισε TicketCloseEmailBodyCustomer=Αυτό είναι ένα αυτόματο μήνυμα για να σας ενημερώσουμε ότι το ticket %s μόλις έκλεισε. -TicketCloseEmailSubjectAdmin=Το εισιτήριο έκλεισε - Réf %s (δημόσιο ID εισιτηρίου %s) +TicketCloseEmailSubjectAdmin=Το ticket έκλεισε - Réf %s (δημόσιο ID εισιτηρίου %s) TicketCloseEmailBodyAdmin=Ένα ticket με ID #%s μόλις έκλεισε, δείτε πληροφορίες: TicketNotificationEmailSubject=Το ticket %s ενημερώθηκε TicketNotificationEmailBody=Αυτό είναι ένα αυτόματο μήνυμα που σας ειδοποιεί ότι το ticket %s μόλις ενημερώθηκε TicketNotificationRecipient=Αποδέκτης ειδοποίησης TicketNotificationLogMessage=Μήνυμα καταγραφής TicketNotificationEmailBodyInfosTrackUrlinternal=Προβολή ticket σε διεπαφή -TicketNotificationNumberEmailSent=Ειδοποίηση ηλεκτρονικού ταχυδρομείου αποστολή: %s +TicketNotificationNumberEmailSent=Στάλθηκε email ειδοποίησης: %s ActionsOnTicket=Ενέργειες στο ticket diff --git a/htdocs/langs/el_GR/users.lang b/htdocs/langs/el_GR/users.lang index 24f318bfb6e..ef21d43871c 100644 --- a/htdocs/langs/el_GR/users.lang +++ b/htdocs/langs/el_GR/users.lang @@ -47,7 +47,7 @@ RemoveFromGroup=Αφαίρεση από την ομάδα PasswordChangedAndSentTo=Ο κωδικός πρόσβασης άλλαξε και στάλθηκε στο %s . PasswordChangeRequest=Αίτημα αλλαγής κωδικού πρόσβασης για %s PasswordChangeRequestSent=Το αίτημα για αλλαγή κωδικού πρόσβασης για %s στάλθηκε στο %s . -IfLoginExistPasswordRequestSent=Εάν αυτή η σύνδεση αφορά έγκυρο λογαριασμό, έχει σταλεί ένα email για επαναφορά του κωδικού πρόσβασης. +IfLoginExistPasswordRequestSent=Εάν αυτή η σύνδεση είναι έγκυρος λογαριασμός (με έγκυρο email), έχει σταλεί ένα email για επαναφορά του κωδικού πρόσβασης. IfEmailExistPasswordRequestSent=Εάν αυτό το email είναι έγκυρος λογαριασμός, έχει σταλεί ένα email για επαναφορά του κωδικού πρόσβασης. ConfirmPasswordReset=Επιβεβαίωση της επαναφοράς κωδικού πρόσβασης MenuUsersAndGroups=Χρήστες και Ομάδες @@ -55,7 +55,7 @@ LastGroupsCreated=Οι τελευταίες %s ομάδες που δημιου LastUsersCreated=Τελευταίοι %s χρήστες που δημιουργήθηκαν ShowGroup=Εμφάνιση ομάδας ShowUser=Εμφάνιση χρήστη -NonAffectedUsers=Non affected users +NonAffectedUsers=Χρήστες χωρίς ανατεθειμένη εργασία UserModified=Ο χρήστης τροποποιήθηκε με επιτυχία PhotoFile=Αρχείο φωτογραφίας ListOfUsersInGroup=Λίστα χρηστών σε αυτήν την ομάδα @@ -66,11 +66,11 @@ LinkedToDolibarrUser=Σύνδεσμος προς χρήστη LinkedToDolibarrThirdParty=Σύνδεσμος προς τρίτο μέρος CreateDolibarrLogin=Δημιουργία ενός χρήστη CreateDolibarrThirdParty=Δημιουργία τρίτου μέρους -LoginAccountDisableInDolibarr=Ο λογαριασμός απενεργοποιήθηκε στο Dolibarr. -UsePersonalValue=Use personal value -InternalUser=Εσωτερικός χρήστης +LoginAccountDisableInDolibarr=Ο λογαριασμός απενεργοποιήθηκε στο Dolibarr +PASSWORDInDolibarr=Ο κωδικός έχει τροποποιηθεί στο Dolibarr +UsePersonalValue=Χρήση προσωπικής επιλογής ExportDataset_user_1=Οι χρήστες και οι ιδιότητές τους -DomainUser=Domain user %s +DomainUser=Χρήστης τομέα %s Reactivate=Επανενεργοποίηση CreateInternalUserDesc=Αυτή η φόρμα σάς επιτρέπει να δημιουργήσετε έναν εσωτερικό χρήστη στην εταιρεία/οργανισμό σας. Για να δημιουργήσετε έναν εξωτερικό χρήστη (πελάτη, προμηθευτή κ.λπ. ..), χρησιμοποιήστε το κουμπί "Δημιουργία χρήστη Dolibarr" από την κάρτα επικοινωνίας αυτού του τρίτου μέρους. InternalExternalDesc=Ένας εσωτερικός χρήστης είναι ένας χρήστης που ανήκει στην εταιρεία/οργανισμό σας ή είναι συνεργάτης χρήστης εκτός του οργανισμού σας που μπορεί να χρειάζεται να δει περισσότερα δεδομένα από τα δεδομένα που σχετίζονται με την εταιρεία του (το σύστημα δικαιωμάτων θα καθορίσει τι μπορεί ή τι δεν μπορεί να δει ή να κάνει).
Ένας εξωτερικός χρήστης είναι ένας πελάτης, προμηθευτής ή άλλος που πρέπει να βλέπει ΜΟΝΟ δεδομένα που σχετίζονται με τον εαυτό του (Η δημιουργία εξωτερικού χρήστη για τρίτο μέρος μπορεί να γίνει από την εγγραφή επαφής του τρίτου μέρους).

Και στις δύο περιπτώσεις, πρέπει να εκχωρήσετε δικαιώματα για τις δυνατότητες που χρειάζεται ο χρήστης. @@ -79,7 +79,7 @@ Inherited=Κληρονομήθηκε UserWillBe=Ο χρήστης που δημιουργήθηκε θα είναι UserWillBeInternalUser=Ο χρήστης που δημιουργήθηκε θα είναι εσωτερικός χρήστης (επειδή δεν συνδέεται με συγκεκριμένο τρίτο μέρος) UserWillBeExternalUser=Ο χρήστης που δημιουργήθηκε θα είναι εξωτερικός χρήστης (επειδή συνδέεται με ένα συγκεκριμένο τρίτο μέρος) -IdPhoneCaller=Id phone caller +IdPhoneCaller=Id καλούντος NewUserCreated=Ο χρήστης %s δημιουργήθηκε NewUserPassword=Αλλαγή κωδικού πρόσβασης για %s NewPasswordValidated=Ο νέος σας κωδικός έχει επικυρωθεί και πρέπει να χρησιμοποιηθεί τώρα για να συνδεθείτε. @@ -93,7 +93,7 @@ GroupDeleted=Η ομάδα %s καταργήθηκε ConfirmCreateContact=Είστε σίγουροι ότι θέλετε να δημιουργήσετε καινούριο λογαριασμό Dolibarr γι΄ αυτή την επαφή; ConfirmCreateLogin=Είστε σίγουροι ότι θέλετε να δημιουργήσετε καινούριο λογαριασμό Dolibarr γι΄ αυτό το μέλος; ConfirmCreateThirdParty=Είστε σίγουροι ότι θέλετε να δημιουργήσετε ένα τρίτο μέρος για αυτό το μέλος; -LoginToCreate=Login to create +LoginToCreate=Χρήστης σύνδεσης για δημιουργία NameToCreate=Όνομα τρίτου μέρους προς δημιουργία YourRole=Οι ρόλοι σας YourQuotaOfUsersIsReached=Συμπληρώθηκε το όριο ενεργών χρηστών σας! @@ -128,3 +128,8 @@ DateLastLogin=Ημερομηνία τελευταίας σύνδεσης DatePreviousLogin=Ημερομηνία προηγούμενης σύνδεσης IPLastLogin=IP τελευταίας σύνδεσης IPPreviousLogin=IP προηγούμενης σύνδεσης +ShowAllPerms=Εμφάνιση όλων των γραμμών δικαιωμάτων +HideAllPerms=Απόκρυψη όλων των γραμμών δικαιωμάτων +UserPublicPageDesc=Μπορείτε να ενεργοποιήσετε μια εικονική κάρτα για αυτόν τον χρήστη. Ένα url με το προφίλ χρήστη και έναν γραμμωτό κώδικα θα είναι διαθέσιμο για να επιτρέπεται σε οποιονδήποτε διαθέτει smartphone να το σαρώσει και να προσθέσει την επαφή σας στο βιβλίο διευθύνσεών του. +EnablePublicVirtualCard=Ενεργοποιήστε τη δημόσια εικονική κάρτα χρήστη +PublicVirtualCardUrl=Δημόσια εικονική κάρτα χρήστη diff --git a/htdocs/langs/el_GR/website.lang b/htdocs/langs/el_GR/website.lang index 83585f34b55..f90c3118809 100644 --- a/htdocs/langs/el_GR/website.lang +++ b/htdocs/langs/el_GR/website.lang @@ -1,8 +1,9 @@ # Dolibarr language file - Source file is en_US - website Shortname=Κώδικας -WebsiteSetupDesc=Δημιουργήστε εδώ τις ιστοσελίδες που θέλετε να χρησιμοποιήσετε. Στη συνέχεια, μεταβείτε στο μενού Websites για να τις επεξεργαστείτε. +WebsiteName=Όνομα της ιστοσελίδας +WebsiteSetupDesc=Δημιουργήστε εδώ τις ιστοσελίδες που θέλετε να χρησιμοποιήσετε. Στη συνέχεια, μεταβείτε στο μενού Ιστοσελίδες για να τις επεξεργαστείτε. DeleteWebsite=Διαγραφή ιστότοπου -ConfirmDeleteWebsite=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον ιστότοπο; Όλες οι σελίδες και το περιεχόμενό του θα αφαιρεθούν επίσης. Τα μεταφορτωμένα αρχεία (όπως στον κατάλογο μέσων, στη μονάδα ECM, ...) θα παραμείνουν. +ConfirmDeleteWebsite=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον ιστότοπο; Όλες οι σελίδες και το περιεχόμενό του θα αφαιρεθούν επίσης. Τα μεταφορτωμένα αρχεία (όπως στον κατάλογο μέσων, στην ενότητα ECM, ...) θα παραμείνουν. WEBSITE_TYPE_CONTAINER=Τύπος σελίδας/κοντέινερ WEBSITE_PAGE_EXAMPLE=Web σελίδα που θα χρησιμοποιηθεί ως παράδειγμα WEBSITE_PAGENAME=Όνομα / ψευδώνυμο σελίδας @@ -15,62 +16,64 @@ WEBSITE_HTML_HEADER=Προσθήκη στο κάτω μέρος της κεφα WEBSITE_ROBOT=Αρχείο ρομπότ (robots.txt) WEBSITE_HTACCESS=Αρχείο .htaccess ιστότοπου WEBSITE_MANIFEST_JSON=Αρχείο manifest.json ιστότοπου -WEBSITE_README=Αρχείο README.md WEBSITE_KEYWORDSDesc=Χρησιμοποιήστε κόμμα για να διαχωρίσετε τιμές -EnterHereLicenseInformation=Εισάγετε εδώ μεταδεδομένα ή πληροφορίες άδειας χρήσης για να συμπληρώσετε ένα αρχείο README.md. εάν διανέμετε τον ιστότοπό σας ως πρότυπο, το αρχείο θα συμπεριληφθεί στο πακέτο πειρασμών. +EnterHereReadmeInformation=Εισάγετε εδώ μια περιγραφή του ιστότοπου. Εάν διανείμετε τον ιστότοπο σας ως πρότυπο, το αρχείο θα συμπεριληφθεί στο πακέτο του προτύπου. +EnterHereLicenseInformation=Εισάγετε εδώ την ΑΔΕΙΑ του κωδικού της ιστοσελίδας. Εάν διανείμετε τον ιστότοπο σας ως πρότυπο, το αρχείο θα συμπεριληφθεί στο πακέτο του προτύπου. HtmlHeaderPage=Κεφαλίδα HTML (συγκεκριμένη μόνο για αυτήν τη σελίδα) -PageNameAliasHelp=Όνομα ή ψευδώνυμο της σελίδας.
Αυτό το ψευδώνυμο χρησιμοποιείται επίσης για τη δημιουργία μιας διεύθυνσης SEO όταν ο ιστότοπος έτρεξε από ένα Virtual host ενός διακομιστή Web (όπως Apacke, Nginx, ...). Χρησιμοποιήστε το κουμπί " %s " για να επεξεργαστείτε αυτό το ψευδώνυμο. -EditTheWebSiteForACommonHeader=Σημείωση: Εάν θέλετε να ορίσετε μια εξατομικευμένη κεφαλίδα για όλες τις σελίδες, επεξεργαστείτε την κεφαλίδα σε επίπεδο ιστότοπου αντί για σελίδα / κοντέινερ. +PageNameAliasHelp=Όνομα ή ψευδώνυμο(alias) της σελίδας.
Αυτό το ψευδώνυμο χρησιμοποιείται επίσης για τη δημιουργία διεύθυνσης URL SEO όταν ο ιστότοπος εκτελείται από έναν εικονικό κεντρικό υπολογιστή ενός διακομιστή Web (όπως Apacke, Nginx, ...). Χρησιμοποιήστε το κουμπί " %s " για να επεξεργαστείτε αυτό το ψευδώνυμο. +EditTheWebSiteForACommonHeader=Σημείωση: Εάν θέλετε να ορίσετε μια εξατομικευμένη κεφαλίδα(header) για όλες τις σελίδες, επεξεργαστείτε την κεφαλίδα σε επίπεδο ιστότοπου αντί για της σελίδας/κοντέινερ. MediaFiles=Βιβλιοθήκη πολυμέσων EditCss=Επεξεργασία ιδιοτήτων ιστοτόπου EditMenu=Επεξεργασία μενού EditMedias=Επεξεργασία πολυμέσων EditPageMeta=Επεξεργασία ιδιοτήτων σελίδας / κοντέινερ -EditInLine=Επεξεργασία εν σειρά +EditInLine=Γρήγορη επεξεργασία AddWebsite=Προσθήκη ιστοτόπου Webpage=Ιστοσελίδα/κοντέινερ AddPage=Προσθήκη σελίδας/κοντέινερ PageContainer=Σελίδα PreviewOfSiteNotYetAvailable=Η προ επισκόπηση του ιστότοπου σας %s δεν είναι ακόμη διαθέσιμη. Πρέπει πρώτα να ' Εισαγετε ένα πλήρες πρότυπο ιστότοπου ' ή απλώς ' Προσθέστε μια σελίδα/κοντέινερ '. -RequestedPageHasNoContentYet=Η σελίδα που ζητήθηκε με id %s δεν έχει ακόμα περιεχόμενο, ή το αρχείο cache .tpl.php καταργήθηκε. Επεξεργαστείτε το περιεχόμενο της σελίδας για να το επιλύσετε. +RequestedPageHasNoContentYet=Η ζητούμενη σελίδα με αναγνωριστικό %s δεν έχει ακόμη περιεχόμενο ή το αρχείο προσωρινής μνήμης .tpl.php αφαιρέθηκε. Επεξεργαστείτε το περιεχόμενο της σελίδας για να προχωρήσετε. SiteDeleted=Ο ιστότοπος '%s' διαγράφηκε -PageContent=Σελίδα / Contenair -PageDeleted=Σελίδα / Contenair '%s' της ιστοσελίδας %s διαγράφεται -PageAdded=Σελίδα / Contenair '%s' προστέθηκε +PageContent=Σελίδα/Contenair +PageDeleted=Η σελίδα/Contenair '%s' του ιστότοπου %s διαγράφηκε +PageAdded=Προστέθηκε η σελίδα/Contenair '%s' ViewSiteInNewTab=Προβολή ιστότοπου σε νέα καρτέλα ViewPageInNewTab=Προβολή σελίδας σε νέα καρτέλα SetAsHomePage=Ορισμός ως αρχική σελίδα RealURL=Πραγματική διεύθυνση URL -ViewWebsiteInProduction=Προβάλετε τον ιστότοπο χρησιμοποιώντας τις διευθύνσεις URL για το σπίτι +ViewWebsiteInProduction=Προβάλετε τον ιστότοπο χρησιμοποιώντας τις διευθύνσεις URL της αρχικής σελίδας +Virtualhost=Εικονικός κεντρικός υπολογιστής ή domain name +VirtualhostDesc=Το όνομα του εικονικού κεντρικού υπολογιστή ή του τομέα (Για παράδειγμα: www.mywebsite.com, mybigcompany.net, ...) SetHereVirtualHost= Χρήση με Apache / Nginx / ...
Δημιουργήστε στον διακομιστή σας (Apache, Nginx, ...) ένα αποκλειστικό Virtual Host με το PHP ενεργοποιημένο και έναν ριζικό κατάλογο αρχείων στο
%s ExampleToUseInApacheVirtualHostConfig=Παράδειγμα χρήσης στη ρύθμιση εικονικού κεντρικού υπολογιστή Apache: YouCanAlsoTestWithPHPS=Χρήση με ενσωματωμένο διακομιστή PHP
Στο περιβάλλον ανάπτυξης, μπορεί να προτιμάτε να δοκιμάσετε τον ιστότοπο με τον ενσωματωμένο διακομιστή ιστού PHP (απαιτείται PHP 5.5) εκτελώντας
php -S 0.0.0.0:8080 -t %s YouCanAlsoDeployToAnotherWHP= Δημιουργήστε τον ιστότοπο σας με έναν άλλο πάροχο φιλοξενίας Dolibarr
Εάν δεν διαθέτετε διακομιστή ιστού όπως ο Apache ή ο NGinx διαθέσιμο στο διαδίκτυο, μπορείτε να εξαγάγετε και να εισαγάγετε τον ιστότοπο σας από ένα πάροχο Dolibarr σε άλλο πάροχο Dolibarr που παρέχει πλήρη ενσωμάτωση με την ενότητα Ιστοσελίδας. Μπορείτε να βρείτε μια λίστα με παρόχους φιλοξενίας Dolibarr στο https://saas.dolibarr.org -CheckVirtualHostPerms=Ελέγξτε επίσης ότι ο χρήστης virtual host (για παράδειγμα www-data) έχει %s δικαιώματα σε αρχεία στο
%s +CheckVirtualHostPerms=Ελέγξτε επίσης ότι ο χρήστης εικονικού κεντρικού υπολογιστή (για παράδειγμα www-data) έχει %s δικαιώματα σε αρχεία στο
%s ReadPerm=Ανάγνωση -WritePerm=Γράφω +WritePerm=Εγγραφή TestDeployOnWeb=Δοκιμή / ανάπτυξη στο διαδίκτυο -PreviewSiteServedByWebServer=Προεπισκόπηση %s σε μια νέα καρτέλα.

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

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

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

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

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

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

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

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

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

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

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

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

Σημείωση: Αν έχετε ένα μεγάλο αρχείο χωρίς αυτό το πρόθεμα, μπορείτε να χρησιμοποιήσετε το 'lessc' για να το μετατρέψετε ώστε να προσαρτήσετε το πρόθεμα .bodywebsite παντού. +LinkAndScriptsHereAreNotLoadedInEditor=Προειδοποίηση: Αυτό το περιεχόμενο εμφανίζεται μόνο όταν γίνεται πρόσβαση στον ιστότοπο από διακομιστή. Δεν χρησιμοποιείται στη λειτουργία επεξεργασίας, οπότε αν χρειάζεται να φορτώσετε αρχεία javascript και σε λειτουργία επεξεργασίας, απλώς προσθέστε την ετικέτα σας 'script src=...' στη σελίδα. Dynamiccontent=Δείγμα μιας σελίδας με δυναμικό περιεχόμενο ImportSite=Εισαγωγή προτύπου ιστότοπου -EditInLineOnOff=Η λειτουργία 'Edit inline' είναι %s -ShowSubContainersOnOff=Η κατάσταση εκτέλεσης 'δυναμικού περιεχομένου' είναι %s -GlobalCSSorJS=Παγκόσμιο αρχείο CSS / JS / Header της ιστοσελίδας +EditInLineOnOff=Η λειτουργία «Γρήγορης επεξεργασίας» είναι %s +ShowSubContainersOnOff=Η λειτουργία εκτέλεσης του «δυναμικού περιεχομένου» είναι %s +GlobalCSSorJS=Καθολικό αρχείο CSS/JS/Header του ιστότοπου BackToHomePage=Επιστροφή στην αρχική σελίδα... -TranslationLinks=Μεταφραστικές συνδέσεις +TranslationLinks=Σύνδεσμοι μετάφρασης YouTryToAccessToAFileThatIsNotAWebsitePage=Προσπαθείτε να αποκτήσετε πρόσβαση σε μια σελίδα που δεν είναι διαθέσιμη.
(ref=%s, type=%s, status=%s) UseTextBetween5And70Chars=Για καλές πρακτικές SEO, χρησιμοποιήστε ένα κείμενο μεταξύ 5 και 70 χαρακτήρων MainLanguage=Κύρια γλώσσα OtherLanguages=Άλλες γλώσσες UseManifest=Παρέχετε ένα αρχείο manifest.json -PublicAuthorAlias=Δημόσιο συντάκτης ψευδώνυμο -AvailableLanguagesAreDefinedIntoWebsiteProperties=Οι διαθέσιμες γλώσσες ορίζονται σε ιδιότητες ιστότοπου -ReplacementDoneInXPages=Η αντικατάσταση έγινε σε σελίδες ή κοντέινερ %s +PublicAuthorAlias=Ψευδώνυμο δημόσιου συντάκτη +AvailableLanguagesAreDefinedIntoWebsiteProperties=Οι διαθέσιμες γλώσσες ορίζονται στις ιδιότητες του ιστότοπου +ReplacementDoneInXPages=Η αντικατάσταση έγινε σε %s Σελίδες ή Contenair RSSFeed=RSS Feed RSSFeedDesc=Μπορείτε να λάβετε μια ροή RSS με πιο πρόσφατα άρθρα με τον τύπο 'blogpost' χρησιμοποιώντας αυτήν τη διεύθυνση URL PagesRegenerated=%s σελίδα(ες)/κοντέινερ(ς) αναδημιουργήθηκαν RegenerateWebsiteContent=Αναδημιουργήστε αρχεία κρυφής μνήμης ιστότοπου AllowedInFrames=Επιτρεπόμενα σε πλαίσιο DefineListOfAltLanguagesInWebsiteProperties=Καθορίστε τη λίστα όλων των διαθέσιμων γλωσσών στις ιδιότητες του ιστότοπου. -GenerateSitemaps=Δημιουργία αρχείου sitemap του ιστότοπου +GenerateSitemaps=Δημιουργία αρχείου ιστότοπου sitemap.xml ConfirmGenerateSitemaps=Εάν επιβεβαιώσετε, θα διαγράψετε το υπάρχον αρχείο sitemap... ConfirmSitemapsCreation=Επιβεβαιώστε τη δημιουργία sitemap SitemapGenerated=Δημιουργήθηκε το αρχείο sitemap %s @@ -145,3 +148,12 @@ ImportFavicon=Favicon ErrorFaviconType=Το Favicon πρέπει να είναι png ErrorFaviconSize=Το Favicon πρέπει να έχει μέγεθος 16x16, 32x32 ή 64x64 FaviconTooltip=Μεταφορτώστε μια εικόνα που πρέπει να είναι png (16x16, 32x32 ή 64x64) +NextContainer=Επόμενη σελίδα/κοντέινερ +PreviousContainer=Προηγούμενη σελίδα/κοντέινερ +WebsiteMustBeDisabled=Ο ιστότοπος πρέπει να είναι σε κατάσταση "%s" +WebpageMustBeDisabled=Η ιστοσελίδα πρέπει να είναι σε κατάσταση "%s" +SetWebsiteOnlineBefore=Όταν ο ιστότοπος είναι εκτός σύνδεσης, όλες οι σελίδες είναι εκτός σύνδεσης. Αλλάξτε την κατάσταση του ιστότοπου πρώτα. +Booking=Κράτηση +Reservation=Κράτηση +PagesViewedPreviousMonth=Σελίδες που προβλήθηκαν (προηγούμενος μήνας) +PagesViewedTotal=Σελίδες που προβλήθηκαν (σύνολο) diff --git a/htdocs/langs/el_GR/withdrawals.lang b/htdocs/langs/el_GR/withdrawals.lang index 670fd54b818..1148a3e2f71 100644 --- a/htdocs/langs/el_GR/withdrawals.lang +++ b/htdocs/langs/el_GR/withdrawals.lang @@ -33,7 +33,7 @@ InvoiceWaitingPaymentByBankTransfer=Τιμολόγιο σε αναμονή γι AmountToWithdraw=Ποσό για ανάληψη AmountToTransfer=Ποσό προς μεταφορά NoInvoiceToWithdraw=Δεν υπάρχει ανοιχτό τιμολόγιο για το '%s' σε αναμονή. Μεταβείτε στην καρτέλα '%s' στην κάρτα τιμολογίου για να υποβάλετε ένα αίτημα. -NoSupplierInvoiceToWithdraw=Δεν υπάρχει τιμολόγιο προμηθευτή με ανοιχτά «Άμεσα αιτήματα πίστωσης» σε αναμονή. Μεταβείτε στην καρτέλα '%s' στην κάρτα τιμολογίου για να υποβάλετε ένα αίτημα. +NoSupplierInvoiceToWithdraw=Κανένα τιμολόγιο προμηθευτή με ανοιχτό '%s' δεν ειναι σε αναμονή. Μεταβείτε στην καρτέλα '%s' στην καρτέλα τιμολογίου για να υποβάλετε ένα αίτημα. ResponsibleUser=Υπεύθυνος χρήστης WithdrawalsSetup=Ρύθμιση πληρωμής άμεσης χρέωσης CreditTransferSetup=Ρύθμιση μεταφοράς πίστωσης @@ -42,6 +42,7 @@ CreditTransferStatistics=Στατιστικά στοιχεία μεταφορά Rejects=Απορρίψεις LastWithdrawalReceipt=Τελευταίες %s εισπράξεις άμεσης χρέωσης MakeWithdrawRequest=Υποβάλετε αίτημα πληρωμής με άμεση χρέωση +MakeWithdrawRequestStripe=Υποβάλετε αίτημα πληρωμής άμεσης χρέωσης μέσω Stripe MakeBankTransferOrder=Υποβάλετε αίτημα μεταφοράς πίστωσης WithdrawRequestsDone=%s αιτήματα πληρωμής άμεσης χρέωσης καταγράφηκαν BankTransferRequestsDone=%s αιτήματα μεταφοράς πίστωσης καταγράφηκαν @@ -50,7 +51,7 @@ NoInvoiceCouldBeWithdrawed=Κανένα τιμολόγιο δεν χρεώθηκ WithdrawalCantBeCreditedTwice=Αυτή η απόδειξη ανάληψης έχει ήδη επισημανθεί ως πιστωμένη. Αυτό δεν μπορεί να γίνει δύο φορές, καθώς αυτό ενδέχεται να δημιουργήσει διπλές πληρωμές και εγγραφές τραπεζών. ClassCredited=Ταξινόμηση ως πιστωμένη ClassDebited=Ταξινόμηση ως χρεωμένη -ClassCreditedConfirm=Είστε σίγουροι ότι θέλετε να χαρακτηρίσετε αυτήν την απόδειξη ανάληψης ως πιστωμένη στον τραπεζικό σας λογαριασμό; +ClassCreditedConfirm=Είστε σίγουροι ότι θέλετε να Ταξινομήσετε αυτήν την απόδειξη ανάληψης ως πιστωμένη στον τραπεζικό σας λογαριασμό; TransData=Ημερομηνία μετάδοσης TransMetod=Μέθοδος μετάδοσης Send=Αποστολή @@ -59,11 +60,11 @@ StandingOrderReject=Έκδοση απόρριψης WithdrawsRefused=Η άμεση χρέωση απορρίφθηκε WithdrawalRefused=Απόσυρση απορρίφθηκε CreditTransfersRefused=Οι μεταφορές πιστώσης απορρίφθηκαν -WithdrawalRefusedConfirm=Είστε σίγουροι ότι θέλετε να εισάγετε μια απόρριψη αναμονής για την κοινωνία +WithdrawalRefusedConfirm=Είστε σίγουροι ότι θέλετε να εισάγετε μια απόρριψη ανάληψης για την εταιρεία RefusedData=Ημερομηνία απόρριψης RefusedReason=Λόγος απόρριψης -RefusedInvoicing=Χρέωσης για την απόρριψη -NoInvoiceRefused=Μην φορτίζετε την απόρριψη +RefusedInvoicing=Χρέωση της απόρριψης +NoInvoiceRefused=Μην χρεώσετε την απόρριψη InvoiceRefused=Τιμολόγιο απορρίφθηκε (Φορτίστε την απόρριψη στον πελάτη) StatusDebitCredit=Κατάσταση χρέωσης / πίστωσης StatusWaiting=Αναμονή @@ -100,8 +101,11 @@ CreditDate=Πίστωση την WithdrawalFileNotCapable=Αδύνατο να δημιουργηθεί το αρχείο απόδειξης ανάληψης για τη χώρα σας %s (η χώρα σας δεν υποστηρίζεται) ShowWithdraw=Εμφάνιση εντολής άμεσης χρέωσης IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Ωστόσο, εάν το τιμολόγιο έχει τουλάχιστον μία εντολή πληρωμής άμεσης χρέωσης που δεν έχει ακόμη υποβληθεί σε επεξεργασία, δεν θα οριστεί ως πληρωμένο για να επιτραπεί η διαχείριση προηγούμενη ανάληψης. -DoStandingOrdersBeforePayments=Αυτή η καρτέλα σάς επιτρέπει να ζητήσετε εντολή πληρωμής άμεσης χρέωσης. Μόλις τελειώσετε, μεταβείτε στο μενού Τράπεζα->Πληρωμή με άμεση χρέωση για να δημιουργήσετε και να διαχειριστείτε την εντολή άμεσης χρέωσης. Όταν η εντολή άμεσης χρέωσης κλείσει, η πληρωμή στα τιμολόγια θα καταγραφεί αυτόματα και τα τιμολόγια κλείνουν εάν το υπόλοιπο προς πληρωμή είναι μηδενικό. -DoCreditTransferBeforePayments=Αυτή η καρτέλα σάς επιτρέπει να ζητήσετε εντολή μεταφοράς πίστωσης. Μόλις τελειώσετε, μεταβείτε στο μενού Τράπεζα->Πληρωμή με μεταφορά πίστωσης για να δημιουργήσετε και να διαχειριστείτε την εντολή μεταφοράς πίστωσης. Όταν η εντολή μεταφοράς πίστωσης κλείσει, η πληρωμή στα τιμολόγια θα καταγραφεί αυτόματα και τα τιμολόγια κλείνουν εάν το υπόλοιπο προς πληρωμή είναι μηδενικό. +DoStandingOrdersBeforePayments=Αυτή η καρτέλα σάς επιτρέπει να ζητήσετε εντολή πληρωμής με πάγια εντολή. Μόλις τελειώσετε, μπορείτε να μεταβείτε στο μενού "Τράπεζα->Πληρωμή με πάγια εντολή" για να δημιουργήσετε και να διαχειριστείτε ένα αρχείο εντολής άμεσης χρέωσης. +DoStandingOrdersBeforePayments2=Μπορείτε επίσης να στείλετε ένα αίτημα απευθείας σε έναν επεξεργαστή πληρωμών SEPA όπως το Stripe, ... +DoStandingOrdersBeforePayments3=Όταν η εντολή άμεσης χρέωσης κλείσει, η πληρωμή στα τιμολόγια θα καταγραφεί αυτόματα και τα τιμολόγια κλείνουν εάν το υπόλοιπο προς πληρωμή είναι μηδενικό. +DoCreditTransferBeforePayments=Σε αυτή η καρτέλα σάς δίνεται η δυνατότητα να ζητήσετε εντολή μεταφοράς πίστωσης. Μόλις τελειώσετε, μεταβείτε στο μενού "Τράπεζα->Πληρωμή με μεταφορά πίστωσης" για να δημιουργήσετε και να διαχειριστείτε ένα αρχείο εντολής μεταφοράς πίστωσης. +DoCreditTransferBeforePayments3=Όταν η εντολή μεταφοράς πίστωσης κλείσει, η πληρωμή στα τιμολόγια θα καταγραφεί αυτόματα και τα τιμολόγια κλείνουν εάν το υπόλοιπο προς πληρωμή είναι μηδενικό. WithdrawalFile=Αρχείο χρεωστικής εντολής CreditTransferFile=Αρχείο μεταφοράς πίστωσης SetToStatusSent=Ορίστε σε κατάσταση "Αρχείο εστάλη" @@ -109,22 +113,22 @@ ThisWillAlsoAddPaymentOnInvoice=Αυτό θα καταγράψει επίσης StatisticsByLineStatus=Στατιστικά στοιχεία ανα κατάσταση των γραμμών RUM=UMR DateRUM=Ημερομηνία υπογραφής εντολής -RUMLong=Μοναδική αναφορά εντολής -RUMWillBeGenerated=Αν είναι άδειο, θα δημιουργηθεί ένα UMR (Μοναδική αναφορά εντολής) μόλις αποθηκευτούν οι πληροφορίες του τραπεζικού λογαριασμού. +RUMLong=Αναφορά Μοναδικής εντολής(UMR) +RUMWillBeGenerated=Αν είναι κενό, θα δημιουργηθεί ένα UMR (Μοναδική αναφορά εντολής) μόλις αποθηκευτούν οι πληροφορίες του τραπεζικού λογαριασμού. WithdrawMode=Λειτουργία άμεσης χρέωσης (FRST ή RECUR) WithdrawRequestAmount=Ποσό αίτησης άμεσης χρέωσης: BankTransferAmount=Ποσό αιτήματος μεταφοράς πίστωσης: -WithdrawRequestErrorNilAmount=Δεν είναι δυνατή η δημιουργία αίτησης άμεσης χρέωσης για άδειο ποσό. +WithdrawRequestErrorNilAmount=Δεν είναι δυνατή η δημιουργία αίτησης άμεσης χρέωσης για μηδενικό ποσό. SepaMandate=Εντολή άμεσης χρέωσης SEPA SepaMandateShort=Εντολή SEPA PleaseReturnMandate=Παρακαλούμε επιστρέψτε αυτή τη φόρμα εντολής με email στο %s ή μέσω ταχυδρομείου στο -SEPALegalText=Με την υπογραφή αυτής της φόρμας εντολής, εξουσιοδοτείτε (A) %s να στέλνει οδηγίες στην τράπεζά σας για να χρεώσει τον λογαριασμό σας και (B) την τράπεζά σας να χρεώσει τον λογαριασμό σας σύμφωνα με τις οδηγίες του %s. Ως μέρος των δικαιωμάτων σας, δικαιούστε επιστροφή χρημάτων από την τράπεζά σας σύμφωνα με τους όρους και τις προϋποθέσεις της συμφωνίας σας με την τράπεζά σας. Τα δικαιώματά σας σχετικά με την παραπάνω εντολή εξηγούνται σε δήλωση που μπορείτε να λάβετε από την τράπεζά σας. -CreditorIdentifier=Αναγνωριστικό πιστωτή +SEPALegalText=Με την υπογραφή αυτής της φόρμας εντολής, εξουσιοδοτείτε (A) %s και τον πάροχο υπηρεσιών πληρωμών του να στέλνουν οδηγίες στην τράπεζά σας για χρέωση του λογαριασμού σας και (Β) την τράπεζά σας να χρεώσει τον λογαριασμό σας σύμφωνα με τις οδηγίες του %s. Ως μέρος των δικαιωμάτων σας, δικαιούστε επιστροφή χρημάτων από την τράπεζά σας σύμφωνα με τους όρους και τις προϋποθέσεις της συμφωνίας σας με την τράπεζά σας. Τα δικαιώματά σας σχετικά με την παραπάνω εντολή εξηγούνται σε δήλωση που μπορείτε να λάβετε από την τράπεζά σας. +CreditorIdentifier=Αναγνωριστικό Πιστωτή CreditorName=Όνομα πιστωτή SEPAFillForm=(B) Παρακαλούμε συμπληρώστε όλα τα πεδία με την ένδειξη * SEPAFormYourName=Το όνομά σας -SEPAFormYourBAN=Το όνομα τραπεζικού λογαριασμού σας (IBAN) -SEPAFormYourBIC=Ο κωδικός αναγνώρισης τραπεζών (BIC) +SEPAFormYourBAN=Το όνομα του τραπεζικού σας λογαριασμού (IBAN) +SEPAFormYourBIC=Ο κωδικός αναγνώρισης της τράπεζας σας (BIC) SEPAFrstOrRecur=Είδος πληρωμής ModeRECUR=Επαναλαμβανόμενη πληρωμή ModeFRST=Εφάπαξ πληρωμή diff --git a/htdocs/langs/el_GR/workflow.lang b/htdocs/langs/el_GR/workflow.lang index 62f2748e3dc..43b91415825 100644 --- a/htdocs/langs/el_GR/workflow.lang +++ b/htdocs/langs/el_GR/workflow.lang @@ -7,7 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Δημιουργήστε αυτόματα descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Δημιουργήστε αυτόματα ένα τιμολόγιο πελάτη μετά την υπογραφή μιας εμπορικής πρότασης (το νέο τιμολόγιο θα έχει το ίδιο ποσό με την πρόταση) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Δημιουργήστε αυτόματα ένα τιμολόγιο πελάτη μετά την επικύρωση μιας σύμβασης descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Δημιουργήστε αυτόματα ένα τιμολόγιο πελάτη μετά το κλείσιμο μιας εντολής πώλησης (το νέο τιμολόγιο θα έχει το ίδιο ποσό με την εντολή) -descWORKFLOW_TICKET_CREATE_INTERVENTION=Κατά τη δημιουργία εισιτηρίου, δημιουργήστε αυτόματα μια παρέμβαση. +descWORKFLOW_TICKET_CREATE_INTERVENTION=Κατά τη δημιουργία ticket, δημιουργήστε αυτόματα μια παρέμβαση. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Ταξινόμηση της προσφοράς συνδεδεμένης πηγής ως τιμολογημένη όταν η εντολή πώλησης έχει οριστεί ως τιμολογημένη (και εάν το ποσό της εντολής είναι ίδιο με το συνολικό ποσό της συνδεδεμένης υπογεγραμμένης προσφοράς) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Ταξινόμηση της προσφοράς συνδεδεμένης πηγής ως τιμολογημένη όταν επικυρωθεί το τιμολόγιο πελάτη (και εάν το ποσό του τιμολογίου είναι ίδιο με το συνολικό ποσό της συνδεδεμένης υπογεγραμμένης προσφοράς) @@ -22,15 +22,15 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Ταξινόμηση descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Ταξινόμηση της παραγγελίας αγοράς συνδεδεμένης πηγής ως ληφθείσας όταν επικυρωθεί μια παραλαβή (και εάν η ποσότητα που παρελήφθη από όλες τις παραλαβές είναι η ίδια με την παραγγελία αγοράς προς ενημέρωση) descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Ταξινόμηση παραγγελίας αγοράς από συνδεδεμένη πηγή ως ληφθείσας όταν μια παραλαβή είναι κλειστή (και εάν η ποσότητα που παρελήφθη από όλες τις παραλαβές είναι η ίδια με την παραγγελία αγοράς προς ενημέρωση) # Autoclassify purchase invoice -descWORKFLOW_BILL_ON_RECEPTION=Ταξινόμηση παραλαβών ως "τιμολογημένες" όταν επικυρωθεί μια συνδεδεμένη παραγγελία προμηθευτή +descWORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE=Ταξινόμηση των παραλαβών σε "τιμολογημένες" όταν επικυρώνεται ένα συνδεδεμένο τιμολόγιο αγοράς (και εάν το ποσό του τιμολογίου είναι το ίδιο με το συνολικό ποσό των συνδεδεμένων παραλαβών) # Automatically link ticket to contract -descWORKFLOW_TICKET_LINK_CONTRACT=Κατά τη δημιουργία ενός εισιτηρίου, συνδέστε τα διαθέσιμα συμβόλαια του αντίστοιχου τρίτου μέρους +descWORKFLOW_TICKET_LINK_CONTRACT=Κατά τη δημιουργία ενός ticket, συνδέστε τα διαθέσιμα συμβόλαια του αντίστοιχου τρίτου μέρους descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=Όταν συνδέετε συμβόλαια, αναζητήστε μεταξύ αυτών των μητρικών εταιρειών # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Κλείστε όλες τις παρεμβάσεις που συνδέονται με το εισιτήριο όταν ένα εισιτήριο είναι κλειστό +descWORKFLOW_TICKET_CLOSE_INTERVENTION=Κλείστε όλες τις παρεμβάσεις που συνδέονται με το ticket εάν αυτό είναι κλειστό AutomaticCreation=Αυτόματη δημιουργία AutomaticClassification=Αυτόματη ταξινόμηση # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Ταξινόμηση αποστολής συνδεδεμένης πηγής ως κλειστή όταν επικυρωθεί το τιμολόγιο πελάτη +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Ταξινόμηση της αποστολής συνδεδεμένης προέλευσης ως κλειστής όταν επικυρωθεί το τιμολόγιο πελάτη (και εάν το ποσό του τιμολογίου είναι ίδιο με το συνολικό ποσό των συνδεδεμένων αποστολών) AutomaticClosing=Αυτόματο κλείσιμο AutomaticLinking=Αυτόματη σύνδεση diff --git a/htdocs/langs/en_AE/hrm.lang b/htdocs/langs/en_AE/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_AE/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_AE/propal.lang b/htdocs/langs/en_AE/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/en_AE/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/en_AE/stripe.lang b/htdocs/langs/en_AE/stripe.lang new file mode 100644 index 00000000000..ae44362fd94 --- /dev/null +++ b/htdocs/langs/en_AE/stripe.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - stripe +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +TERMINAL_LOCATION=Location (address) for Stripe Terminals diff --git a/htdocs/langs/en_AU/hrm.lang b/htdocs/langs/en_AU/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_AU/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_AU/propal.lang b/htdocs/langs/en_AU/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/en_AU/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/en_AU/stripe.lang b/htdocs/langs/en_AU/stripe.lang new file mode 100644 index 00000000000..ae44362fd94 --- /dev/null +++ b/htdocs/langs/en_AU/stripe.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - stripe +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +TERMINAL_LOCATION=Location (address) for Stripe Terminals diff --git a/htdocs/langs/en_CA/hrm.lang b/htdocs/langs/en_CA/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_CA/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_CA/propal.lang b/htdocs/langs/en_CA/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/en_CA/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/en_CA/stripe.lang b/htdocs/langs/en_CA/stripe.lang new file mode 100644 index 00000000000..ae44362fd94 --- /dev/null +++ b/htdocs/langs/en_CA/stripe.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - stripe +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +TERMINAL_LOCATION=Location (address) for Stripe Terminals diff --git a/htdocs/langs/en_GB/accountancy.lang b/htdocs/langs/en_GB/accountancy.lang index 8ed034a497b..ec24e4e1046 100644 --- a/htdocs/langs/en_GB/accountancy.lang +++ b/htdocs/langs/en_GB/accountancy.lang @@ -24,7 +24,6 @@ Addanaccount=Add a financial account AccountAccounting=Financial Account ShowAccountingAccount=Show finance account ShowAccountingJournal=Show finance journal -AccountAccountingSuggest=Suggested Financial Account MenuVatAccounts=VAT accounts ProductsBinding=Product accounts Binding=Link to accounts @@ -49,15 +48,11 @@ XLineFailedToBeBinded=%s products/services were not linked to any finance accoun ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin sorting the page "Links to do" by the most recent elements ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin sorting the page "Links done" by the most recent elements ACCOUNTING_LENGTH_GACCOUNT=Length of the General Ledger accounts (If you set value to 6 here, the account '706' will appear as '706000' on screen) -ACCOUNTING_SELL_JOURNAL=Sales journal -ACCOUNTING_ACCOUNT_SUSPENSE=Suspense account -DONATION_ACCOUNTINGACCOUNT=Finance account to register donations -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Default sales account (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Default services purchase account (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Default services sales account (used if not defined in the service sheet) LabelAccount=Account name LabelOperation=Account operation NumPiece=Item number +AccountingCategory=Custom group of accounts +AccountingCategories=Custom groups of accounts AccountingAccountGroupsDesc=Here you can define some groups of financial accounts. They will be used for personalised accounting reports. ByPersonalizedAccountGroups=By personalised groups FeeAccountNotDefined=Account for fees not defined @@ -68,19 +63,13 @@ ErrorDebitCredit=Debit and Credit fields cannot have values at the same time AddCompteFromBK=Add finance accounts to the group ListAccounts=List of the financial accounts Pcgtype=Group account -DescVentilCustomer=View the list of customer invoice lines linked (or not) to a product financial account -DescVentilDoneCustomer=View a detailed list of invoices, customers and their product financial account -DescVentilTodoCustomer=Link invoice lines not already linked with a product finance account -ChangeAccount=Change the product/service finance account for selected lines with the following finance account: DescVentilTodoExpenseReport=Link expense report lines not already linked with a fee finance account DescVentilExpenseReport=View here the list of expense report lines linked (or not) to a fee finance account DescVentilDoneExpenseReport=View here the list of the lines of expense reports and their fees account ValidateHistory=Link Automatically -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this finance account because it is used FicheVentilation=Link card GeneralLedgerIsWritten=Transactions are written to the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalised. If there is no other error message, this is probably because they were already journalised. -ListOfProductsWithoutAccountingAccount=List of products not linked to any finance account ChangeBinding=Change the link Accounted=Posted in ledger ApplyMassCategories=Apply bulk categories diff --git a/htdocs/langs/en_GB/hrm.lang b/htdocs/langs/en_GB/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_GB/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_GB/loan.lang b/htdocs/langs/en_GB/loan.lang index cf7160c883c..25939cdd6fd 100644 --- a/htdocs/langs/en_GB/loan.lang +++ b/htdocs/langs/en_GB/loan.lang @@ -10,6 +10,3 @@ LoanPaid=Loan Repaid ListLoanAssociatedProject=List of loans associated with this project AddLoan=Create new loan CapitalRemain=Capital Balance -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Financial account - Capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Financial account - Interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Financial account - Insurance by default diff --git a/htdocs/langs/en_GB/main.lang b/htdocs/langs/en_GB/main.lang index 5617fe77778..b5606763a65 100644 --- a/htdocs/langs/en_GB/main.lang +++ b/htdocs/langs/en_GB/main.lang @@ -40,3 +40,4 @@ Canceled=Cancelled Color=Colour NoPhotoYet=No picture available yet SearchIntoSupplierProposals=Vendor quotes +Terminate=Deactivate diff --git a/htdocs/langs/en_GB/salaries.lang b/htdocs/langs/en_GB/salaries.lang index 6023f538fa0..8e0e7e8632f 100644 --- a/htdocs/langs/en_GB/salaries.lang +++ b/htdocs/langs/en_GB/salaries.lang @@ -1,4 +1,3 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Financial account used for user third parties SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Financial account by default for wage payments SalariesPayments=Salaries payment diff --git a/htdocs/langs/en_GB/stocks.lang b/htdocs/langs/en_GB/stocks.lang index ba358dbb241..1af3630e4e0 100644 --- a/htdocs/langs/en_GB/stocks.lang +++ b/htdocs/langs/en_GB/stocks.lang @@ -1,6 +1,5 @@ # Dolibarr language file - Source file is en_US - stocks StocksArea=Warehouse area -MassStockTransferShort=Bulk stock transfer QtyDispatchedShort=Quantity dispatched QtyToDispatchShort=Quantity to be dispatched OrderStatusNotReadyToDispatch=Order Status does not allow dispatching of products in stock warehouses. diff --git a/htdocs/langs/en_GB/stripe.lang b/htdocs/langs/en_GB/stripe.lang new file mode 100644 index 00000000000..ae44362fd94 --- /dev/null +++ b/htdocs/langs/en_GB/stripe.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - stripe +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +TERMINAL_LOCATION=Location (address) for Stripe Terminals diff --git a/htdocs/langs/en_IN/hrm.lang b/htdocs/langs/en_IN/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_IN/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_IN/stripe.lang b/htdocs/langs/en_IN/stripe.lang new file mode 100644 index 00000000000..ae44362fd94 --- /dev/null +++ b/htdocs/langs/en_IN/stripe.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - stripe +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +TERMINAL_LOCATION=Location (address) for Stripe Terminals diff --git a/htdocs/langs/en_SG/hrm.lang b/htdocs/langs/en_SG/hrm.lang new file mode 100644 index 00000000000..59c0ceb4575 --- /dev/null +++ b/htdocs/langs/en_SG/hrm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - hrm +JobsExtraFields=Attributs supplémentaires (Emplois) diff --git a/htdocs/langs/en_SG/propal.lang b/htdocs/langs/en_SG/propal.lang new file mode 100644 index 00000000000..05fa26ba107 --- /dev/null +++ b/htdocs/langs/en_SG/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +NoSign=Refuse diff --git a/htdocs/langs/en_SG/stripe.lang b/htdocs/langs/en_SG/stripe.lang new file mode 100644 index 00000000000..ae44362fd94 --- /dev/null +++ b/htdocs/langs/en_SG/stripe.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - stripe +ExampleOfTestCreditCard=Example of credit card for SEPA test: %s => valid, %s => error CVC, %s => expired, %s => charge fails +TERMINAL_LOCATION=Location (address) for Stripe Terminals diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index e988764d8ba..b87c9fc4955 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -14,8 +14,8 @@ 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 +DefaultForService=Default for services +DefaultForProduct=Default for products ProductForThisThirdparty=Product for this thirdparty ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest @@ -101,7 +101,8 @@ ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal ShowAccountingAccountInLedger=Show accounting account in ledger ShowAccountingAccountInJournals=Show accounting account in journals -AccountAccountingSuggest=Accounting account suggested +DataUsedToSuggestAccount=Data used to suggest account +AccountAccountingSuggest=Account suggested MenuDefaultAccounts=Default accounts MenuBankAccounts=Bank accounts MenuVatAccounts=Vat accounts @@ -126,6 +127,7 @@ WriteBookKeeping=Record transactions in accounting Bookkeeping=Ledger BookkeepingSubAccount=Subledger AccountBalance=Account balance +AccountBalanceSubAccount=Sub-accounts balance ObjectsRef=Source object ref CAHTF=Total purchase vendor before tax TotalExpenseReport=Total expense report @@ -178,31 +180,32 @@ ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account (from the Chart Of Account) to be used as the account for transitional bank transfers TransitionalAccount=Transitional bank transfer account -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Account (from the Chart Of Account) to be used as the account for unallocated funds either received or paid i.e. funds in "wait[ing]" +DONATION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register donations (Donation module) +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Account (from the Chart Of Account) to be used to register memberships subscriptions (Membership module - if membership recorded without invoice) -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Account (from the Chart Of Account) to be used as the default account to register customer deposit UseAuxiliaryAccountOnCustomerDeposit=Store customer account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) -ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Accounting account by default to register supplier deposit +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Account (from the Chart Of Account) to be used as the default UseAuxiliaryAccountOnSupplierDeposit=Store supplier account as individual account in subsidiary ledger for lines of down payments (if disabled, individual account for down payment lines will remain empty) +ACCOUNTING_ACCOUNT_CUSTOMER_RETAINED_WARRANTY=Accounting account by default to register customer retained warranty -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for the bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Accounting account by default for the bought products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought products and imported out of EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the products sold in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the products sold and exported out of EEC (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased within same country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products purchased and imported from any other foreign country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold products (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold from EEC to another EEC country (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the products sold and exported to any other foreign country (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Accounting account by default for the bought services in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Accounting account by default for the bought services and imported out of EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Accounting account by default for the services sold in EEC (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Accounting account by default for the services sold and exported out of EEC (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased within same country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services purchased and imported from other foreign country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the sold services (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold from EEC to another EEC country (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for the services sold and exported to any other foreign country (used if not defined in the service sheet) Doctype=Type of document Docdate=Date @@ -217,7 +220,8 @@ Codejournal=Journal JournalLabel=Journal label NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Custom group +AccountingCategory=Custom group of accounts +AccountingCategories=Custom groups of accounts GroupByAccountAccounting=Group by general ledger account GroupBySubAccountAccounting=Group by subledger account AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. @@ -265,19 +269,20 @@ ShowSubtotalByGroup=Show subtotal by level Pcgtype=Group of account PcgtypeDesc=Group of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report. +AccountingCategoriesDesc=Custom group of accounts can be used to group accounting accounts into one name to ease filter use or building of custom reports. Reconcilable=Reconcilable TotalVente=Total turnover before tax TotalMarge=Total sales margin -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product account from chart of account +DescVentilMore=In most cases, if you use predefined products or services and you set the account (from chart of account) on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product account from chart of account +DescVentilTodoCustomer=Bind invoice lines not already bound with a product account from chart of account +ChangeAccount=Change the product/service account (from chart of account) for the selected lines with the following account: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account (only record not already transfered in accountancy are visible) +DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product account from chart of account (only record not already transfered in accountancy are visible) DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account @@ -294,15 +299,16 @@ DescValidateMovements=Any modification or deletion of writing, lettering and del ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +DoManualBindingForFailedRecord=You have to do a manual link for the %s row(s) not linked automatically. -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot remove or disable this account of chart of account because it is used MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. NoNewRecordSaved=No more record to transfer -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account +ListOfProductsWithoutAccountingAccount=List of products not bound to any account of chart of account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet transferred to accounting @@ -337,11 +343,13 @@ ACCOUNTING_DISABLE_BINDING_ON_SALES=Disable binding & transfer in accountancy on ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountancy on purchases (vendor invoices will not be taken into account in accounting) ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accountancy on expense reports (expense reports will not be taken into account in accounting) ACCOUNTING_ENABLE_LETTERING=Enable the lettering function in the accounting +ACCOUNTING_ENABLE_AUTOLETTERING=Enable the automatic lettering when transferring to accounting ## Export NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag exported lines as Exported (to modify a line, you will need to delete the whole transaction and re-transfert it into accounting) NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +NotifiedExportFull=Export documents ? DateValidationAndLock=Date validation and lock ConfirmExportFile=Confirmation of the generation of the accounting export file ? ExportDraftJournal=Export draft journal @@ -398,7 +406,7 @@ 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. +SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of thirdparty is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the thirdparty, or change the product account suggested for binding if needed. ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. ## Dictionary @@ -442,6 +450,7 @@ AccountancyErrorMismatchLetterCode=Mismatch in reconcile code AccountancyErrorMismatchBalanceAmount=The balance (%s) is not equal to 0 AccountancyErrorLetteringBookkeeping=Errors have occurred concerning the transactions: %s ErrorAccountNumberAlreadyExists=The accounting number %s already exists +ErrorArchiveAddFile=Can't put "%s" file in archive ## Import ImportAccountingEntries=Accounting entries @@ -468,5 +477,7 @@ 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 +DocsAlreadyExportedAreExcluded=Docs already exported are excluded +ClickToHideAlreadyExportedLines=Click to hide already exported lines NAccounts=%s accounts diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 538309a6342..8e0acd832d5 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -645,6 +645,8 @@ 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. +Module2430Name=Booking Calendar System +Module2430Desc=Provide an online calendar to allow anyone to book rendez-vous, according to predefined ranges or availabilities. 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) @@ -660,6 +662,8 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3200Name=Unalterable Archives Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries. +Module3300Name=Module Builder +Module3200Desc=A RAD (Rapid Application Development - low-code and no-code) tool to help developers or advanced users to build their own module/application. Module3400Name=Social Networks Module3400Desc=Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...). Module4000Name=HRM @@ -700,6 +704,7 @@ Module62000Name=Incoterms Module62000Desc=Add features to manage Incoterms Module63000Name=Resources Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Module94160Name=Receptions Permission11=Read customer invoices Permission12=Create/modify customer invoices Permission13=Invalidate customer invoices @@ -973,13 +978,14 @@ Permission3301=Generate new modules Permission4001=Read skill/job/position Permission4002=Create/modify skill/job/position Permission4003=Delete skill/job/position -Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Read evaluations (yours and your subordinates) +Permission4022=Create/modify evaluations +Permission4023=Validate evaluation +Permission4025=Delete evaluation +Permission4028=See comparison menu Permission4031=Read personal information Permission4032=Write personal information +Permission4033=Read all evaluations (even those of user not subordinates) Permission10001=Read website content Permission10002=Create/modify website content (html and javascript content) Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. @@ -1268,6 +1274,7 @@ TriggerActiveAsModuleActive=Triggers in this file are active as module %s GeneratedPasswordDesc=Choose the method to be used for auto-generated passwords. DictionaryDesc=Insert all reference data. You can add your values to the default. ConstDesc=This page allows you to edit (override) parameters not available in other pages. These are mostly reserved parameters for developers/advanced troubleshooting only. +MiscellaneousOptions=Miscellaneous options 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 @@ -1301,6 +1308,8 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP DownloadMoreSkins=More skins to download SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset +SimpleRefNumRefModelDesc=Returns the reference number in the format n where n is a sequential auto-incrementing number with no reset +AdvancedNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset ShowProfIdInAddress=Show professional ID with addresses ShowVATIntaInAddress=Hide intra-Community VAT number @@ -1387,7 +1396,7 @@ GetBarCode=Get barcode NumberingModules=Numbering models DocumentModules=Document models ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters. PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. PasswordGenerationPerso=Return a password according to your personally defined configuration. SetupPerso=According to your configuration @@ -1441,6 +1450,10 @@ SuppliersPayment=Vendor payments SupplierPaymentSetup=Vendor payments setup InvoiceCheckPosteriorDate=Check facture date before validation InvoiceCheckPosteriorDateHelp=Validating an invoice will be forbidden if its date is anterior to the date of last invoice of same type. +InvoiceOptionCategoryOfOperations=Display the mention "category of operations" on the invoice. +InvoiceOptionCategoryOfOperationsHelp=Depending on the situation, the mention will appear in the form:
- Category of operations: Delivery of goods
- Category of operations: Provision of services
- Category of operations: Mixed - Delivery of goods & provision of services +InvoiceOptionCategoryOfOperationsYes1=Yes, below the address block +InvoiceOptionCategoryOfOperationsYes2=Yes, in the lower left-hand corner ##### Proposals ##### PropalSetup=Commercial proposals module setup ProposalsNumberingModules=Commercial proposal numbering models @@ -1483,11 +1496,12 @@ WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) ##### Members ##### MembersSetup=Members module setup MemberMainOptions=Main options +MemberCodeChecker=Options for automatic generation of member codes AdherentLoginRequired= Manage a Login for each member AdherentMailRequired=Email required to create a new member MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated -VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes +VisitorCanChooseItsPaymentMode=Visitor can choose from any available payment modes MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. MembersDocModules=Document templates for documents generated from member record ##### LDAP setup ##### @@ -1817,6 +1831,9 @@ AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> 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_EVENT_PAST_COLOR=Past event color +AGENDA_EVENT_CURRENT_COLOR=Current event color +AGENDA_EVENT_FUTURE_COLOR=Future event color 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 @@ -2120,6 +2137,7 @@ 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) +LoadContactFromEmailOrCreate=Load contact 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 @@ -2223,12 +2241,12 @@ MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system commands in custom code, you shoud disable PHP functions -PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions +PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an antivirus program), you must keep PHP functions NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) RecommendedValueIs=Recommended: %s Recommended=Recommended NotRecommended=Not recommended -ARestrictedPath=Some restricted path +ARestrictedPath=Some restricted path for data files CheckForModuleUpdate=Check for external modules updates CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available. ModuleUpdateAvailable=An update is available @@ -2344,4 +2362,7 @@ DesktopsAndSmartphones=Desktops et smartphones AllowOnlineSign=Allow online signing AllowExternalDownload=Allow external download (without login, using a shared link) DeadlineDayVATSubmission=Deadline day for vat submission on the next month -MaxNumberOfAttachementOnForms=Max number of joinded files in form +MaxNumberOfAttachementOnForms=Max number of joinded files in a form +IfDefinedUseAValueBeetween=If defined, use a value between %s and %s +Reload=Reload +ConfirmReload=Confirm module reload diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 4eca4b1734a..2016172c381 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -68,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Shipment %s go back to draft status ShipmentDeletedInDolibarr=Shipment %s deleted ShipmentCanceledInDolibarr=Shipment %s canceled ReceptionValidatedInDolibarr=Reception %s validated +ReceptionDeletedInDolibarr=Reception %s deleted ReceptionClassifyClosedInDolibarr=Reception %s classified closed OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -177,4 +178,4 @@ AddReminder=Create an automatic reminder notification for this event ErrorReminderActionCommCreation=Error creating the reminder notification for this event BrowserPush=Browser Popup Notification ActiveByDefault=Enabled by default -Until=until \ No newline at end of file +Until=until diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index d7c29a82399..183620c72da 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -627,3 +627,7 @@ SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices MakePaymentAndClassifyPayed=Record payment BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) MentionVATDebitOptionIsOn=Option to pay tax based on debits +MentionCategoryOfOperations=Category of operations +MentionCategoryOfOperations0=Delivery of goods +MentionCategoryOfOperations1=Provision of services +MentionCategoryOfOperations2=Mixed - Delivery of goods & provision of services diff --git a/htdocs/langs/en_US/bookmarks.lang b/htdocs/langs/en_US/bookmarks.lang index 26551eee4f0..bfbab1ef520 100644 --- a/htdocs/langs/en_US/bookmarks.lang +++ b/htdocs/langs/en_US/bookmarks.lang @@ -1,23 +1,24 @@ -# 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 -NoBookmarkFound=No bookmark found \ No newline at end of file +# Dolibarr language file - Source file is en_US - marque pages / bookmarks + +AddThisPageToBookmarks = Add current page to bookmarks +BehaviourOnClick = Behaviour when a bookmark URL is selected +Bookmark = Bookmark +Bookmarks = Bookmarks +BookmarkTargetNewWindowShort = New tab +BookmarkTargetReplaceWindowShort = Current tab +BookmarkTitle = Bookmark name +BookmarksManagement = Bookmarks management +BookmarksMenuShortCut = Ctrl + shift + m +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark = Choose if the linked page should open in the current tab or a new tab +CreateBookmark = Create bookmark +EditBookmarks = List/edit bookmarks +ListOfBookmarks = List of bookmarks +NewBookmark = New bookmark +NoBookmarkFound = No bookmark found +NoBookmarks = No bookmarks defined +OpenANewWindow = Open a new tab +ReplaceWindow = Replace current tab +SetHereATitleForLink = Set a name for the bookmark +ShowBookmark = Show bookmark +UrlOrLink = URL +UseAnExternalHttpLinkOrRelativeDolibarrLink = Use an external/absolute link (https://externalurl.com) or an internal/relative link (/mypage.php). You can also use phone like tel:0123456. diff --git a/htdocs/langs/en_US/boxes.lang b/htdocs/langs/en_US/boxes.lang index 4173d5e4c7e..9e80e36b119 100644 --- a/htdocs/langs/en_US/boxes.lang +++ b/htdocs/langs/en_US/boxes.lang @@ -24,6 +24,7 @@ BoxFicheInter=Latest interventions BoxCurrentAccounts=Open accounts balance BoxTitleMemberNextBirthdays=Birthdays of this month (members) BoxTitleMembersByType=Members by type and status +BoxTitleMembersByTags=Members by tags and status BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year BoxTitleLastRssInfos=Latest %s news from %s BoxTitleLastProducts=Products/Services: last %s modified @@ -44,9 +45,10 @@ BoxTitleSupplierOrdersAwaitingReception=Supplier orders awaiting reception BoxTitleLastModifiedContacts=Contacts/Addresses: last %s modified BoxMyLastBookmarks=Bookmarks: latest %s BoxOldestExpiredServices=Oldest active expired services +BoxOldestActions=Oldest events to do BoxLastExpiredServices=Latest %s oldest contacts with active expired services BoxTitleLastActionsToDo=Latest %s actions to do -BoxTitleOldestActionsToDo=Oldest %s event to do not completed +BoxTitleOldestActionsToDo=Oldest %s events to do, not completed BoxTitleLastContracts=Latest %s contracts which were modified BoxTitleLastModifiedDonations=Latest %s donations which were modified BoxTitleLastModifiedExpenses=Latest %s expense reports which were modified diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index e022c7cb09f..e17c7bcb90e 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -312,8 +312,8 @@ 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=No default relative discount from this vendor +HasRelativeDiscountFromSupplier=You have a default discount of %s%% with this vendor +HasNoRelativeDiscountFromSupplier=No default relative discount with 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 @@ -499,4 +499,8 @@ 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 +TwoRecordsOfCompanyName=more than one record exists for this company, please contact us to complete your partnership request +CompanySection=Company section +ShowSocialNetworks=Show social networks +HideSocialNetworks=Hide social networks + diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 4b623231511..b3d5f675830 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -246,12 +246,12 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. CalculationMode=Calculation mode AccountancyJournal=Accounting code journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_VAT_SOLD_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on sales (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_BUY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_PAY_ACCOUNT=Account (from the Chart Of Account) to be used as the default account for paying VAT +ACCOUNTING_ACCOUNT_CUSTOMER=Account (from the Chart Of Account) used for "customer" third parties ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties +ACCOUNTING_ACCOUNT_SUPPLIER=Account (from the Chart of Account) used for the "vendor" third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax ConfirmCloneVAT=Confirm the clone of a VAT declaration diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index b3eeae4606b..50d5c0e90d7 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -303,6 +303,7 @@ ErrorValueForTooLow=Value for %s is too low ErrorValueCantBeNull=Value for %s can't be null ErrorDateOfMovementLowerThanDateOfFileTransmission=The date of the bank transaction can't be lower than the date of the file transmission ErrorTooMuchFileInForm=Too much files in form, the maximum number is %s file(s) +ErrorSessionInvalidatedAfterPasswordChange=The session was been invalidated following a change of password, status or dates of validity. Please relogin. # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. @@ -325,6 +326,7 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice 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. +WarningYourPasswordWasModifiedPleaseLogin=Your password was modified. For security purpose you will have to login now with your new password. 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 diff --git a/htdocs/langs/en_US/eventorganization.lang b/htdocs/langs/en_US/eventorganization.lang index f9531260c97..e406566100e 100644 --- a/htdocs/langs/en_US/eventorganization.lang +++ b/htdocs/langs/en_US/eventorganization.lang @@ -54,6 +54,7 @@ EVENTORGANIZATION_FILTERATTENDEES_TYPE = In the form to create/add an attendee, # Object # EventOrganizationConfOrBooth= Conference Or Booth +EventOrganizationConfOrBoothes=Conferences or Boothes ManageOrganizeEvent = Manage the organization of an event ConferenceOrBooth = Conference Or Booth ConferenceOrBoothTab = Conference Or Booth @@ -114,8 +115,8 @@ EvntOrgRegistrationHelpMessage = Here, you can vote for a conference or suggest EvntOrgRegistrationConfHelpMessage = Here, you can suggest a new conference to animate during the event. EvntOrgRegistrationBoothHelpMessage = Here, you can apply to have a booth during the event. ListOfSuggestedConferences = List of suggested conferences -ListOfSuggestedBooths = List of suggested booths -ListOfConferencesOrBooths=List of conferences or booths of event project +ListOfSuggestedBooths=Suggested booths +ListOfConferencesOrBooths=Conferences or booths of event project SuggestConference = Suggest a new conference SuggestBooth = Suggest a booth ViewAndVote = View and vote for suggested events @@ -171,3 +172,5 @@ ErrorSeveralCompaniesWithEmailContactUs=Several companies with this email has be 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 +DateStartEvent=Event start date +DateEndEvent=Event end date diff --git a/htdocs/langs/en_US/expensereports.lang b/htdocs/langs/en_US/expensereports.lang index f3b5f07f241..5a5e06cf9c7 100644 --- a/htdocs/langs/en_US/expensereports.lang +++ b/htdocs/langs/en_US/expensereports.lang @@ -108,7 +108,7 @@ TripId=Id expense report TripNDF=Informations expense report TripSociete=Information company Trips=Expense reports -TripsAndExpenses=Expenses reports +TripsAndExpenses=Expense reports TripsAndExpensesStatistics=Expense reports statistics TypeFees=Types of fees UploadANewFileNow=Upload a new document now diff --git a/htdocs/langs/en_US/holiday.lang b/htdocs/langs/en_US/holiday.lang index 1921b9ed794..8290f14a765 100644 --- a/htdocs/langs/en_US/holiday.lang +++ b/htdocs/langs/en_US/holiday.lang @@ -143,16 +143,16 @@ TemplatePDFHolidays=Template for leave requests PDF FreeLegalTextOnHolidays=Free text on PDF WatermarkOnDraftHolidayCards=Watermarks on draft leave requests HolidaysToApprove=Holidays to approve -NobodyHasPermissionToValidateHolidays=Nobody has permission to validate holidays -HolidayBalanceMonthlyUpdate=Monthly update of holiday balance +NobodyHasPermissionToValidateHolidays=Nobody has permission to validate leave requests +HolidayBalanceMonthlyUpdate=Monthly update of leave balance XIsAUsualNonWorkingDay=%s is usualy a NON working day BlockHolidayIfNegative=Block if balance negative LeaveRequestCreationBlockedBecauseBalanceIsNegative=The creation of this leave request is blocked because your balance is negative ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Leave request %s must be draft, canceled or refused to be deleted -IncreaseHolidays=Increase holiday -HolidayRecordsIncreased= %s holiday records increased -HolidayRecordIncreased=Holiday record increased -ConfirmMassIncreaseHoliday=Bulk holiday increase +IncreaseHolidays=Increase leave balance +HolidayRecordsIncreased= %s leave balances increased +HolidayRecordIncreased=Leave balance increased +ConfirmMassIncreaseHoliday=Bulk leave balance increase NumberDayAddMass=Number of day to add to the selection ConfirmMassIncreaseHolidayQuestion=Are you sure you want to increase holiday of the %s selected record(s)? HolidayQtyNotModified=Balance of remaining days for %s has not been changed diff --git a/htdocs/langs/en_US/hrm.lang b/htdocs/langs/en_US/hrm.lang index 966f2399a13..592009b8697 100644 --- a/htdocs/langs/en_US/hrm.lang +++ b/htdocs/langs/en_US/hrm.lang @@ -86,7 +86,7 @@ SaveAddSkill = Skill(s) added SaveLevelSkill = Skill(s) level saved DeleteSkill = Skill removed SkillsExtraFields=Attributs supplémentaires (Compétences) -JobsExtraFields=Attributs supplémentaires (Emplois) +JobsExtraFields=Attributs supplémentaires (Job profile) EvaluationsExtraFields=Attributs supplémentaires (Evaluations) NeedBusinessTravels=Need business travels NoDescription=No description \ No newline at end of file diff --git a/htdocs/langs/en_US/interventions.lang b/htdocs/langs/en_US/interventions.lang index c93a5c4db09..4119973d6dd 100644 --- a/htdocs/langs/en_US/interventions.lang +++ b/htdocs/langs/en_US/interventions.lang @@ -68,4 +68,5 @@ ConfirmReopenIntervention=Are you sure you want to open back the intervention
'; - 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 ($mode == 'kanban') { + if ($i == 0) { + print '
'; + print '
'; + } + // Output Kanban + if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + if ($massactionbutton || $massaction) { + $selected = 0; } - print ''; + print $object->getKanbanView(''); } - 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; } - } elseif ($key == 'fk_user_modif') { - if ($object->fk_user_modif > 0) { - if (isset($conf->cache['user'][$object->fk_user_modif])) { - $user_temp = $conf->cache['user'][$object->fk_user_modif]; - } else { - $user_temp = new User($db); - $user_temp->fetch($object->fk_user_modif); - $conf->cache['user'][$object->fk_user_modif] = $user_temp; - } - print $user_temp->getNomUrl(-1); - } - } elseif ($key == 'fk_user_valid') { - if ($object->fk_user_valid > 0) { - if (isset($conf->cache['user'][$object->fk_user_valid])) { - $user_temp = $conf->cache['user'][$object->fk_user_valid]; - } else { - $user_temp = new User($db); - $user_temp->fetch($object->fk_user_valid); - $conf->cache['user'][$object->fk_user_valid] = $user_temp; - } - print $user_temp->getNomUrl(-1); - } - } elseif ($key == 'lang') { - $labellang = ($object->lang ? $langs->trans('Language_'.$object->lang) : ''); - print picto_from_langcode($object->lang, 'class="paddingrightonly saturatemedium opacitylow"'); - print $labellang; - } else { - print $object->showOutputField($val, $key, $object->$key, ''); + print ''; } print ''; - if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined - $selected = 0; - if (in_array($object->id, $arrayofselected)) { - $selected = 1; + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Action column + if (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("DateStart").''; - print $form->selectDate($datestart ? $datestart : -1, 'start', '', '', '', 'add', 1, 1); + print $form->selectDate(!empty($datestart) ? $datestart : -1, 'start', '', '', '', 'add', 1, 1); print '
'.$langs->trans("DateEnd").''; - print $form->selectDate($dateend ? $dateend : -1, 'end', '', '', '', 'add', 1, 1); + print $form->selectDate(!empty($dateend) ? $dateend : -1, 'end', '', '', '', 'add', 1, 1); print '
'.$loan_static->getNomUrl(1).'
'; + print '
'; + } + // Output Kanban + $loan_static->datestart= $obj->datestart; + $loan_static->dateend = $obj->dateend; + $loan_static->capital = $obj->capital; + $loan_static->totalpaid = $obj->paid; - // Label - print '
'.dol_trunc($obj->label, 42).'
'.price($obj->capital).''.$loan_static->getNomUrl(1).''.dol_print_date($db->jdate($obj->datestart), 'day').''.dol_trunc($obj->label, 42).''.dol_print_date($db->jdate($obj->dateend), 'day').''.price($obj->capital).''; - print $loan_static->LibStatut($obj->paid, 5, $obj->alreadypaid); - print ''.dol_print_date($db->jdate($obj->datestart), 'day').''.dol_print_date($db->jdate($obj->dateend), 'day').'
'; + print $loan_static->LibStatut($obj->paid, 5, $obj->alreadypaid); + print '
'.$langs->trans("OpportunityStatus").''; print $formproject->selectOpportunityStatus('opp_status', GETPOSTISSET('opp_status') ? GETPOST('opp_status') : $object->opp_status, 1, 0, 0, 0, '', 0, 1); - print '
'.$langs->trans("OpportunityProbability").' %'; + print ' %'; print ''; print '
'.$langs->trans("OpportunityAmount").''; + print ' '.$langs->getCurrencySymbol($conf->currency); + print '
'.$langs->trans("Budget").'
'.$langs->trans("Budget").''; + print ' '.$langs->getCurrencySymbol($conf->currency); + print '
'.$langs->trans("OpportunityStatus").''; - print $formproject->selectOpportunityStatus('opp_status', $object->opp_status, 1, 0, 0, 0, 'inline-block valignmiddle', 0, 1); - print ''; - print '
'.$langs->trans("OpportunityProbability").' %'; - print ''; + print ' %'; + print ''; + print ''; + + print ''; + print '
'.$langs->trans("OpportunityAmount").''; + print ''; print $langs->getCurrencySymbol($conf->currency); print '
'.$langs->trans("Budget").''; + print '
'.$langs->trans("Budget").''; print $langs->getCurrencySymbol($conf->currency); print '
'.$langs->trans("OpportunityProbability").''; + print ' / '; if (strcmp($object->opp_percent, '')) { print price($object->opp_percent, 0, $langs, 1, 0).' %'; } - print '
'.$langs->trans("OpportunityAmount").''; @@ -1211,7 +1304,7 @@ if ($action == 'create' && $user->rights->projet->creer) { // Budget print '
'.$langs->trans("Budget").''; - if (strcmp($object->budget_amount, '')) { + if (!is_null($object->budget_amount) && strcmp($object->budget_amount, '')) { print ''.price($object->budget_amount, 0, $langs, 1, 0, 0, $conf->currency).''; } print '
'.$langs->trans("Budget").''; -if (strcmp($object->budget_amount, '')) { +if (!is_null($object->budget_amount) && strcmp($object->budget_amount, '')) { print price($object->budget_amount, '', $langs, 1, 0, 0, $conf->currency); } print '
'.$langs->trans("Budget").''; - if (strcmp($object->budget_amount, '')) { + if (!is_null($object->budget_amount) && strcmp($object->budget_amount, '')) { print ''.price($object->budget_amount, '', $langs, 0, 0, 0, $conf->currency).''; } print '
'.$langs->trans("OpportunityProbability").''; - if (strcmp($object->opp_percent, '')) { + if (!is_null($object->opp_percent) && strcmp($object->opp_percent, '')) { print price($object->opp_percent, '', $langs, 1, 0).' %'; } print '
'.$langs->trans("OpportunityAmount").''; - if (strcmp($object->opp_amount, '')) { + if (!is_null($object->opp_amount) && 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).''; @@ -309,7 +309,7 @@ if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { // Budget print '
'.$langs->trans("Budget").''; -if (strcmp($object->budget_amount, '')) { +if (!is_null($object->budget_amount) && strcmp($object->budget_amount, '')) { print ''.price($object->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; } print '
'.$langs->trans("Budget").''; - if (strcmp($object->budget_amount, '')) { + if (!is_null($object->budget_amount) && strcmp($object->budget_amount, '')) { print price($object->budget_amount, '', $langs, 1, 0, 0, $conf->currency); } print '
'; print ''; + print ''; + print ''; $arrayofstatus = array(); foreach ($object->statuts_short as $key => $val) { $arrayofstatus[$key] = $langs->trans($val); } $arrayofstatus['99'] = $langs->trans("NotClosed").' ('.$langs->trans('Draft').' + '.$langs->trans('Opened').')'; - print $form->selectarray('search_status', $arrayofstatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'minwidth75imp maxwidth125 selectarrowonleft onrightofpage'); - print ajax_combobox('search_status'); + print $form->selectarray('search_status', $arrayofstatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', 'search_status width100 onrightofpage', 1); print ''; if ($obj->opp_weighted_amount) { print ''.price($obj->opp_weighted_amount, 1, $langs, 1, -1, -1, '').''; - $totalarray['val']['opp_weighted_amount'] += $obj->opp_weighted_amount; + if (empty($totalarray['val']['opp_weighted_amount'])) { + $totalarray['val']['opp_weighted_amount'] = $obj->opp_weighted_amount; + } else { + $totalarray['val']['opp_weighted_amount'] += $obj->opp_weighted_amount; + } } print ''; if ($obj->budget_amount != '') { print ''.price($obj->budget_amount, 1, $langs, 1, -1, -1).''; - $totalarray['val']['p.budget_amount'] += $obj->budget_amount; + if (empty($totalarray['val']['p.budget_amount'])) { + $totalarray['val']['p.budget_amount'] = $obj->budget_amount; + } else { + $totalarray['val']['p.budget_amount'] += $obj->budget_amount; + } } print ''.dol_escape_htmltag($obj->import_key).''.$object->getLibStatut(5).''.$object->getLibStatut(5).'
'.$langs->trans("Budget").''; - if (strcmp($object->budget_amount, '')) { + if (!is_null($object->budget_amount) && strcmp($object->budget_amount, '')) { print ''.price($object->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; } print '
'.$langs->trans("ChildOfProjectTask").''; print img_picto('', 'project'); - $formother->selectProjectTasks(GETPOST('task_parent'), empty($projectid) ? $object->id : $projectid, 'task_parent', 0, 0, 1, 1, 0, '0,1', 'maxwidth500 widthcentpercentminusxx'); + if ($projectoktoentertime) { + $formother->selectProjectTasks(GETPOST('task_parent'), empty($projectid) ? $object->id : $projectid, 'task_parent', 0, 0, 1, 1, 0, '0,1', 'maxwidth500 widthcentpercentminusxx'); + } else { + $formother->selectProjectTasks(GETPOST('task_parent'), empty($projectid) ? $object->id : $projectid, 'task_parent', 0, 0, 1, 1, 0, '', 'maxwidth500 widthcentpercentminusxx'); + } print '
 '; $searchpicto = $form->showFilterButtons(); @@ -1055,6 +1094,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third $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 '
'.$langs->trans("ChildOfProjectTask").''; - print $formother->selectProjectTasks($object->fk_task_parent, $projectstatic->id, 'task_parent', ($user->admin ? 0 : 1), 0, 0, 0, $object->id); + $formother->selectProjectTasks($object->fk_task_parent, $projectstatic->id, 'task_parent', ($user->admin ? 0 : 1), 0, 0, 0, $object->id); print '
'.$langs->trans("Budget").''; - if (strcmp($object->budget_amount, '')) { + if (!is_null($object->budget_amount) && strcmp($object->budget_amount, '')) { print ''.price($object->budget_amount, 0, $langs, 1, 0, 0, $conf->currency).''; } print '
'.$langs->trans("Budget").''; - if (strcmp($projectstatic->budget_amount, '')) { + if (!is_null($projectstatic->budget_amount) && strcmp($projectstatic->budget_amount, '')) { print ''.price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; } print '
'; - $form->selectInvoice('invoice', '', 'invoiceid', 24, 0, $langs->trans('NewInvoice'), 1, 0, 0, 'maxwidth500', '', 'all'); + $form->selectInvoice($projectstatic->thirdparty->id, '', 'invoiceid', 24, 0, $langs->trans('NewInvoice'), 1, 0, 0, 'maxwidth500', '', 'all'); print '
'; + + $durationtouse_start = 0; + if ($search_timespent_starthour || $search_timespent_startmin) { + $durationtouse_start = ($search_timespent_starthour * 3600 + $search_timespent_startmin * 60); + } + print '
'.$langs->trans('from').' '; + $form->select_duration('search_timespent_duration_start', $durationtouse_start, 0, 'text'); + print '
'; + + $durationtouse_end = 0; + if ($search_timespent_endhour || $search_timespent_endmin) { + $durationtouse_end = ($search_timespent_endhour * 3600 + $search_timespent_endmin * 60); + } + print '
'.$langs->trans('at').' '; + $form->select_duration('search_timespent_duration_end', $durationtouse_end, 0, 'text'); + print '
'; + + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''.img_picto($langs->trans("Refresh"), 'refresh', 'id="captcha_refresh_img"').''; + print ''; + print '